1%default { "handler":"artSet32InstanceFromMterp" }
2    /*
3     * General 32-bit instance field put.
4     *
5     * for: iput, iput-boolean, iput-byte, iput-char, iput-short
6     */
7    # op vA, vB, field                     /* CCCC */
8    .extern $handler
9    EXPORT_PC()
10    FETCH(a0, 1)                           # a0 <- field ref CCCC
11    GET_OPB(a1)                            # a1 <- B
12    GET_VREG(a1, a1)                       # a1 <- fp[B], the object pointer
13    GET_OPA4(a2)                           # a2 <- A+
14    GET_VREG(a2, a2)                       # a2 <- fp[A]
15    lw    a3, OFF_FP_METHOD(rFP)           # a3 <- referrer
16    PREFETCH_INST(2)                       # load rINST
17    JAL($handler)
18    bnez  v0, MterpPossibleException       # bail out
19    ADVANCE(2)                             # advance rPC
20    GET_INST_OPCODE(t0)                    # extract opcode from rINST
21    GOTO_OPCODE(t0)                        # jump to next instruction
22