diff options
| author | Robert Norton | 2015-12-22 15:06:33 +0000 |
|---|---|---|
| committer | Robert Norton | 2016-01-15 15:18:18 +0000 |
| commit | c86e1594d8db680b72dafaf75519f4fd66276818 (patch) | |
| tree | 37bf0195a1bdda93ce7e219e5ae247dcaeba8389 /mips/mips.sail | |
| parent | a34ea51ba919fdc40235ed141b8175115452e23e (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/mips.sail')
| -rw-r--r-- | mips/mips.sail | 4 |
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 *) |
