Home | History | Annotate | Download | only in armv5te
      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     ldrb   r3, [rSELF, #offThread_breakFlags]
     10     adrl   lr, dvmAsmInstructionStart + (${opnum} * 64)
     11     ldr    rIBASE, [rSELF, #offThread_curHandlerTable]
     12     cmp    r3, #0
     13     bxeq   lr                   @ nothing to do - jump to real handler
     14     EXPORT_PC()
     15     mov    r0, rPC              @ arg0
     16     mov    r1, rFP              @ arg1
     17     mov    r2, rSELF            @ arg2
     18     b      dvmCheckBefore       @ (dPC,dFP,self) tail call
     19