selectable_int: introduce more checks
authorDmitry Selyutin <ghostmansd@gmail.com>
Thu, 25 Aug 2022 19:30:03 +0000 (22:30 +0300)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 29 Aug 2022 19:38:52 +0000 (20:38 +0100)
src/openpower/decoder/selectable_int.py

index d3caac30a59ec241a239421b4a0e78dda66d3d9c..4647750929c89d64d60e796c4287919a21bdae4b 100644 (file)
@@ -97,6 +97,8 @@ class FieldSelectableInt:
             return selectconcat(*[self.si[x] for x in key])
         elif isinstance(key, (tuple, list, range)):
             return FieldSelectableInt(si=self, br=key)
+        else:
+            raise ValueError(key)
 
     def __setitem__(self, key, value):
         if isinstance(key, SelectableInt):
@@ -379,6 +381,8 @@ class SelectableInt:
             value = (self.value >> start) & mask
             log("getitem", stop, start, self.bits, hex(self.value), value)
             return SelectableInt(value, bits)
+        else:
+            raise ValueError(value)
 
     def __setitem__(self, key, value):
         if isinstance(key, SelectableInt):
@@ -420,6 +424,8 @@ class SelectableInt:
             mask = ((1 << bits) - 1) << start
             value = value << start
             self.value = (self.value & ~mask) | (value & mask)
+        else:
+            raise ValueError(key)
 
     def __ge__(self, other):
         if isinstance(other, FieldSelectableInt):