add first SVP64 7-bit register context decoder to PowerDecoder2
[soc.git] / src / soc / decoder / selectable_int.py
index f98f6162ec625ba2defbf3ed95c520c18c5292ea..575d1d8713d9fbbd8897cf4dc05ea5018e20161b 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
@@ -269,6 +270,7 @@ class SelectableInt:
     def __getitem__(self, key):
         if isinstance(key, SelectableInt):
             key = key.value
+        print("getitem", key, self.bits, hex(self.value))
         if isinstance(key, int):
             assert key < self.bits, "key %d accessing %d" % (key, self.bits)
             assert key >= 0
@@ -288,7 +290,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)
@@ -296,6 +298,7 @@ class SelectableInt:
     def __setitem__(self, key, value):
         if isinstance(key, SelectableInt):
             key = key.value
+        print("setitem", key, self.bits, hex(self.value))
         if isinstance(key, int):
             assert key < self.bits
             assert key >= 0