decodetree: Split out MultiPattern from IncMultiPattern

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2020-05-16 11:19:45 -07:00
parent 040145c4f8
commit df63044d02

View file

@ -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)