Message ID | 20181111000259.7665-1-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | decodetree: Force Python to print unsigned values | expand |
On 11/11/18 1:02 AM, Philippe Mathieu-Daudé wrote: > Python internal representation is signed, so unsigned values > bigger than 31-bit are interpreted as signed (and printed with > a '-' signed). > Mask out to force unsigned values. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > scripts/decodetree.py | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Queued, thanks. r~
Hi Richard, On Sun, Nov 11, 2018 at 12:27 PM Richard Henderson <richard.henderson@linaro.org> wrote: > On 11/11/18 1:02 AM, Philippe Mathieu-Daudé wrote: > > Python internal representation is signed, so unsigned values > > bigger than 31-bit are interpreted as signed (and printed with > > a '-' signed). > > Mask out to force unsigned values. > > > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > --- > > scripts/decodetree.py | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > Queued, thanks. Can you drop this from your queue? I'll send a cleaner approach (as RFC, and I also want to log the error I got in the commit msg). Thanks, Phil.
On 11/12/18 12:06 AM, Philippe Mathieu-Daudé wrote: >> On 11/11/18 1:02 AM, Philippe Mathieu-Daudé wrote: >>> Python internal representation is signed, so unsigned values >>> bigger than 31-bit are interpreted as signed (and printed with >>> a '-' signed). >>> Mask out to force unsigned values. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >>> --- >>> scripts/decodetree.py | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> Queued, thanks. > > Can you drop this from your queue? I'll send a cleaner approach (as > RFC, and I also want to log the error I got in the commit msg). Done. r~
diff --git a/scripts/decodetree.py b/scripts/decodetree.py index 5dea15e7a5..a24017d33e 100755 --- a/scripts/decodetree.py +++ b/scripts/decodetree.py @@ -895,10 +895,10 @@ class Tree: return '0x{0:x}'.format(b >> sh) else: def str_switch(b): - return 'insn & 0x{0:08x}'.format(b) + return 'insn & 0x{0:08x}'.format(b & 0xffffffff) def str_case(b): - return '0x{0:08x}'.format(b) + return '0x{0:08x}'.format(b & 0xffffffff) output(ind, 'switch (', str_switch(self.thismask), ') {\n') for b, s in sorted(self.subs):
Python internal representation is signed, so unsigned values bigger than 31-bit are interpreted as signed (and printed with a '-' signed). Mask out to force unsigned values. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- scripts/decodetree.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)