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

Philippe Mathieu-Daudé posted 1 patch 4 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200330121345.14665-1-f4bug@amsat.org
Test asan passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test FreeBSD passed
scripts/decodetree.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Philippe Mathieu-Daudé 4 years ago
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(-)

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
-- 
2.21.1


Re: [PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Richard Henderson 4 years ago
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~

Re: [PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Richard Henderson 4 years ago
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~


Re: [PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Aleksandar Markovic 4 years ago
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~
>
>
Re: [PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Richard Henderson 4 years ago
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~

Re: [PATCH-for-5.0?] decodetree: Use Python3 floor division operator
Posted by Peter Maydell 4 years ago
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