Last Comment Bug 769853 - IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC
: IonMonkey: x86 buildFakeExitFrame() issued call instruction to push PC
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: x86 Mac OS X
: -- normal (vote)
: ---
Assigned To: Eric Faust [:efaust]
:
Mentors:
Depends on:
Blocks:
  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:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


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

Description Eric Faust [:efaust] 2012-06-29 16:55:47 PDT
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.
Comment 1 Sean Stangl [:sstangl] 2012-06-29 17:07:52 PDT
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.
Comment 2 Eric Faust [:efaust] 2012-06-29 17:32:08 PDT
https://hg.mozilla.org/projects/ionmonkey/rev/13304da358b6

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