power_insn: make RM class public
authorDmitry Selyutin <ghostmansd@gmail.com>
Fri, 2 Sep 2022 16:56:39 +0000 (19:56 +0300)
committerDmitry Selyutin <ghostmansd@gmail.com>
Sat, 3 Sep 2022 18:41:28 +0000 (21:41 +0300)
src/openpower/decoder/power_insn.py

index 25a9edeee6b3a6b972ff089cc54b44364d55fa8b..2838b535c2ccfd939993eaf8b412427191a66b4b 100644 (file)
@@ -720,36 +720,36 @@ class PrefixedInstruction(Instruction):
         return super().integer(value=value)
 
 
+class RM(_Mapping):
+    _: _Field = range(24)
+    mmode: _Field = (0,)
+    mask: _Field = range(1, 4)
+    elwidth: _Field = range(4, 6)
+    ewsrc: _Field = range(6, 8)
+    subvl: _Field = range(8, 10)
+    extra: _Field = range(10, 19)
+    mode: _Field = range(19, 24)
+    extra2: _Array[4] = (
+        range(10, 12),
+        range(12, 14),
+        range(14, 16),
+        range(16, 18),
+    )
+    smask: _Field = range(16, 19)
+    extra3: _Array[3] = (
+        range(10, 13),
+        range(13, 16),
+        range(16, 19),
+    )
+
+
 class SVP64Instruction(PrefixedInstruction):
     """SVP64 instruction: https://libre-soc.org/openpower/sv/svp64/"""
     class Prefix(PrefixedInstruction.Prefix):
-        class RM(_Mapping):
-            _: _Field = range(24)
-            mmode: _Field = (0,)
-            mask: _Field = range(1, 4)
-            elwidth: _Field = range(4, 6)
-            ewsrc: _Field = range(6, 8)
-            subvl: _Field = range(8, 10)
-            extra: _Field = range(10, 19)
-            mode: _Field = range(19, 24)
-            extra2: _Array[4] = (
-                range(10, 12),
-                range(12, 14),
-                range(14, 16),
-                range(16, 18),
-            )
-            smask: _Field = range(16, 19)
-            extra3: _Array[3] = (
-                range(10, 13),
-                range(13, 16),
-                range(16, 19),
-            )
-
-        class RM(RM.remap((6, 8) + tuple(range(10, 32)))):
-            pass
+        SCHEME = ((6, 8) + tuple(range(10, 32)))
 
         id: _Field = (7, 9)
-        rm: RM
+        rm: RM.remap(SCHEME)
 
     prefix: Prefix