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    EXPORT_PC()
8    FETCH(a0, 1)                           # a0 <- field ref CCCC
9    GET_OPB(a1)                            # a1 <- B
10    GET_VREG(a1, a1)                       # a1 <- fp[B], the object pointer
11    lw    a2, OFF_FP_METHOD(rFP)           # a2 <- referrer
12    move  a3, rSELF                        # a3 <- self
13    JAL($helper)
14    lw   a3, THREAD_EXCEPTION_OFFSET(rSELF)
15    GET_OPA4(a2)                           # a2<- A+
16    PREFETCH_INST(2)                       # load rINST
17    bnez  a3, MterpPossibleException        # bail out
18    .if $is_object
19    SET_VREG_OBJECT(v0, a2)                # fp[A] <- v0
20    .else
21    SET_VREG(v0, a2)                       # fp[A] <- v0
22    .endif
23    ADVANCE(2)                             #  advance rPC
24    GET_INST_OPCODE(t0)                    #  extract opcode from rINST
25    GOTO_OPCODE(t0)                        #  jump to next instruction
26