/* * 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