1/* 2 * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle 3 * any interesting requests and then jump to the real instruction 4 * handler. Note that the call to dvmCheckBefore is done as a tail call. 5 * rIBASE updates won't be seen until a refresh, and we can tell we have a 6 * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then 7 * bail to the real handler if breakFlags==0. 8 */ 9 lbu a3, offThread_breakFlags(rSELF) 10 la rBIX, dvmAsmInstructionStart + (${opnum} * 128) 11 lw rIBASE, offThread_curHandlerTable(rSELF) 12 bnez a3, 1f 13 jr rBIX # nothing to do - jump to real handler 141: 15 EXPORT_PC() 16 move a0, rPC # arg0 17 move a1, rFP # arg1 18 move a2, rSELF # arg2 19 JAL(dvmCheckBefore) 20 jr rBIX 21