1    /*
2     * 64-bit instance field get.
3     *
4     * for: iget-wide
5     */
6    EXPORT_PC()
7    FETCH(a0, 1)                           # a0 <- field byte offset
8    GET_OPB(a1)                            # a1 <- B
9    GET_VREG(a1, a1)                       # a1 <- fp[B], the object pointer
10    lw    a2, OFF_FP_METHOD(rFP)           # a2 <- referrer
11    move  a3, rSELF                        # a3 <- self
12    JAL(artGet64InstanceFromCode)
13    lw   a3, THREAD_EXCEPTION_OFFSET(rSELF)
14    GET_OPA4(a2)                           # a2<- A+
15    PREFETCH_INST(2)                       # load rINST
16    bnez a3, MterpException                # bail out
17    SET_VREG64(v0, v1, a2)                 # fp[A] <- v0/v1
18    ADVANCE(2)                             # advance rPC
19    GET_INST_OPCODE(t0)                    # extract opcode from rINST
20    GOTO_OPCODE(t0)                        # jump to next instruction
21