Closed
Bug 552150
Opened 15 years ago
Closed 12 years ago
JM: Dynamically generate trampolines
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: dvander, Unassigned)
References
Details
Right now our trampolines are inline assembly. We should probably dynamically generate them instead, This is advantageous for two reasons:
- It's easier to make sure the code is correct across VMFrame adjustments, rather than static asserts w/ hardcoded offsets.
- We can share code across similar operating systems/platforms (right now Windows/Linux x86 and x64 are very similar).
- Easier to port x64, which has no inline assembly and thus requires using an external assembler.
Reporter | ||
Comment 1•15 years ago
|
||
Right now I would like to call JaegerTrampoline() with an arbitrary inlineCallCount, but I can't because cx->fp's return address ends up as the trampoline return address. Luke pointed out I could fix this by having a second trampoline that uses "push ; jmp" instead of "call".
So there's another good reason to dynamically generate these things instead of having lots of duplication.
Comment 2•15 years ago
|
||
Groundwork has been laid for this in my patch for bug 570650. Unless someone really wants this to happen sooner, I was going to move over all the other trampolines after I finish the rest of the blockers for JaegerDebug.
Comment 3•12 years ago
|
||
JM has been removed from the tree, replaced by Ion and Baseline. Ion's trampolines are dynamically generated.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•