diff options
| -rw-r--r-- | mips_new_tc/mips_insts.sail | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mips_new_tc/mips_insts.sail b/mips_new_tc/mips_insts.sail index b02c51e0..d6973259 100644 --- a/mips_new_tc/mips_insts.sail +++ b/mips_new_tc/mips_insts.sail @@ -575,9 +575,10 @@ function clause decode (0b001011 @ rs : regno @ rt : regno @ imm : imm16) = Some(SLTIU(rs, rt, imm)) function clause execute (SLTIU(rs, rt, imm)) = { - let rs_val = unsigned(rGPR(rs)) in - let imm_val = unsigned(imm) in - wGPR(rt) = EXTZ(if (rs_val < imm_val) then 0b1 else 0b0) + let rs_val = rGPR(rs) in + let immext : bits(64) = EXTS(imm) in /* NB defined to sign extend here even though comparison is unsigned! */ + let imm_val = unsigned(immext) in + wGPR(rt) = EXTZ(if (rs_val <_u immext) then 0b1 else 0b0) } /* MOVN move if non-zero */ |
