Closed Bug 1358600 Opened 7 years ago Closed 7 years ago

Move value pop() inside preBarrier trampoline code

Categories

(Core :: JavaScript Engine: JIT, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED WONTFIX
Performance Impact none

People

(Reporter: djvj, Unassigned)

References

(Blocks 1 open bug)

Details

In MacroAssembler::callPreBarrier(), we currently call into a pre-barrier trampoline as follows:

   PUSH pointerVal
   CALL barrierTrampoline
   POP pointerVal

we can move the value-pop into the barrierTrampoline and omit it from the inline jitcode, saving an instruction in the istream, slightly improving code density.
How can you move the value-pop into the barrierTrampoline?

The stack when you enter barrierTrampoline is:

> pointerVal
> return address << $rsp

The ancients have said that there is apparently some penalty for not having matched 'rets'.
Ah, yeah.  Good point.  For some reason I completely did not consider the retaddr on the stack.  I'll mark this WONTFIX.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Whiteboard: [qf] → [qf-]
Performance Impact: --- → -
Whiteboard: [qf-]
You need to log in before you can comment on or make changes to this bug.