diff --git a/js/src/ion/BaselineCompiler.cpp b/js/src/ion/BaselineCompiler.cpp index 05ae96cbb536..2940551e1bf0 100644 --- a/js/src/ion/BaselineCompiler.cpp +++ b/js/src/ion/BaselineCompiler.cpp @@ -22,7 +22,11 @@ using namespace js; using namespace js::ion; BaselineCompiler::BaselineCompiler(JSContext *cx, HandleScript script) - : BaselineCompilerSpecific(cx, script) + : BaselineCompilerSpecific(cx, script), + return_(new HeapLabel()) +#ifdef JSGC_GENERATIONAL + , postBarrierSlot_(new HeapLabel()) +#endif { } @@ -257,7 +261,7 @@ BaselineCompiler::emitPrologue() bool BaselineCompiler::emitEpilogue() { - masm.bind(&return_); + masm.bind(return_); // Pop SPS frame if necessary emitSPSPop(); @@ -279,7 +283,7 @@ BaselineCompiler::emitEpilogue() bool BaselineCompiler::emitOutOfLinePostBarrierSlot() { - masm.bind(&postBarrierSlot_); + masm.bind(postBarrierSlot_); Register objReg = R2.scratchReg(); GeneralRegisterSet regs(GeneralRegisterSet::All()); @@ -342,7 +346,7 @@ BaselineCompiler::emitDebugPrologue() masm.branchTest32(Assembler::Zero, ReturnReg, ReturnReg, &done); { masm.loadValue(frame.addressOfReturnValue(), JSReturnOperand); - masm.jump(&return_); + masm.jump(return_); } masm.bind(&done); return true; @@ -1820,7 +1824,7 @@ BaselineCompiler::emit_JSOP_SETALIASEDVAR() masm.branchPtr(Assembler::Below, objReg, ImmWord(nursery.heapEnd()), &skipBarrier); masm.bind(&isTenured); - masm.call(&postBarrierSlot_); + masm.call(postBarrierSlot_); masm.bind(&skipBarrier); #endif @@ -2485,7 +2489,7 @@ BaselineCompiler::emit_JSOP_DEBUGGER() masm.branchTest32(Assembler::Zero, ReturnReg, ReturnReg, &done); { masm.loadValue(frame.addressOfReturnValue(), JSReturnOperand); - masm.jump(&return_); + masm.jump(return_); } masm.bind(&done); return true; @@ -2518,7 +2522,7 @@ BaselineCompiler::emitReturn() if (JSOp(*pc) != JSOP_STOP) { // JSOP_STOP is immediately followed by the return label, so we don't // need a jump. - masm.jump(&return_); + masm.jump(return_); } return true; diff --git a/js/src/ion/BaselineCompiler.h b/js/src/ion/BaselineCompiler.h index 455cd97e059b..35a17e19bab6 100644 --- a/js/src/ion/BaselineCompiler.h +++ b/js/src/ion/BaselineCompiler.h @@ -184,9 +184,9 @@ namespace ion { class BaselineCompiler : public BaselineCompilerSpecific { FixedList