diff options
author | Peter Maydell | 2021-09-21 18:29:00 +0200 |
---|---|---|
committer | Peter Maydell | 2021-09-30 14:42:10 +0200 |
commit | b355f08a3724d3f29e1c177dde3a01b649108f98 (patch) | |
tree | 5d0132c7d6705945169cf6810d37acddbe07d568 /gdb-xml | |
parent | target/arm: Move gdbstub related code out of helper.c (diff) | |
download | qemu-b355f08a3724d3f29e1c177dde3a01b649108f98.tar.gz qemu-b355f08a3724d3f29e1c177dde3a01b649108f98.tar.xz qemu-b355f08a3724d3f29e1c177dde3a01b649108f98.zip |
target/arm: Don't put FPEXC and FPSID in org.gnu.gdb.arm.vfp XML
Currently we send VFP XML which includes D0..D15 or D0..D31, plus
FPSID, FPSCR and FPEXC. The upstream GDB tolerates this, but its
definition of this XML feature does not include FPSID or FPEXC. In
particular, for M-profile cores there are no FPSID or FPEXC
registers, so advertising those is wrong.
Move FPSID and FPEXC into their own bit of XML which we only send for
A and R profile cores. This brings our definition of the XML
org.gnu.gdb.arm.vfp feature into line with GDB's own (at least for
non-Neon cores...) and means we don't claim to have FPSID and FPEXC
on M-profile.
(It seems unlikely to me that any gdbstub users really care about
being able to look at FPEXC and FPSID; but we've supplied them to gdb
for a decade and it's not hard to keep doing so.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210921162901.17508-5-peter.maydell@linaro.org
Diffstat (limited to 'gdb-xml')
-rw-r--r-- | gdb-xml/arm-neon.xml | 2 | ||||
-rw-r--r-- | gdb-xml/arm-vfp-sysregs.xml | 17 | ||||
-rw-r--r-- | gdb-xml/arm-vfp.xml | 2 | ||||
-rw-r--r-- | gdb-xml/arm-vfp3.xml | 2 |
4 files changed, 17 insertions, 6 deletions
diff --git a/gdb-xml/arm-neon.xml b/gdb-xml/arm-neon.xml index ce3ee03ec4..9dce0a996f 100644 --- a/gdb-xml/arm-neon.xml +++ b/gdb-xml/arm-neon.xml @@ -82,7 +82,5 @@ <reg name="q14" bitsize="128" type="neon_q"/> <reg name="q15" bitsize="128" type="neon_q"/> - <reg name="fpsid" bitsize="32" type="int" group="float"/> <reg name="fpscr" bitsize="32" type="int" group="float"/> - <reg name="fpexc" bitsize="32" type="int" group="float"/> </feature> diff --git a/gdb-xml/arm-vfp-sysregs.xml b/gdb-xml/arm-vfp-sysregs.xml new file mode 100644 index 0000000000..c4aa2721c8 --- /dev/null +++ b/gdb-xml/arm-vfp-sysregs.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2021 Linaro Ltd. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + + These are A/R profile VFP system registers. Debugger users probably + don't really care about these, but because we used to (incorrectly) + provide them to gdb in the org.gnu.gdb.arm.vfp XML we continue + to do so via this separate XML. + --> +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.qemu.gdb.arm.vfp-sysregs"> + <reg name="fpsid" bitsize="32" type="int" group="float"/> + <reg name="fpexc" bitsize="32" type="int" group="float"/> +</feature> diff --git a/gdb-xml/arm-vfp.xml b/gdb-xml/arm-vfp.xml index b20881e9a9..ebed5b3d57 100644 --- a/gdb-xml/arm-vfp.xml +++ b/gdb-xml/arm-vfp.xml @@ -23,7 +23,5 @@ <reg name="d14" bitsize="64" type="float"/> <reg name="d15" bitsize="64" type="float"/> - <reg name="fpsid" bitsize="32" type="int" group="float"/> <reg name="fpscr" bitsize="32" type="int" group="float"/> - <reg name="fpexc" bitsize="32" type="int" group="float"/> </feature> diff --git a/gdb-xml/arm-vfp3.xml b/gdb-xml/arm-vfp3.xml index 227afd8017..ef391c7144 100644 --- a/gdb-xml/arm-vfp3.xml +++ b/gdb-xml/arm-vfp3.xml @@ -39,7 +39,5 @@ <reg name="d30" bitsize="64" type="float"/> <reg name="d31" bitsize="64" type="float"/> - <reg name="fpsid" bitsize="32" type="int" group="float"/> <reg name="fpscr" bitsize="32" type="int" group="float"/> - <reg name="fpexc" bitsize="32" type="int" group="float"/> </feature> |