fix overwrite issue in FPBase create
[ieee754fpu.git] / src / ieee754 / fpcommon / fpbase.py
index ca8899184bf978892c4d75f450a6e1f3b01789ab..2ef543d4f6aa88c533d296deab7a9733938e579c 100644 (file)
@@ -125,12 +125,15 @@ class FPNumBaseRecord:
     def create(self, s, e, m):
         """ creates a value from sign / exponent / mantissa
 
-            bias is added here, to the exponent
+            bias is added here, to the exponent.
+
+            NOTE: order is important, because e_start/e_end can be
+            a bit too long (overwriting s).
         """
         return [
-          self.v[-1].eq(s),          # sign
+          self.v[0:self.e_start].eq(m),        # mantissa
           self.v[self.e_start:self.e_end].eq(e + self.fp.P127), # (add on bias)
-          self.v[0:self.e_start].eq(m)         # mantissa
+          self.v[-1].eq(s),          # sign
         ]
 
     def _nan(self, s):