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    r0, 1                         @ r0<- field ref CCCC
9    mov      r1, rINST, lsr #12            @ r1<- B
10    GET_VREG r1, r1                        @ r1<- fp[B], the object pointer
11    ldr      r2, [rFP, #OFF_FP_METHOD]     @ r2<- referrer
12    mov      r3, rSELF                     @ r3<- self
13    bl       $helper
14    ldr      r3, [rSELF, #THREAD_EXCEPTION_OFFSET]
15    ubfx     r2, rINST, #8, #4             @ r2<- A
16    PREFETCH_INST 2
17    cmp      r3, #0
18    bne      MterpPossibleException        @ bail out
19    .if $is_object
20    SET_VREG_OBJECT r0, r2                 @ fp[A]<- r0
21    .else
22    SET_VREG r0, r2                        @ fp[A]<- r0
23    .endif
24    ADVANCE 2
25    GET_INST_OPCODE ip                     @ extract opcode from rINST
26    GOTO_OPCODE ip                         @ jump to next instruction
27