blob: c7f777b71eb04188c967992ebdea71304597173b [file] [log] [blame]
buzbee1452bee2015-03-06 14:43:04 -08001%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