JSOP_ENDINIT fast path, obsoletes stub call. (r=dvander)

This commit is contained in:
Chris Leary
2010-06-22 22:40:55 -07:00
parent 274f8adcbd
commit 3ee4352d8a
4 changed files with 14 additions and 14 deletions

View File

@@ -956,8 +956,18 @@ mjit::Compiler::generateMethod()
END_CASE(JSOP_NEWINIT)
BEGIN_CASE(JSOP_ENDINIT)
prepareStubCall();
stubCall(stubs::EndInit, Uses(0), Defs(0));
{
FrameEntry *fe = frame.peek(-1);
RegisterID traversalReg = frame.allocReg();
JS_ASSERT(!fe->isConstant());
RegisterID objReg = frame.tempRegForData(fe);
masm.loadPtr(FrameAddress(offsetof(VMFrame, cx)), traversalReg);
masm.storePtr(objReg,
Address(traversalReg,
offsetof(JSContext,
weakRoots.finalizableNewborns[FINALIZE_OBJECT])));
frame.freeReg(traversalReg);
}
END_CASE(JSOP_ENDINIT)
BEGIN_CASE(JSOP_INITPROP)