buzbee | 1452bee | 2015-03-06 14:43:04 -0800 | [diff] [blame^] | 1 | /* |
| 2 | * Array object get. vAA <- vBB[vCC]. |
| 3 | * |
| 4 | * for: aget-object |
| 5 | */ |
| 6 | /* op vAA, vBB, vCC */ |
| 7 | FETCH_B r2, 1, 0 @ r2<- BB |
| 8 | mov r9, rINST, lsr #8 @ r9<- AA |
| 9 | FETCH_B r3, 1, 1 @ r3<- CC |
| 10 | EXPORT_PC |
| 11 | GET_VREG r0, r2 @ r0<- vBB (array object) |
| 12 | GET_VREG r1, r3 @ r1<- vCC (requested index) |
| 13 | bl artAGetObjectFromMterp @ (array, index) |
| 14 | ldr r1, [rSELF, #THREAD_EXCEPTION_OFFSET] |
| 15 | PREFETCH_INST 2 |
| 16 | cmp r1, #0 |
| 17 | bne MterpException |
| 18 | SET_VREG_OBJECT r0, r9 |
| 19 | ADVANCE 2 |
| 20 | GET_INST_OPCODE ip |
| 21 | GOTO_OPCODE ip @ jump to next instruction |