blob: 3a463feb415c7898894f6a7ffa40a0c59bd75d1f [file] [log] [blame]
Bill Buzbee3b0b4b92016-02-02 13:45:36 +00001/*
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
Bill Buzbee3b0b4b92016-02-02 13:45:36 +00007 ldr xIBASE, [xSELF, #THREAD_CURRENT_IBASE_OFFSET] // refresh IBASE.
8 adr lr, artMterpAsmInstructionStart + (${opnum} * 128) // Addr of primary handler.
9 mov x0, xSELF
10 add x1, xFP, #OFF_FP_SHADOWFRAME
Bill Buzbeed47fd902016-07-07 14:42:43 +000011 mov x2, xPC
12 b MterpCheckBefore // (self, shadow_frame, dex_pc_ptr) Note: tail call.