Alexey Frunze | 84603bf | 2016-10-21 19:54:43 -0700 | [diff] [blame] | 1 | /* iput-wide-quick vA, vB, offset@CCCC */ |
Douglas Leung | 200f040 | 2016-02-25 20:05:47 -0800 | [diff] [blame] | 2 | GET_OPA4(a0) # a0 <- A(+) |
| 3 | GET_OPB(a1) # a1 <- B |
| 4 | GET_VREG(a2, a1) # a2 <- fp[B], the object pointer |
| 5 | # check object for null |
| 6 | beqz a2, common_errNullObject # object was null |
| 7 | EAS2(a3, rFP, a0) # a3 <- &fp[A] |
| 8 | LOAD64(a0, a1, a3) # a0/a1 <- fp[A] |
| 9 | FETCH(a3, 1) # a3 <- field byte offset |
| 10 | FETCH_ADVANCE_INST(2) # advance rPC, load rINST |
| 11 | addu a2, a2, a3 # obj.field (64 bits, aligned) <- a0/a1 |
Douglas Leung | 200f040 | 2016-02-25 20:05:47 -0800 | [diff] [blame] | 12 | GET_INST_OPCODE(t0) # extract opcode from rINST |
Alexey Frunze | 84603bf | 2016-10-21 19:54:43 -0700 | [diff] [blame] | 13 | GET_OPCODE_TARGET(t0) |
| 14 | STORE64(a0, a1, a2) # obj.field (64 bits, aligned) <- a0/a1 |
| 15 | JR(t0) # jump to next instruction |