The Android Open Source Project | 2ad60cf | 2008-10-21 07:00:00 -0700 | [diff] [blame^] | 1 | %verify "executed" |
| 2 | %verify "null object" |
| 3 | /* For: iget-quick, iget-object-quick */ |
| 4 | /* op vA, vB, offset@CCCC */ |
| 5 | mov r2, rINST, lsr #12 @ r2<- B |
| 6 | GET_VREG(r3, r2) @ r3<- object we're operating on |
| 7 | FETCH(r1, 1) @ r1<- field byte offset |
| 8 | cmp r3, #0 @ check object for null |
| 9 | mov r2, rINST, lsr #8 @ r2<- A(+) |
| 10 | beq common_errNullObject @ object was null |
| 11 | ldr r0, [r3, r1] @ r0<- obj.field (always 32 bits) |
| 12 | FETCH_ADVANCE_INST(2) @ advance rPC, load rINST |
| 13 | and r2, r2, #15 |
| 14 | GET_INST_OPCODE(ip) @ extract opcode from rINST |
| 15 | SET_VREG(r0, r2) @ fp[A]<- r0 |
| 16 | GOTO_OPCODE(ip) @ jump to next instruction |
| 17 | |