aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb-xml/power-core.xml9
-rw-r--r--gdb-xml/power64-core.xml9
2 files changed, 18 insertions, 0 deletions
diff --git a/gdb-xml/power-core.xml b/gdb-xml/power-core.xml
index 0c69e8c8a7..dae13a67ef 100644
--- a/gdb-xml/power-core.xml
+++ b/gdb-xml/power-core.xml
@@ -46,4 +46,13 @@
<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/power64-core.xml b/gdb-xml/power64-core.xml
index 6cc1531201..fef42e4166 100644
--- a/gdb-xml/power64-core.xml
+++ b/gdb-xml/power64-core.xml
@@ -46,4 +46,13 @@
<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>