1    /*
2     * SGET_WIDE handler wrapper.
3     *
4     */
5    /* sget-wide vAA, field@BBBB */
6
7    .extern MterpGet64Static
8    EXPORT_PC
9    FETCH r0, 1                         @ r0<- field ref BBBB
10    ldr   r1, [rFP, #OFF_FP_METHOD]
11    mov   r2, rSELF
12    bl    MterpGet64Static
13    ldr   r3, [rSELF, #THREAD_EXCEPTION_OFFSET]
14    mov   r9, rINST, lsr #8             @ r9<- AA
15    VREG_INDEX_TO_ADDR lr, r9           @ r9<- &fp[AA]
16    cmp   r3, #0                        @ Fail to resolve?
17    bne   MterpException                @ bail out
18    FETCH_ADVANCE_INST 2                @ advance rPC, load rINST
19    CLEAR_SHADOW_PAIR r9, r2, ip        @ Zero out the shadow regs
20    stmia lr, {r0-r1}                   @ vAA/vAA+1<- r0/r1
21    GET_INST_OPCODE ip                  @ extract opcode from rINST
22    GOTO_OPCODE ip                      @ jump to next instruction
23