Last Comment Bug 777570 - IonMonkey: visitMathFunctionD() should be isCall().
: IonMonkey: visitMathFunctionD() should be isCall().
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: All All
-- normal (vote)
: ---
Assigned To: general
: Jason Orendorff [:jorendorff]
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:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

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

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

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 User image Sean Stangl [:sstangl] 2012-07-25 17:18:35 PDT

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