Home | History | Annotate | Download | only in mips
      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
     14 1:
     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