13 lines
649 B
ArmAsm
13 lines
649 B
ArmAsm
/*
|
|
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
|
|
* any interesting requests and then jump to the real instruction
|
|
* handler. Note that the call to MterpCheckBefore is done as a tail call.
|
|
*/
|
|
.extern MterpCheckBefore
|
|
EXPORT_PC()
|
|
la ra, artMterpAsmInstructionStart + (${opnum} * 128) # Addr of primary handler
|
|
lw rIBASE, THREAD_CURRENT_IBASE_OFFSET(rSELF) # refresh IBASE
|
|
move a0, rSELF # arg0
|
|
addu a1, rFP, OFF_FP_SHADOWFRAME # arg1
|
|
la a2, MterpCheckBefore
|
|
jalr zero, a2 # Tail call to Mterp(self, shadow_frame)
|