Douglas Leung | 200f040 | 2016-02-25 20:05:47 -0800 | [diff] [blame^] | 1 | /* |
| 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) |