really bad hack to fix simulator bug in carry handling
[soc.git] / src / soc / decoder / selectable_int.py
index f98f6162ec625ba2defbf3ed95c520c18c5292ea..8eabec3ed08597ab5b601beed9e042cd396ddb10 100644 (file)
@@ -171,6 +171,7 @@ class SelectableInt:
         mask = (1 << bits) - 1
         self.value = value & mask
         self.bits = bits
+        self.overflow = (value & ~mask) != 0
 
     def eq(self, b):
         self.value = b.value
@@ -288,7 +289,7 @@ class SelectableInt:
             start = self.bits - key.stop
 
             bits = stop - start
-            #print ("__getitem__ slice num bits", bits)
+            #print ("__getitem__ slice num bits", start, stop, bits)
             mask = (1 << bits) - 1
             value = (self.value >> start) & mask
             return SelectableInt(value, bits)