Fix wrong output of x87 registers due to truncation to double on amd64
authorRuslan Kabatsayev <b7.10110111@gmail.com>
Wed, 9 Dec 2015 12:17:40 +0000 (12:17 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 9 Dec 2015 12:17:40 +0000 (12:17 +0000)
commitb593e3d9b00b09af43abf1e95d68e68200e3c2a5
treea86220d8fa167ad288e6c532a39d5c476dfd7354
parentc192dad24398767edd64ab7e5e3a72df9265bda0
Fix wrong output of x87 registers due to truncation to double on amd64

When `info float` is used on an AMD64 system, GDB prints
floating-point values of x87 registers with raw contents like
0x361a867a8e0527397ce0 or 0xc4f988454a1ddd3cfdab wrongly.

This happens due to truncation to double, after which the former
becomes 0.0, and the latter becomes negative infinity.  This is caused
by failed detection of x86-64 host, which results in setting
gdb_host_{float,double,long_double}_format to zeros.

This commit fixes this misdetection, and adds a test to make sure
future commits don't introduce a regression here.

gdb/ChangeLog:
2015-12-09  Ruslan Kabatsayev  <b7.10110111@gmail.com>

PR gdb/18702
* configure.host: Fix detection of x86_64 host when setting
floatformats.

gdb/testsuite/ChangeLog:
2015-12-09  Ruslan Kabatsayev  <b7.10110111@gmail.com>
    Pedro Alves  <pedro@redhat.com>

PR gdb/18702
Add checking of floatformats setup on x86_64 hosts.
* gdb.arch/i386-float.S (main): Load bigval and smallval.
(smallval, bigval): New labels/constants.
* gdb.arch/i386-float.exp: Use with_test_prefix and test "info
float" after loading bigval and smallval.
gdb/ChangeLog
gdb/configure.host
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/i386-float.S
gdb/testsuite/gdb.arch/i386-float.exp