Home | History | Annotate | Download | only in arm
      1 %default { "is_object":"0", "handler":"artSet32InstanceFromMterp" }
      2     /*
      3      * General 32-bit instance field put.
      4      *
      5      * for: iput, iput-object, iput-boolean, iput-byte, iput-char, iput-short
      6      */
      7     /* op vA, vB, field@CCCC */
      8     .extern $handler
      9     EXPORT_PC
     10     FETCH    r0, 1                      @ r0<- field ref CCCC
     11     mov      r1, rINST, lsr #12         @ r1<- B
     12     GET_VREG r1, r1                     @ r1<- fp[B], the object pointer
     13     ubfx     r2, rINST, #8, #4          @ r2<- A
     14     GET_VREG r2, r2                     @ r2<- fp[A]
     15     ldr      r3, [rFP, #OFF_FP_METHOD]  @ r3<- referrer
     16     PREFETCH_INST 2
     17     bl       $handler
     18     cmp      r0, #0
     19     bne      MterpPossibleException
     20     ADVANCE  2                          @ advance rPC
     21     GET_INST_OPCODE ip                  @ extract opcode from rINST
     22     GOTO_OPCODE ip                      @ jump to next instruction
     23