1%default { "is_object":"0", "helper":"artGet32InstanceFromCode"}
2    /*
3     * General instance field get.
4     *
5     * for: iget, iget-object, iget-boolean, iget-byte, iget-char, iget-short
6     */
7    /* op vA, vB, field@CCCC */
8    EXPORT_PC()
9    FETCH(a0, 1)                           # a0 <- field ref CCCC
10    GET_OPB(a1)                            # a1 <- B
11    GET_VREG(a1, a1)                       # a1 <- fp[B], the object pointer
12    lw    a2, OFF_FP_METHOD(rFP)           # a2 <- referrer
13    move  a3, rSELF                        # a3 <- self
14    JAL($helper)
15    lw   a3, THREAD_EXCEPTION_OFFSET(rSELF)
16    GET_OPA4(a2)                           # a2<- A+
17    PREFETCH_INST(2)                       # load rINST
18    bnez  a3, MterpPossibleException        # bail out
19    ADVANCE(2)                             #  advance rPC
20    GET_INST_OPCODE(t0)                    #  extract opcode from rINST
21    .if $is_object
22    SET_VREG_OBJECT_GOTO(v0, a2, t0)       # fp[A] <- v0
23    .else
24    SET_VREG_GOTO(v0, a2, t0)              # fp[A] <- v0
25    .endif
26