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 /* op vA, vB, field@CCCC */ 8 EXPORT_PC() 9 FETCH(a0, 1) # a0 <- field ref CCCC 10 GET_OPB(a1) # a1 <- B 11 GET_VREG(a1, a1) # a1 <- fp[B], the object pointer 12 lw a2, OFF_FP_METHOD(rFP) # a2 <- referrer 13 move a3, rSELF # a3 <- self 14 JAL($helper) 15 lw a3, THREAD_EXCEPTION_OFFSET(rSELF) 16 GET_OPA4(a2) # a2<- A+ 17 PREFETCH_INST(2) # load rINST 18 bnez a3, MterpPossibleException # bail out 19 ADVANCE(2) # advance rPC 20 GET_INST_OPCODE(t0) # extract opcode from rINST 21 .if $is_object 22 SET_VREG_OBJECT_GOTO(v0, a2, t0) # fp[A] <- v0 23 .else 24 SET_VREG_GOTO(v0, a2, t0) # fp[A] <- v0 25 .endif 26