/* | |
* 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 */ | |
EXPORT_PC | |
mov r2, rINST, lsr #8 @ r2<- AA | |
GET_VREG r0, r2 @ r0<- vAA (object) | |
mov r1, rSELF @ r0<- self | |
bl artUnlockObjectFromCode @ r0<- success for unlock(self, obj) | |
cmp r0, #0 @ failed? | |
bne MterpException | |
FETCH_ADVANCE_INST 1 @ before throw: advance rPC, load rINST | |
GET_INST_OPCODE ip @ extract opcode from rINST | |
GOTO_OPCODE ip @ jump to next instruction |