decodetree: Do not unconditionaly return from Pattern.output_code
As a consequence, the 'return false' gets pushed up one level. This will allow us to perform some other action when the translator returns failure. Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
9b3186e38f
commit
eb6b87fac7
@ -348,8 +348,8 @@ class Pattern(General):
|
||||
output(ind, self.base.extract_name(), '(&u.f_', arg, ', insn);\n')
|
||||
for n, f in self.fields.items():
|
||||
output(ind, 'u.f_', arg, '.', n, ' = ', f.str_extract(), ';\n')
|
||||
output(ind, 'return ', translate_prefix, '_', self.name,
|
||||
'(ctx, &u.f_', arg, ');\n')
|
||||
output(ind, 'if (', translate_prefix, '_', self.name,
|
||||
'(ctx, &u.f_', arg, ')) return true;\n')
|
||||
# end Pattern
|
||||
|
||||
|
||||
@ -777,8 +777,8 @@ class Tree:
|
||||
output(ind, ' /* ',
|
||||
str_match_bits(innerbits, innermask), ' */\n')
|
||||
s.output_code(i + 4, extracted, innerbits, innermask)
|
||||
output(ind, ' return false;\n')
|
||||
output(ind, '}\n')
|
||||
output(ind, 'return false;\n')
|
||||
# end Tree
|
||||
|
||||
|
||||
@ -932,6 +932,7 @@ def main():
|
||||
output(i4, '} u;\n\n')
|
||||
|
||||
t.output_code(4, False, 0, 0)
|
||||
output(i4, 'return false;\n')
|
||||
|
||||
output('}\n')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user