diff options
author | Andrew Burgess <aburgess@redhat.com> | 2022-08-09 17:12:40 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2022-08-09 17:37:46 +0100 |
commit | c1abad9ebadc94e2ca215fd0fb6b59072b67351c (patch) | |
tree | 4a6867a99a44b245ffea809e5f873038aac5b90b /gdbsupport/errors.h | |
parent | 410a3464e7960d24de4a200e70502dcd01eff98d (diff) | |
download | binutils-c1abad9ebadc94e2ca215fd0fb6b59072b67351c.zip binutils-c1abad9ebadc94e2ca215fd0fb6b59072b67351c.tar.gz binutils-c1abad9ebadc94e2ca215fd0fb6b59072b67351c.tar.bz2 |
gdb/riscv/testsuite: fix failures in gdb.arch/riscv-reg-aliases.exp
When running on a native RISC-V Linux target I currently see failures
in the gdb.arch/riscv-reg-aliases.exp test like this:
set $ft0.float = 501
(gdb) PASS: gdb.arch/riscv-reg-aliases.exp: write non-zero value to ft0
p/d $ft0.float
$263 = 1140490240
(gdb) FAIL: gdb.arch/riscv-reg-aliases.exp: read ft0 after non-zero write to ft0
This test started failing after this commit:
commit 56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e
Date: Thu Feb 17 13:43:59 2022 -0700
Change how "print/x" displays floating-point value
The problem is that when 501 is written to $ft0.float the value is
converted to floating point format and stored in the register. Prior
to the above commit printing with /x and /d would first extract the
value as a float, and then convert the value to an integer for
display. After the above commit GDB now uses the raw register value
when displaying /x and /d, and so we see this behaviour:
(gdb) info registers $ft0
ft0 {float = 501, double = 5.6347704700123827e-315} (raw 0x0000000043fa8000)
(gdb) p/f $ft0.float
$1 = 501
(gdb) p/d $ft0.float
$2 = 1140490240
(gdb) p/x $ft0.float
$3 = 0x43fa8000
To fix this test I now print the float registers using the /f format
rather than /d. With this change the test now passes.
Diffstat (limited to 'gdbsupport/errors.h')
0 files changed, 0 insertions, 0 deletions