Last Comment Bug 769853 - IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC
: IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: x86 Mac OS X
-- normal (vote)
: ---
Assigned To: Eric Faust [:efaust]
: Jason Orendorff [:jorendorff]
Depends on:
  Show dependency treegraph
Reported: 2012-06-29 16:55 PDT by Eric Faust [:efaust]
Modified: 2012-06-29 17:32 PDT (History)
1 user (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

Fix (3.42 KB, patch)
2012-06-29 16:55 PDT, Eric Faust [:efaust]
sstangl: review+
Details | Diff | Splinter Review

Description User image Eric Faust [:efaust] 2012-06-29 16:55:47 PDT
Created attachment 638054 [details] [diff] [review]

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.
Comment 1 User image Sean Stangl [:sstangl] 2012-06-29 17:07:52 PDT
Comment on attachment 638054 [details] [diff] [review]

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.
Comment 2 User image Eric Faust [:efaust] 2012-06-29 17:32:08 PDT

Note You need to log in before you can comment on or make changes to this bug.