Closed
Bug 552128
Opened 14 years ago
Closed 14 years ago
JM: use fastcall and parameters for stubcall immediates, not VMFrame::Arguments
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: luke, Unassigned)
References
Details
(Recording JS pit discussion for future implementation) Currently, to pass opcode immediates from JITed code to stub calls, we store them to the VMFrame::Arguments union, where they are read by the stub call. A faster way would be to take advantage of the various platforms' fastcall conventions, which will allow us to pass, at least, the VMFrame* and the first immediate via register. While there may be more than one immediate, this case is rare, so we can just use the simple general strategy that stub calls declare all their immediates as parameters, without any use of the VMFrame.
I needed to do part of this for bug 549522, so stubs are now fastcall on x86. http://hg.mozilla.org/users/danderson_mozilla.com/jaegermonkey/rev/a02be28344a2
Summary: JM: use fast call and parameters for stubcall immediates, not VMFrame::Arguments → JM: use fastcall and parameters for stubcall immediates, not VMFrame::Arguments
I did the rest of this in a few commits last week. Unfortunately, it wasn't a measurable perf win on either ARM or x86/64.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Comment 3•14 years ago
|
||
Perhaps not surprising? 32-bit x86 is the only platform I know of where the default calling convention does not pass the first 2 args in registers anyway.
You need to log in
before you can comment on or make changes to this bug.
Description
•