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