blob: f2532e7b2b2a36b4075795259027def64bc3f6e7 [file] [log] [blame]
%def invoke_polymorphic(helper="UndefinedInvokeHandler"):
/*
* invoke-polymorphic handler wrapper.
*/
/* op {vC, vD, vE, vF, vG}, meth@BBBB, proto@HHHH */
/* op {vCCCC..v(CCCC+AA-1)}, meth@BBBB, proto@HHHH */
.extern $helper
EXPORT_PC()
move a0, rSELF
addu a1, rFP, OFF_FP_SHADOWFRAME
move a2, rPC
move a3, rINST
JAL($helper)
beqz v0, MterpException
FETCH_ADVANCE_INST(4)
JAL(MterpShouldSwitchInterpreters)
bnez v0, MterpFallback
GET_INST_OPCODE(t0)
GOTO_OPCODE(t0)