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