1a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee/*
29a3147c7412f4794434b4c2604aa2ba784867774buzbee * Inter-instruction transfer stub.  Call out to dvmCheckBefore to handle
3a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee * any interesting requests and then jump to the real instruction
49a3147c7412f4794434b4c2604aa2ba784867774buzbee * handler.    Note that the call to dvmCheckBefore is done as a tail call.
59a3147c7412f4794434b4c2604aa2ba784867774buzbee * rIBASE updates won't be seen until a refresh, and we can tell we have a
69a3147c7412f4794434b4c2604aa2ba784867774buzbee * stale rIBASE if breakFlags==0.  Always refresh rIBASE here, and then
79a3147c7412f4794434b4c2604aa2ba784867774buzbee * bail to the real handler if breakFlags==0.
8a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee */
99a3147c7412f4794434b4c2604aa2ba784867774buzbee    ldrb   r3, [rSELF, #offThread_breakFlags]
10a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    adrl   lr, dvmAsmInstructionStart + (${opnum} * 64)
119a3147c7412f4794434b4c2604aa2ba784867774buzbee    ldr    rIBASE, [rSELF, #offThread_curHandlerTable]
129a3147c7412f4794434b4c2604aa2ba784867774buzbee    cmp    r3, #0
139a3147c7412f4794434b4c2604aa2ba784867774buzbee    bxeq   lr                   @ nothing to do - jump to real handler
149a3147c7412f4794434b4c2604aa2ba784867774buzbee    EXPORT_PC()
15a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    mov    r0, rPC              @ arg0
169a3147c7412f4794434b4c2604aa2ba784867774buzbee    mov    r1, rFP              @ arg1
179a3147c7412f4794434b4c2604aa2ba784867774buzbee    mov    r2, rSELF            @ arg2
189a3147c7412f4794434b4c2604aa2ba784867774buzbee    b      dvmCheckBefore       @ (dPC,dFP,self) tail call
19