[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 3/9] decodetree: Split out MultiPattern from IncMultiPattern
From: |
Richard Henderson |
Subject: |
[PULL 3/9] decodetree: Split out MultiPattern from IncMultiPattern |
Date: |
Tue, 9 Jun 2020 09:24:58 -0700 |
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
scripts/decodetree.py | 37 ++++++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/scripts/decodetree.py b/scripts/decodetree.py
index 7af6b3056d..ea313bcdea 100755
--- a/scripts/decodetree.py
+++ b/scripts/decodetree.py
@@ -371,7 +371,32 @@ class Pattern(General):
# end Pattern
-class IncMultiPattern(General):
+class MultiPattern(General):
+ """Class representing a set of instruction patterns"""
+
+ def __init__(self, lineno, pats):
+ self.file = input_file
+ self.lineno = lineno
+ self.pats = pats
+ self.base = None
+ self.fixedbits = 0
+ self.fixedmask = 0
+ self.undefmask = 0
+ self.width = None
+
+ def __str__(self):
+ 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):
@@ -384,16 +409,6 @@ class IncMultiPattern(General):
self.undefmask = udfm
self.width = w
- def __str__(self):
- r = "{"
- for p in self.pats:
- r = r + ' ' + str(p)
- return r + "}"
-
- def output_decl(self):
- for p in self.pats:
- p.output_decl()
-
def output_code(self, i, extracted, outerbits, outermask):
global translate_prefix
ind = str_indent(i)
--
2.25.1
- [PULL 0/9] decodetree: Add non-overlapping groups, Richard Henderson, 2020/06/09
- [PULL 2/9] decodetree: Rename MultiPattern to IncMultiPattern, Richard Henderson, 2020/06/09
- [PULL 1/9] decodetree: Tidy error_with_file, Richard Henderson, 2020/06/09
- [PULL 3/9] decodetree: Split out MultiPattern from IncMultiPattern,
Richard Henderson <=
- [PULL 4/9] decodetree: Allow group covering the entire insn space, Richard Henderson, 2020/06/09
- [PULL 6/9] decodetree: Implement non-overlapping groups, Richard Henderson, 2020/06/09
- [PULL 5/9] decodetree: Move semantic propagation into classes, Richard Henderson, 2020/06/09
- [PULL 8/9] decodetree: Drop check for less than 2 patterns in a group, Richard Henderson, 2020/06/09
- [PULL 7/9] tests/decode: Test non-overlapping groups, Richard Henderson, 2020/06/09
- [PULL 9/9] target/arm: Use a non-overlapping group for misc control, Richard Henderson, 2020/06/09
- Re: [PULL 0/9] decodetree: Add non-overlapping groups, Peter Maydell, 2020/06/11