summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mips_new_tc/mips_insts.sail7
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 */