Home | History | Annotate | Download | only in arm64
      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    w0, 1                      // w0<- field ref CCCC
     11     lsr      w1, wINST, #12             // w1<- B
     12     GET_VREG w1, w1                     // w1<- fp[B], the object pointer
     13     ubfx     w2, wINST, #8, #4          // w2<- A
     14     GET_VREG w2, w2                     // w2<- fp[A]
     15     ldr      x3, [xFP, #OFF_FP_METHOD]  // w3<- referrer
     16     PREFETCH_INST 2
     17     bl       $handler
     18     cbnz     w0, MterpPossibleException
     19     ADVANCE  2                          // advance rPC
     20     GET_INST_OPCODE ip                  // extract opcode from rINST
     21     GOTO_OPCODE ip                      // jump to next instruction
     22