(for x86 and amd64): Change the type of the shadow regs for floating point registers
Similar to r12444 (see Log below), but this is doing it for x86 and amd64.
The xmm registers are using uint32 or uint64 for their float
union components. For the i387 80 bits float registers, as there is
no uint80, a struct uint16 + uint64 is defined.
Log:
Change the type of the shadow regs for floating point registers
to be uint64. Previously the value in such a shadow reg would
be interpreted by gdb as a floating point value which would
produce non-sensible output for e.g p/x $f1s1.
This patch covers the power and arm architectures.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12445 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml b/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml
index 67b497f..8c3b504 100644
--- a/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml
+++ b/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml
@@ -27,6 +27,11 @@
<field name="ID" start="21" end="21"/>
</flags>
+ <struct id="i387_ext_s">
+ <field name="b64" type="uint64"/>
+ <field name="b16" type="uint16"/>
+ </struct>
+
<reg name="raxs1" bitsize="64" type="int64"/>
<reg name="rbxs1" bitsize="64" type="int64"/>
<reg name="rcxs1" bitsize="64" type="int64"/>
@@ -53,14 +58,14 @@
<reg name="fss1" bitsize="32" type="int32"/>
<reg name="gss1" bitsize="32" type="int32"/>
- <reg name="st0s1" bitsize="80" type="i387_ext"/>
- <reg name="st1s1" bitsize="80" type="i387_ext"/>
- <reg name="st2s1" bitsize="80" type="i387_ext"/>
- <reg name="st3s1" bitsize="80" type="i387_ext"/>
- <reg name="st4s1" bitsize="80" type="i387_ext"/>
- <reg name="st5s1" bitsize="80" type="i387_ext"/>
- <reg name="st6s1" bitsize="80" type="i387_ext"/>
- <reg name="st7s1" bitsize="80" type="i387_ext"/>
+ <reg name="st0s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st1s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st2s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st3s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st4s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st5s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st6s1" bitsize="80" type="i387_ext_s"/>
+ <reg name="st7s1" bitsize="80" type="i387_ext_s"/>
<reg name="fctrls1" bitsize="32" type="int" group="float"/>
<reg name="fstats1" bitsize="32" type="int" group="float"/>