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    GET_OPA(a2)                            # a2 <- AA
11    GET_VREG(a0, a2)                       # a0 <- vAA (object)
12    move   a1, rSELF                       # a1 <- self
13    JAL(artUnlockObjectFromCode)           # v0 <- artUnlockObject(obj, self)
14    bnez v0, MterpException
15    FETCH_ADVANCE_INST(1)                  # advance rPC, load rINST
16    GET_INST_OPCODE(t0)                    # extract opcode from rINST
17    GOTO_OPCODE(t0)                        # jump to next instruction
18