[JAEGER] Optimize how atoms are passed to NAME, CALLNAME, and SETNAME.

This commit is contained in:
David Anderson
2010-06-11 14:10:43 -07:00
parent b21fb0301c
commit 47fb3bc44c
3 changed files with 14 additions and 12 deletions

View File

@@ -679,7 +679,6 @@ mjit::Compiler::generateMethod()
BEGIN_CASE(JSOP_NAME)
prepareStubCall();
masm.move(Imm32(fullAtomIndex(PC)), Registers::ArgReg1);
stubCall(stubs::Name, Uses(0), Defs(1));
frame.pushSynced();
END_CASE(JSOP_NAME)
@@ -950,8 +949,10 @@ mjit::Compiler::generateMethod()
BEGIN_CASE(JSOP_SETNAME)
BEGIN_CASE(JSOP_SETPROP)
BEGIN_CASE(JSOP_SETMETHOD)
{
JSAtom *atom = script->getAtom(fullAtomIndex(PC));
prepareStubCall();
masm.move(Imm32(fullAtomIndex(PC)), Registers::ArgReg1);
masm.move(ImmPtr(atom), Registers::ArgReg1);
stubCall(stubs::SetName, Uses(2), Defs(1));
JS_STATIC_ASSERT(JSOP_SETNAME_LENGTH == JSOP_SETPROP_LENGTH);
if (JSOp(PC[JSOP_SETNAME_LENGTH]) == JSOP_POP &&
@@ -962,6 +963,7 @@ mjit::Compiler::generateMethod()
}
frame.popn(2);
frame.pushSynced();
}
END_CASE(JSOP_SETNAME)
BEGIN_CASE(JSOP_THROW)