Bug 626361: Reserve space for call/equality ICs. (r=dmandelin)

This commit is contained in:
Chris Leary 2011-02-08 15:18:55 -08:00
parent a2c6dac999
commit d92590a87a
2 changed files with 8 additions and 2 deletions

View File

@ -2625,6 +2625,7 @@ mjit::Compiler::inlineCallHelper(uint32 callImmArgc, bool callingNew)
Jump rejoin1, rejoin2;
{
RESERVE_OOL_SPACE(stubcc.masm);
stubcc.linkExitDirect(j, stubcc.masm.label());
callIC.slowPathStart = stubcc.masm.label();
@ -2710,6 +2711,8 @@ mjit::Compiler::inlineCallHelper(uint32 callImmArgc, bool callingNew)
rejoin2 = stubcc.masm.jump();
}
RESERVE_IC_SPACE(masm);
/*
* If the call site goes to a closure over the same function, it will
* generate an out-of-line stub that joins back here.

View File

@ -1015,11 +1015,13 @@ mjit::Compiler::jsop_equality_int_string(JSOp op, BoolStub stub, jsbytecode *tar
frame.pop();
frame.discardFrame();
JaegerSpew(JSpew_Insns, " ---- BEGIN STUB CALL CODE ---- \n");
RESERVE_OOL_SPACE(stubcc.masm);
/* Start of the slow path for equality stub call. */
Label stubEntry = stubcc.masm.label();
JaegerSpew(JSpew_Insns, " ---- BEGIN STUB CALL CODE ---- \n");
/* The lhs/rhs need to be synced in the stub call path. */
frame.ensureValueSynced(stubcc.masm, lhs, lvr);
frame.ensureValueSynced(stubcc.masm, rhs, rvr);
@ -1063,6 +1065,7 @@ mjit::Compiler::jsop_equality_int_string(JSOp op, BoolStub stub, jsbytecode *tar
Jump stubFallthrough = stubcc.masm.jump();
JaegerSpew(JSpew_Insns, " ---- END STUB CALL CODE ---- \n");
CHECK_OOL_SPACE();
Jump fast;
MaybeJump firstStubJump;