]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
decodetree: Split out MultiPattern from IncMultiPattern
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 16 May 2020 18:19:45 +0000 (11:19 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Mon, 8 Jun 2020 17:36:47 +0000 (10:36 -0700)
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
scripts/decodetree.py

index 7af6b3056df6fd0b93798f7531305b62fb9ca430..ea313bcdeaf920f754232f74c0f697f7457f7dfb 100755 (executable)
@@ -371,28 +371,43 @@ class Pattern(General):
 # end Pattern
 
 
-class IncMultiPattern(General):
-    """Class representing an overlapping set of instruction patterns"""
+class MultiPattern(General):
+    """Class representing a set of instruction patterns"""
 
-    def __init__(self, lineno, pats, fixb, fixm, udfm, w):
+    def __init__(self, lineno, pats):
         self.file = input_file
         self.lineno = lineno
         self.pats = pats
         self.base = None
-        self.fixedbits = fixb
-        self.fixedmask = fixm
-        self.undefmask = udfm
-        self.width = w
+        self.fixedbits = 0
+        self.fixedmask = 0
+        self.undefmask = 0
+        self.width = None
 
     def __str__(self):
-        r = "{"
-        for p in self.pats:
-           r = r + ' ' + str(p)
-        return r + "}"
+        r = 'group'
+        if self.fixedbits is not None:
+            r += ' ' + str_match_bits(self.fixedbits, self.fixedmask)
+        return r
 
     def output_decl(self):
         for p in self.pats:
             p.output_decl()
+# end MultiPattern
+
+
+class IncMultiPattern(MultiPattern):
+    """Class representing an overlapping set of instruction patterns"""
+
+    def __init__(self, lineno, pats, fixb, fixm, udfm, w):
+        self.file = input_file
+        self.lineno = lineno
+        self.pats = pats
+        self.base = None
+        self.fixedbits = fixb
+        self.fixedmask = fixm
+        self.undefmask = udfm
+        self.width = w
 
     def output_code(self, i, extracted, outerbits, outermask):
         global translate_prefix