• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%default { "is_object":"0", "handler":"artSet32InstanceFromMterp" }
2    /*
3     * General 32-bit instance field put.
4     *
5     * for: iput, iput-object, iput-boolean, iput-byte, iput-char, iput-short
6     */
7    /* op vA, vB, field@CCCC */
8    .extern $handler
9    EXPORT_PC
10    FETCH    r0, 1                      @ r0<- field ref CCCC
11    mov      r1, rINST, lsr #12         @ r1<- B
12    GET_VREG r1, r1                     @ r1<- fp[B], the object pointer
13    ubfx     r2, rINST, #8, #4          @ r2<- A
14    GET_VREG r2, r2                     @ r2<- fp[A]
15    ldr      r3, [rFP, #OFF_FP_METHOD]  @ r3<- referrer
16    PREFETCH_INST 2
17    bl       $handler
18    cmp      r0, #0
19    bne      MterpPossibleException
20    ADVANCE  2                          @ advance rPC
21    GET_INST_OPCODE ip                  @ extract opcode from rINST
22    GOTO_OPCODE ip                      @ jump to next instruction
23