From 89d455ae3254ee73cb5c8ae433280892db659ad3 Mon Sep 17 00:00:00 2001 From: Robert Norton Date: Mon, 9 May 2016 15:56:23 +0100 Subject: work around problem with <_s using signed --- mips/mips_insts.sail | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mips/mips_insts.sail b/mips/mips_insts.sail index 16af5c22..cfa35ab1 100644 --- a/mips/mips_insts.sail +++ b/mips/mips_insts.sail @@ -514,7 +514,9 @@ function clause decode (0b001010 : (regno) rs : (regno) rt : (imm16) imm) = Some(SLTI(rs, rt, imm)) function clause execute (SLTI(rs, rt, imm)) = { - wGPR(rt) := if (rGPR(rs) <_s ((bit[64]) (EXTS(imm)))) then 1 else 0 + let imm_val = signed(imm) in + let rs_val = signed(rGPR(rs)) in + wGPR(rt) := EXTZ(if (rs_val < imm_val) then 1 else 0) } (* SLTU set if less than unsigned *) -- cgit v1.2.3