Douglas Leung | 200f040 | 2016-02-25 20:05:47 -0800 | [diff] [blame] | 1 | /* fill-array-data vAA, +BBBBBBBB */ |
| 2 | EXPORT_PC() |
| 3 | FETCH(a0, 1) # a0 <- bbbb (lo) |
| 4 | FETCH(a1, 2) # a1 <- BBBB (hi) |
| 5 | GET_OPA(a3) # a3 <- AA |
| 6 | sll a1, a1, 16 # a1 <- BBBBbbbb |
| 7 | or a1, a0, a1 # a1 <- BBBBbbbb |
| 8 | GET_VREG(a0, a3) # a0 <- vAA (array object) |
| 9 | EAS1(a1, rPC, a1) # a1 <- PC + BBBBbbbb*2 (array data off.) |
| 10 | JAL(MterpFillArrayData) # v0 <- Mterp(obj, payload) |
| 11 | beqz v0, MterpPossibleException # has exception |
| 12 | FETCH_ADVANCE_INST(3) # advance rPC, load rINST |
| 13 | GET_INST_OPCODE(t0) # extract opcode from rINST |
| 14 | GOTO_OPCODE(t0) # jump to next instruction |