1%default { "extend":"", "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    w0, 1                         // w0<- field ref CCCC
9    lsr      w1, wINST, #12                // w1<- B
10    GET_VREG w1, w1                        // w1<- fp[B], the object pointer
11    ldr      x2, [xFP, #OFF_FP_METHOD]     // w2<- referrer
12    mov      x3, xSELF                     // w3<- self
13    bl       $helper
14    ldr      x3, [xSELF, #THREAD_EXCEPTION_OFFSET]
15    $extend
16    ubfx     w2, wINST, #8, #4             // w2<- A
17    PREFETCH_INST 2
18    cbnz     x3, MterpPossibleException    // bail out
19    .if $is_object
20    SET_VREG_OBJECT w0, w2                 // fp[A]<- w0
21    .else
22    SET_VREG w0, w2                        // fp[A]<- w0
23    .endif
24    ADVANCE 2
25    GET_INST_OPCODE ip                     // extract opcode from rINST
26    GOTO_OPCODE ip                         // jump to next instruction
27