power_fields: move BitRange to selectable_int
authorDmitry Selyutin <ghostmansd@gmail.com>
Fri, 19 Aug 2022 08:01:08 +0000 (11:01 +0300)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 29 Aug 2022 19:38:52 +0000 (20:38 +0100)
src/openpower/decoder/power_fields.py
src/openpower/decoder/power_fieldsn.py
src/openpower/decoder/selectable_int.py

index 8f8d5544567c4ae658fb296214b0e08b22a86985..7e21d3a169acfcae09a04a716304c5a70be9b696 100644 (file)
@@ -1,16 +1,7 @@
-from collections import OrderedDict, namedtuple
-from openpower.decoder.power_enums import find_wiki_file
+from collections import namedtuple
 
-
-class BitRange(OrderedDict):
-    """BitRange: remaps from straight indices (0,1,2..) to bit numbers
-    """
-
-    def __getitem__(self, subscript):
-        if isinstance(subscript, slice):
-            return list(self.values())[subscript]
-        else:
-            return OrderedDict.__getitem__(self, subscript)
+from openpower.decoder.power_enums import find_wiki_file as _find_wiki_file
+from openpower.decoder.selectable_int import BitRange as _BitRange
 
 
 def decode_instructions(form):
@@ -116,7 +107,7 @@ class DecodeFields:
             assert name_on_wiki is None
             fname = "fields.txt"
             name_on_wiki = "fields.text"
-        self.fname = find_wiki_file(name_on_wiki)
+        self.fname = _find_wiki_file(name_on_wiki)
 
     @property
     def form_names(self):
index e0a02bae0e40ce46136c4917da2b50c523fdddfb..982bd64586e7098863aefe11a816ec30afe6eb95 100644 (file)
@@ -1,9 +1,11 @@
 from collections import OrderedDict
-from openpower.decoder.power_fields import DecodeFields, BitRange
+from openpower.decoder.power_fields import DecodeFields
 from nmigen import Module, Elaboratable, Signal, Cat
 from nmigen.cli import rtlil
 from copy import deepcopy
 
+from openpower.decoder.selectable_int import BitRange
+
 
 class SignalBitRange(BitRange):
     def __init__(self, signal):
index 22fb8311cef15eed2b76f88f2c6b09893552fd68..ce9ad0a4d579f5a0b57bce1cb642330bbe35eb81 100644 (file)
@@ -2,7 +2,7 @@ import unittest
 import struct
 from copy import copy
 import functools
-from openpower.decoder.power_fields import BitRange
+from collections import OrderedDict
 from operator import (add, sub, mul, floordiv, truediv, mod, or_, and_, xor,
                       neg, inv, lshift, rshift, lt, eq)
 from openpower.util import log
@@ -18,6 +18,17 @@ def check_extsign(a, b):
     return SelectableInt(b.value, a.bits)
 
 
+class BitRange(OrderedDict):
+    """BitRange: remaps from straight indices (0,1,2..) to bit numbers
+    """
+
+    def __getitem__(self, subscript):
+        if isinstance(subscript, slice):
+            return list(self.values())[subscript]
+        else:
+            return OrderedDict.__getitem__(self, subscript)
+
+
 @functools.total_ordering
 class FieldSelectableInt:
     """FieldSelectableInt: allows bit-range selection onto another target