Home | History | Annotate | Download | only in arm64
      1 %default { "helper":"MterpSet32Static"}
      2     /*
      3      * General SPUT handler wrapper.
      4      *
      5      * for: sput, sput-boolean, sput-byte, sput-char, sput-short
      6      */
      7     /* op vAA, field//BBBB */
      8     EXPORT_PC
      9     FETCH   w0, 1                       // r0<- field ref BBBB
     10     lsr     w3, wINST, #8               // r3<- AA
     11     GET_VREG w1, w3                     // r1<= fp[AA]
     12     ldr     x2, [xFP, #OFF_FP_METHOD]
     13     mov     x3, xSELF
     14     PREFETCH_INST 2                     // Get next inst, but don't advance rPC
     15     bl      $helper
     16     cbnz    w0, MterpException          // 0 on success
     17     ADVANCE 2                           // Past exception point - now advance rPC
     18     GET_INST_OPCODE ip                  // extract opcode from rINST
     19     GOTO_OPCODE ip                      // jump to next instruction
     20