diff mbox series

[4/5] decodetree: Do not unconditionaly return from Pattern.output_code

Message ID 20190223232954.7185-5-richard.henderson@linaro.org
State Superseded
Headers show
Series decodetree enhancements | expand

Commit Message

Richard Henderson Feb. 23, 2019, 11:29 p.m. UTC
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.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 scripts/decodetree.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

-- 
2.17.2

Comments

Philippe Mathieu-Daudé Feb. 23, 2019, 11:43 p.m. UTC | #1
On 2/24/19 12:29 AM, Richard Henderson wrote:
> 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.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

>  scripts/decodetree.py | 7 ++++---

>  1 file changed, 4 insertions(+), 3 deletions(-)

> 

> diff --git a/scripts/decodetree.py b/scripts/decodetree.py

> index fb9a0ab3ad..dd495096fc 100755

> --- a/scripts/decodetree.py

> +++ b/scripts/decodetree.py

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

>  

>
Bastian Koppelmann Feb. 25, 2019, 10:13 a.m. UTC | #2
On 2/24/19 12:29 AM, Richard Henderson wrote:
> 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.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>   scripts/decodetree.py | 7 ++++---

>   1 file changed, 4 insertions(+), 3 deletions(-)



Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>


Cheers,

Bastian
diff mbox series

Patch

diff --git a/scripts/decodetree.py b/scripts/decodetree.py
index fb9a0ab3ad..dd495096fc 100755
--- a/scripts/decodetree.py
+++ b/scripts/decodetree.py
@@ -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')