Last Comment Bug 777570 - IonMonkey: visitMathFunctionD() should be isCall().
: IonMonkey: visitMathFunctionD() should be isCall().
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: All All
: -- normal (vote)
: ---
Assigned To: general
:
: Jason Orendorff [:jorendorff]
Mentors:
Depends on:
Blocks: 777598 777564
  Show dependency treegraph
 
Reported: 2012-07-25 16:49 PDT by Sean Stangl [:sstangl]
Modified: 2012-07-25 18:13 PDT (History)
1 user (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
patch (2.97 KB, patch)
2012-07-25 16:49 PDT, Sean Stangl [:sstangl]
dvander: review+
Details | Diff | Splinter Review

Description Sean Stangl [:sstangl] 2012-07-25 16:49:14 PDT
Created attachment 645945 [details] [diff] [review]
patch

LMathFunctionD always performs a call using callWithABI(), but it uses saveVolatile() and restoreVolatile() to preserve register safety. These functions push and pop, respectively, every single XMM register around each LMathFunctionD callsite. This is very slow.

By instead marking LMathFunctionD as isCall(), regalloc will have already guaranteed register safety around the LMathFunctionD, perhaps even in a more intelligent manner.
Comment 1 Sean Stangl [:sstangl] 2012-07-25 17:18:35 PDT
http://hg.mozilla.org/projects/ionmonkey/rev/81146d7c9f51

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