diff mbox series

[PATCH-for-5.0?] decodetree: Use Python3 floor division operator

Message ID 20200330121345.14665-1-f4bug@amsat.org
State New
Headers show
Series [PATCH-for-5.0?] decodetree: Use Python3 floor division operator | expand

Commit Message

Philippe Mathieu-Daudé March 30, 2020, 12:13 p.m. UTC
This script started using Python2, where the 'classic' division
operator returns the floor result. In commit 3d004a371 we started
to use Python3, where the division operator returns the float
result ('true division').
To keep the same behavior, use the 'floor division' operator "//"
which returns the floor result.

Fixes: 3d004a371
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
We didn't notice it because only the RX port (which uses the
--varinsnwidth option, and got merged very recently) triggers
these problems.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 scripts/decodetree.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Peter Maydell March 30, 2020, 12:54 p.m. UTC | #1
On Mon, 30 Mar 2020 at 13:14, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> This script started using Python2, where the 'classic' division
> operator returns the floor result. In commit 3d004a371 we started
> to use Python3, where the division operator returns the float
> result ('true division').
> To keep the same behavior, use the 'floor division' operator "//"
> which returns the floor result.
>
> Fixes: 3d004a371
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> We didn't notice it because only the RX port (which uses the
> --varinsnwidth option, and got merged very recently) triggers
> these problems.
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Ouch. That's a painfully hard to detect incompatibility
between 2 and 3 :-(

thanks
-- PMM
Richard Henderson March 30, 2020, 5:14 p.m. UTC | #2
On 3/30/20 5:13 AM, Philippe Mathieu-Daudé wrote:
> This script started using Python2, where the 'classic' division
> operator returns the floor result. In commit 3d004a371 we started
> to use Python3, where the division operator returns the float
> result ('true division').
> To keep the same behavior, use the 'floor division' operator "//"
> which returns the floor result.
> 
> Fixes: 3d004a371
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> We didn't notice it because only the RX port (which uses the
> --varinsnwidth option, and got merged very recently) triggers
> these problems.
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  scripts/decodetree.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 

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


r~
Richard Henderson March 30, 2020, 6:46 p.m. UTC | #3
On 3/30/20 10:14 AM, Richard Henderson wrote:
> On 3/30/20 5:13 AM, Philippe Mathieu-Daudé wrote:
>> This script started using Python2, where the 'classic' division
>> operator returns the floor result. In commit 3d004a371 we started
>> to use Python3, where the division operator returns the float
>> result ('true division').
>> To keep the same behavior, use the 'floor division' operator "//"
>> which returns the floor result.
>>
>> Fixes: 3d004a371
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> We didn't notice it because only the RX port (which uses the
>> --varinsnwidth option, and got merged very recently) triggers
>> these problems.
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>  scripts/decodetree.py | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
> 
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

Queued to tcg-next for 5.0.


r~
Aleksandar Markovic March 30, 2020, 11:28 p.m. UTC | #4
20:47 Pon, 30.03.2020. Richard Henderson <rth@twiddle.net> је написао/ла:
>
> On 3/30/20 10:14 AM, Richard Henderson wrote:
> > On 3/30/20 5:13 AM, Philippe Mathieu-Daudé wrote:
> >> This script started using Python2, where the 'classic' division
> >> operator returns the floor result. In commit 3d004a371 we started
> >> to use Python3, where the division operator returns the float
> >> result ('true division').
> >> To keep the same behavior, use the 'floor division' operator "//"
> >> which returns the floor result.
> >>
> >> Fixes: 3d004a371
> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >> ---
> >> We didn't notice it because only the RX port (which uses the
> >> --varinsnwidth option, and got merged very recently) triggers
> >> these problems.
> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >> ---
> >>  scripts/decodetree.py | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >
> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
> Queued to tcg-next for 5.0.
>

Richard, great, could you please pick up the LMI patch from the other day
together with this patch in your tcg-5.0 queue?

Yours, Aleksandar

>
> r~
>
>
Richard Henderson March 30, 2020, 11:53 p.m. UTC | #5
On 3/30/20 4:28 PM, Aleksandar Markovic wrote:
> Richard, great, could you please pick up the LMI patch from the other day
> together with this patch in your tcg-5.0 queue?

Yes, I've got it.

r~
diff mbox series

Patch

diff --git a/scripts/decodetree.py b/scripts/decodetree.py
index 2a8f2b6e06..46ab917807 100755
--- a/scripts/decodetree.py
+++ b/scripts/decodetree.py
@@ -1025,7 +1025,7 @@  def output_code(self, i, extracted, outerbits, outermask):
         if extracted < self.width:
             output(ind, 'insn = ', decode_function,
                    '_load_bytes(ctx, insn, {0}, {1});\n'
-                   .format(extracted / 8, self.width / 8));
+                   .format(extracted // 8, self.width // 8));
             extracted = self.width
 
         # Attempt to aid the compiler in producing compact switch statements.
@@ -1079,7 +1079,7 @@  def output_code(self, i, extracted, outerbits, outermask):
         if extracted < self.width:
             output(ind, 'insn = ', decode_function,
                    '_load_bytes(ctx, insn, {0}, {1});\n'
-                   .format(extracted / 8, self.width / 8));
+                   .format(extracted // 8, self.width // 8));
             extracted = self.width
         output(ind, 'return insn;\n')
 # end SizeLeaf