1%default { "helper":"MterpSet32Static" }
2    /*
3     * General SPUT handler wrapper.
4     *
5     * for: sput, sput-boolean, sput-byte, sput-char, sput-short
6     */
7    /* op vAA, field//BBBB */
8    .extern $helper
9    EXPORT_PC
10    lhu     a0, 2(rPC)                  # a0 <- field ref BBBB
11    srl     a3, rINST, 8                # a3 <- AA
12    GET_VREG a1, a3                     # a1 <- fp[AA]
13    ld      a2, OFF_FP_METHOD(rFP)
14    move    a3, rSELF
15    PREFETCH_INST 2                     # Get next inst, but don't advance rPC
16    jal     $helper
17    bnezc   v0, MterpException          # 0 on success
18    ADVANCE 2                           # Past exception point - now advance rPC
19    GET_INST_OPCODE v0                  # extract opcode from rINST
20    GOTO_OPCODE v0                      # jump to next instruction
21