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 r0, 1 @ r0<- field ref CCCC 9 mov r1, rINST, lsr #12 @ r1<- B 10 GET_VREG r1, r1 @ r1<- fp[B], the object pointer 11 ldr r2, [rFP, #OFF_FP_METHOD] @ r2<- referrer 12 mov r3, rSELF @ r3<- self 13 bl $helper 14 ldr r3, [rSELF, #THREAD_EXCEPTION_OFFSET] 15 ubfx r2, rINST, #8, #4 @ r2<- A 16 PREFETCH_INST 2 17 cmp r3, #0 18 bne MterpPossibleException @ bail out 19 .if $is_object 20 SET_VREG_OBJECT r0, r2 @ fp[A]<- r0 21 .else 22 SET_VREG r0, r2 @ fp[A]<- r0 23 .endif 24 ADVANCE 2 25 GET_INST_OPCODE ip @ extract opcode from rINST 26 GOTO_OPCODE ip @ jump to next instruction 27