From: Nathan Froyd <froydnj@codesourcery.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH] gdb-xml: fix hacks in powerpc register numbering
Date: Thu, 4 Jun 2009 19:02:28 -0700 [thread overview]
Message-ID: <1244167348-806-1-git-send-email-froydnj@codesourcery.com> (raw)
The powerpc xml files contained a hack--an empty, non-existent
register--for getting the register numbers to line up for
newer (XML-aware) and older (non-XML-aware) GDB. While this hack worked
in some cases, it didn't work in all cases, notably when the user used
`finish' or `continue': GDB would attempt to read the non-existent
register and QEMU would complain.
This patch fixes things up properly. Instead of inserting a fake
register, we explicitly declare the floating-point and SPE registers to
start at 71. This action accomplishes the same thing as the nasty hack,
except that now GDB never tries to fetch the non-existant register 70.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
---
gdb-xml/power-core.xml | 9 ---------
gdb-xml/power-fpu.xml | 2 +-
gdb-xml/power-spe.xml | 2 +-
gdb-xml/power64-core.xml | 9 ---------
4 files changed, 2 insertions(+), 20 deletions(-)
diff --git a/gdb-xml/power-core.xml b/gdb-xml/power-core.xml
index dae13a6..0c69e8c 100644
--- a/gdb-xml/power-core.xml
+++ b/gdb-xml/power-core.xml
@@ -46,13 +46,4 @@
<reg name="lr" bitsize="32" type="code_ptr"/>
<reg name="ctr" bitsize="32" type="uint32"/>
<reg name="xer" bitsize="32" type="uint32"/>
- <!-- HACK: The way the QEMU GDB stub code is currently written requires
- the "integer" registers from the XML file to span the entirety of
- NUM_CORE_REGS that non-XML-aware GDB requires. Otherwise, XML-aware
- GDB thinks that "coprocessor" registers from XML, such as the
- floating-point registers, have register numbers less than
- NUM_CORE_REGS. This can lead to problems. Work around it by using
- an unnamed register as padding; NUM_CORE_REGS on Power is 71 and
- this register is 70. It would be fpscr for non-XML-aware GDB. -->
- <reg name="" bitsize="32" type="uint32"/>
</feature>
diff --git a/gdb-xml/power-fpu.xml b/gdb-xml/power-fpu.xml
index d1ca3a3..3870551 100644
--- a/gdb-xml/power-fpu.xml
+++ b/gdb-xml/power-fpu.xml
@@ -7,7 +7,7 @@
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.power.fpu">
- <reg name="f0" bitsize="64" type="ieee_double"/>
+ <reg name="f0" bitsize="64" type="ieee_double" regnum="71"/>
<reg name="f1" bitsize="64" type="ieee_double"/>
<reg name="f2" bitsize="64" type="ieee_double"/>
<reg name="f3" bitsize="64" type="ieee_double"/>
diff --git a/gdb-xml/power-spe.xml b/gdb-xml/power-spe.xml
index 1ec15d6..57740cc 100644
--- a/gdb-xml/power-spe.xml
+++ b/gdb-xml/power-spe.xml
@@ -7,7 +7,7 @@
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.power.spe">
- <reg name="ev0h" bitsize="32"/>
+ <reg name="ev0h" bitsize="32" regnum="71"/>
<reg name="ev1h" bitsize="32"/>
<reg name="ev2h" bitsize="32"/>
<reg name="ev3h" bitsize="32"/>
diff --git a/gdb-xml/power64-core.xml b/gdb-xml/power64-core.xml
index fef42e4..6cc1531 100644
--- a/gdb-xml/power64-core.xml
+++ b/gdb-xml/power64-core.xml
@@ -46,13 +46,4 @@
<reg name="lr" bitsize="64" type="code_ptr"/>
<reg name="ctr" bitsize="64" type="uint64"/>
<reg name="xer" bitsize="32" type="uint32"/>
- <!-- HACK: The way the QEMU GDB stub code is currently written requires
- the "integer" registers from the XML file to span the entirety of
- NUM_CORE_REGS that non-XML-aware GDB requires. Otherwise, XML-aware
- GDB thinks that "coprocessor" registers from XML, such as the
- floating-point registers, have register numbers less than
- NUM_CORE_REGS. This can lead to problems. Work around it by using
- an unnamed register as padding; NUM_CORE_REGS on Power is 71 and
- this register is 70. It would be fpscr for non-XML-aware GDB. -->
- <reg name="" bitsize="32" type="uint32"/>
</feature>
--
1.6.3.2
next reply other threads:[~2009-06-05 2:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-05 2:02 Nathan Froyd [this message]
2009-06-23 15:35 ` [Qemu-devel] [PATCH] gdb-xml: fix hacks in powerpc register numbering Nathan Froyd
2009-07-07 16:04 ` Nathan Froyd
2009-07-12 21:42 ` Aurelien Jarno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1244167348-806-1-git-send-email-froydnj@codesourcery.com \
--to=froydnj@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.