blob: 99459520179587f907eeb0fdd2b24eff28028c85 [file] [log] [blame]
/*
* Unlock an object.
*
* Exceptions that occur when unlocking a monitor need to appear as
* if they happened at the following instruction. See the Dalvik
* instruction spec.
*/
/* monitor-exit vAA */
.extern artUnlockObjectFromCode
EXPORT_PC
srl a2, rINST, 8 # a2 <- AA
GET_VREG_U a0, a2 # a0 <- vAA (object)
move a1, rSELF # a1 <- self
jal artUnlockObjectFromCode # v0 <- success for unlock(self, obj)
bnezc v0, MterpException
FETCH_ADVANCE_INST 1 # before throw: advance rPC, load rINST
GET_INST_OPCODE v0 # extract opcode from rINST
GOTO_OPCODE v0 # jump to next instruction