Home | History | Annotate | Download | only in arm64
      1     /*
      2      * 64-bit instance field get.
      3      *
      4      * for: iget-wide
      5      */
      6     EXPORT_PC
      7     FETCH    w0, 1                         // w0<- field ref CCCC
      8     lsr      w1, wINST, #12                // w1<- B
      9     GET_VREG w1, w1                        // w1<- fp[B], the object pointer
     10     ldr      x2, [xFP, #OFF_FP_METHOD]     // w2<- referrer
     11     mov      x3, xSELF                     // w3<- self
     12     bl       artGet64InstanceFromCode
     13     ldr      x3, [xSELF, #THREAD_EXCEPTION_OFFSET]
     14     ubfx     w2, wINST, #8, #4             // w2<- A
     15     PREFETCH_INST 2
     16     cmp      w3, #0
     17     cbnz     w3, MterpException            // bail out
     18     SET_VREG_WIDE x0, w2
     19     ADVANCE 2
     20     GET_INST_OPCODE ip                     // extract opcode from wINST
     21     GOTO_OPCODE ip                         // jump to next instruction
     22