[JAEGER] Added JSOP_INCNAME,DECNAME,NAMEINC,NAMEDEC.

This commit is contained in:
David Anderson
2010-06-05 19:06:39 -07:00
parent 16bea9f57c
commit 7d9d79a7cc
5 changed files with 162 additions and 0 deletions

View File

@@ -528,6 +528,22 @@ mjit::Compiler::generateMethod()
frame.push(UndefinedTag());
END_CASE(JSOP_VOID)
BEGIN_CASE(JSOP_INCNAME)
jsop_nameinc(op, stubs::IncName, fullAtomIndex(PC));
END_CASE(JSOP_INCNAME)
BEGIN_CASE(JSOP_DECNAME)
jsop_nameinc(op, stubs::DecName, fullAtomIndex(PC));
END_CASE(JSOP_DECNAME)
BEGIN_CASE(JSOP_NAMEINC)
jsop_nameinc(op, stubs::NameInc, fullAtomIndex(PC));
END_CASE(JSOP_NAMEINC)
BEGIN_CASE(JSOP_NAMEDEC)
jsop_nameinc(op, stubs::NameDec, fullAtomIndex(PC));
END_CASE(JSOP_NAMEDEC)
BEGIN_CASE(JSOP_GETELEM)
prepareStubCall();
stubCall(stubs::GetElem, Uses(2), Defs(1));
@@ -1175,3 +1191,13 @@ mjit::Compiler::jsop_binary(JSOp op, VoidStub stub)
frame.pushSynced();
}
void
mjit::Compiler::jsop_nameinc(JSOp op, VoidStubAtom stub, uint32 index)
{
JSAtom *atom = script->getAtom(index);
prepareStubCall();
masm.move(ImmPtr(atom), Registers::ArgReg1);
stubCall(stub, Uses(0), Defs(1));
frame.pushSynced();
}