whoops shift width reduction not active
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 15 Feb 2020 17:41:17 +0000 (17:41 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 15 Feb 2020 17:41:17 +0000 (17:41 +0000)
src/ieee754/part_shift/part_shift_dynamic.py

index bfd8b244fba6889fac2ab87bc2868de37d770059..45ba08ca66f2b76a675c4fee606494d0b0a8cbc7 100644 (file)
@@ -78,11 +78,11 @@ class PartialResult(Elaboratable):
         # trying to shift data by 64 bits if the result width
         # is only 8.
         shifter = Signal(shiftbits, reset_less=True)
-        with m.If(element > shiftbits):
-            comb += shifter.eq(shiftbits)
+        maxval = C(self.reswid, element.shape())
+        with m.If(element > maxval):
+            comb += shifter.eq(maxval)
         with m.Else():
             comb += shifter.eq(element)
-        comb += shifter.eq(element)
         comb += self.partial.eq(self.a_interval << shifter)
 
         return m