blob: 45980610b8caf96f9150db3cb11a5619fde6532d [file] [log] [blame]
Douglas Leung200f0402016-02-25 20:05:47 -08001/*
2 * Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
3 * any interesting requests and then jump to the real instruction
4 * handler. Note that the call to MterpCheckBefore is done as a tail call.
5 */
6 .extern MterpCheckBefore
7 EXPORT_PC()
8 la ra, artMterpAsmInstructionStart + (${opnum} * 128) # Addr of primary handler
9 lw rIBASE, THREAD_CURRENT_IBASE_OFFSET(rSELF) # refresh IBASE
10 move a0, rSELF # arg0
11 addu a1, rFP, OFF_FP_SHADOWFRAME # arg1
12 la a2, MterpCheckBefore
13 jalr zero, a2 # Tail call to Mterp(self, shadow_frame)