summaryrefslogtreecommitdiff
path: root/mips
diff options
context:
space:
mode:
authorRobert Norton2015-12-22 15:06:33 +0000
committerRobert Norton2016-01-15 15:18:18 +0000
commitc86e1594d8db680b72dafaf75519f4fd66276818 (patch)
tree37bf0195a1bdda93ce7e219e5ae247dcaeba8389 /mips
parenta34ea51ba919fdc40235ed141b8175115452e23e (diff)
mips.sail: Add commented out alternative DSLLV implementation using bitslicing which is closer to what appears in spec. Might want to swap all the SLLs at some point.
Diffstat (limited to 'mips')
-rw-r--r--mips/mips.sail4
1 files changed, 4 insertions, 0 deletions
diff --git a/mips/mips.sail b/mips/mips.sail
index fc98576a..6ad7b825 100644
--- a/mips/mips.sail
+++ b/mips/mips.sail
@@ -560,6 +560,10 @@ function clause decode (0b000000 : (regno) rs : (regno) rt : (regno) rd : 0b0000
function clause execute (DSLLV (rs, rt, rd)) =
{
wGPR(rd) := (rGPR(rs) << ((rGPR(rt))[5 .. 0])) (* make tuareg mode less blue >> *)
+ (* alternative slicing based version of above
+ sa := (rGPR(rt))[5 .. 0];
+ v := rGPR(rs);
+ wGPR(rd) := v[(63-sa) .. 0] : (0b0 ^^ sa) *)
}
(* DSRA arithmetic shift duplicating sign bit - reg, reg, imm5 *)