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