Home | History | Annotate | Download | only in arm
      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