/* | |
* Array object get. vAA <- vBB[vCC]. | |
* | |
* for: aget-object | |
*/ | |
/* op vAA, vBB, vCC */ | |
FETCH_B(a2, 1, 0) # a2 <- BB | |
GET_OPA(rOBJ) # rOBJ <- AA | |
FETCH_B(a3, 1, 1) # a3 <- CC | |
EXPORT_PC() | |
GET_VREG(a0, a2) # a0 <- vBB (array object) | |
GET_VREG(a1, a3) # a1 <- vCC (requested index) | |
JAL(artAGetObjectFromMterp) # v0 <- GetObj(array, index) | |
lw a1, THREAD_EXCEPTION_OFFSET(rSELF) | |
PREFETCH_INST(2) # load rINST | |
bnez a1, MterpException | |
ADVANCE(2) # advance rPC | |
GET_INST_OPCODE(t0) # extract opcode from rINST | |
SET_VREG_OBJECT_GOTO(v0, rOBJ, t0) # vAA <- v0 |