2 * To support deadlock prediction, this version of MONITOR_ENTER
3 * will always call the heavyweight dvmLockObject, check for an
4 * exception and then bail out to the interpreter.
8 * a1 - the object (which has already been null-checked by the caller
9 * rPC - the Dalvik PC of the following instruction.
12 la a2, .LdvmLockObject
14 sw zero, offThread_inJitCodeCache(a0) # record that we're not returning
15 JALR(t9) # dvmLockObject(self, obj)
16 lw gp, STACK_OFFSET_GP(sp)
19 lw a1, offThread_exception(rSELF)
21 sub a0, rPC, 2 # roll dPC back to this monitor instruction
24 # Bail to interpreter - no chain [note - rPC still contains dPC]
25 #if defined(WITH_JIT_TUNING)
26 li a0, kHeavyweightMonitor
28 la a2, .LdvmJitToInterpNoChain