• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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