1 /* 2 * Unlock an object. 3 * 4 * Exceptions that occur when unlocking a monitor need to appear as 5 * if they happened at the following instruction. See the Dalvik 6 * instruction spec. 7 */ 8 /* monitor-exit vAA */ 9 .extern artUnlockObjectFromCode 10 EXPORT_PC 11 srl a2, rINST, 8 # a2 <- AA 12 GET_VREG_U a0, a2 # a0 <- vAA (object) 13 move a1, rSELF # a1 <- self 14 jal artUnlockObjectFromCode # v0 <- success for unlock(self, obj) 15 bnezc v0, MterpException 16 FETCH_ADVANCE_INST 1 # before throw: advance rPC, load rINST 17 GET_INST_OPCODE v0 # extract opcode from rINST 18 GOTO_OPCODE v0 # jump to next instruction 19