OSDN Git Service

target/m68k: fix gdb for m68xxx
authorKONRAD Frederic <frederic.konrad@adacore.com>
Thu, 30 Apr 2020 19:01:22 +0000 (20:01 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 6 May 2020 08:29:26 +0000 (09:29 +0100)
commita976ed3ffdede7f64c89ac235d0154d048981b5f
tree157974ec2e6181e69e028c7bf6e4d664f9381588
parentdf3ca22318c01428e82cbe4d2777cdf97c9c1f06
target/m68k: fix gdb for m68xxx

Currently "cf-core.xml" is sent to GDB when using any m68k flavor.  Thing is
it uses the "org.gnu.gdb.coldfire.core" feature name and gdb 8.3 then expects
a coldfire FPU instead of the default m68881 FPU.

This is not OK because the m68881 floats registers are 96 bits wide so it
crashes GDB with the following error message:

(gdb) target remote localhost:7960
Remote debugging using localhost:7960
warning: Register "fp0" has an unsupported size (96 bits)
warning: Register "fp1" has an unsupported size (96 bits)
...
Remote 'g' packet reply is too long (expected 148 bytes, got 180 bytes):    \
  00000000000[...]0000

With this patch: qemu-system-m68k -M none -cpu m68020 -s -S

(gdb) tar rem :1234
Remote debugging using :1234
warning: No executable has been specified and target does not support
determining executable automatically.  Try using the "file" command.
0x00000000 in ?? ()
(gdb) p $fp0
$1 = nan(0xffffffffffffffff)

Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <1588094279-17913-3-git-send-email-frederic.konrad@adacore.com>
Message-Id: <20200430190122.4592-10-alex.bennee@linaro.org>
configure
gdb-xml/m68k-core.xml [new file with mode: 0644]
target/m68k/cpu.c