op_aget_object.S revision 200f040af3e4fe9e178cb63c90860d58d90ef665
1    /*
2     * Array object get.  vAA <- vBB[vCC].
3     *
4     * for: aget-object
5     */
6    /* op vAA, vBB, vCC */
7    FETCH_B(a2, 1, 0)                      #  a2 <- BB
8    GET_OPA(rOBJ)                          #  rOBJ <- AA
9    FETCH_B(a3, 1, 1)                      #  a3 <- CC
10    EXPORT_PC()
11    GET_VREG(a0, a2)                       #  a0 <- vBB (array object)
12    GET_VREG(a1, a3)                       #  a1 <- vCC (requested index)
13    JAL(artAGetObjectFromMterp)            #  v0 <- GetObj(array, index)
14    lw   a1, THREAD_EXCEPTION_OFFSET(rSELF)
15    PREFETCH_INST(2)                       #  load rINST
16    bnez a1, MterpException
17    SET_VREG_OBJECT(v0, rOBJ)              #  vAA <- v0
18    ADVANCE(2)                             #  advance rPC
19    GET_INST_OPCODE(t0)                    #  extract opcode from rINST
20    GOTO_OPCODE(t0)                        #  jump to next instruction
21