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 lsr w2, wINST, #8 // w2<- AA 11 GET_VREG w0, w2 // w0<- vAA (object) 12 mov x1, xSELF // w0<- self 13 bl artUnlockObjectFromCode // w0<- success for unlock(self, obj) 14 cbnz w0, MterpException 15 FETCH_ADVANCE_INST 1 // before throw: advance rPC, load rINST 16 GET_INST_OPCODE ip // extract opcode from rINST 17 GOTO_OPCODE ip // jump to next instruction 18