op_fill_array_data.S revision 1452bee8f06b9f76a333ddf4760e4beaa82f8099
1    /* fill-array-data vAA, +BBBBBBBB */
2    EXPORT_PC
3    FETCH r0, 1                         @ r0<- bbbb (lo)
4    FETCH r1, 2                         @ r1<- BBBB (hi)
5    mov     r3, rINST, lsr #8           @ r3<- AA
6    orr     r1, r0, r1, lsl #16         @ r1<- BBBBbbbb
7    GET_VREG r0, r3                     @ r0<- vAA (array object)
8    add     r1, rPC, r1, lsl #1         @ r1<- PC + BBBBbbbb*2 (array data off.)
9    bl      MterpFillArrayData          @ (obj, payload)
10    cmp     r0, #0                      @ 0 means an exception is thrown
11    beq     MterpPossibleException      @ exception?
12    FETCH_ADVANCE_INST 3                @ advance rPC, load rINST
13    GET_INST_OPCODE ip                  @ extract opcode from rINST
14    GOTO_OPCODE ip                      @ jump to next instruction
15