IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: efaust, Assigned: efaust)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
Created attachment 638054 [details] [diff] [review]
Fix

buildFakeExitFrame() uses a scheme involving a call to push the PC. This is inefficient. We can use a label instead to get the same information without all the overhead.
Attachment #638054 - Flags: review?(sstangl)
(Assignee)

Updated

5 years ago
Assignee: general → efaust
Status: NEW → ASSIGNED
Summary: x86 buildFakeExitFrame() issued call instruction to push PC → IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC
Comment on attachment 638054 [details] [diff] [review]
Fix

Review of attachment 638054 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with changes.

::: js/src/ion/shared/MacroAssembler-x86-shared.h
@@ +379,4 @@
>  
> +        CodeLabel *cl = new CodeLabel();
> +        if (!addCodeLabel(cl))
> +            return false;

Function does not return boolean. If it can fail, it needs a bool return with a uint32 outparam. Callers also must check for error. ARM will need equivalent changes, since visitCallNative() is shared.
Attachment #638054 - Flags: review?(sstangl) → review+
(Assignee)

Comment 2

5 years ago
https://hg.mozilla.org/projects/ionmonkey/rev/13304da358b6
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.