From: Philippe Waroquiers Date: Wed, 14 Mar 2012 21:27:35 +0000 (+0000) Subject: (for x86 and amd64): Change the type of the shadow regs for floating point registers X-Git-Tag: svn/VALGRIND_3_8_0~408 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39e18a06afa231eb8ea14e61c16e6ea08e5f64c9;p=thirdparty%2Fvalgrind.git (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 --- diff --git a/NEWS b/NEWS index a4da32f210..f3d75ed0c6 100644 --- a/NEWS +++ b/NEWS @@ -3,7 +3,7 @@ Release 3.8.0 (????) * ================== PLATFORM CHANGES ================= -* Support for AES instructions (AESKEYGENASSIST, AESENC, AESENCLAST, +* Support for amd64 AES instructions (AESKEYGENASSIST, AESENC, AESENCLAST, AESDEC, AESDECLAST, AESIMC). * ==================== TOOL CHANGES ==================== @@ -38,6 +38,10 @@ Release 3.8.0 (????) * Support to run Valgrind on Valgrind has been improved. +* gdbserver now shows the float shadow registers as integer + rather than float values, as the shadow values are mostly + used as bit patterns. + * ==================== FIXED BUGS ==================== The following bugs have been fixed or resolved. Note that "n-i-bz" diff --git a/coregrind/m_gdbserver/32bit-core-valgrind-s1.xml b/coregrind/m_gdbserver/32bit-core-valgrind-s1.xml index 9a0582f522..a29701fb94 100644 --- a/coregrind/m_gdbserver/32bit-core-valgrind-s1.xml +++ b/coregrind/m_gdbserver/32bit-core-valgrind-s1.xml @@ -27,6 +27,11 @@ + + + + + @@ -45,14 +50,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/32bit-core-valgrind-s2.xml b/coregrind/m_gdbserver/32bit-core-valgrind-s2.xml index 1b272c55dc..7ea1482446 100644 --- a/coregrind/m_gdbserver/32bit-core-valgrind-s2.xml +++ b/coregrind/m_gdbserver/32bit-core-valgrind-s2.xml @@ -27,6 +27,11 @@ + + + + + @@ -45,14 +50,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/32bit-sse-valgrind-s1.xml b/coregrind/m_gdbserver/32bit-sse-valgrind-s1.xml index 1a368c4eae..a650b16963 100644 --- a/coregrind/m_gdbserver/32bit-sse-valgrind-s1.xml +++ b/coregrind/m_gdbserver/32bit-sse-valgrind-s1.xml @@ -7,15 +7,15 @@ - - + + - - - + + + @@ -39,14 +39,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/32bit-sse-valgrind-s2.xml b/coregrind/m_gdbserver/32bit-sse-valgrind-s2.xml index c69da70f24..b3b1ac47fd 100644 --- a/coregrind/m_gdbserver/32bit-sse-valgrind-s2.xml +++ b/coregrind/m_gdbserver/32bit-sse-valgrind-s2.xml @@ -7,15 +7,15 @@ - - + + - - - + + + @@ -39,14 +39,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml b/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml index 67b497f15b..8c3b504311 100644 --- a/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml +++ b/coregrind/m_gdbserver/64bit-core-valgrind-s1.xml @@ -27,6 +27,11 @@ + + + + + @@ -53,14 +58,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/64bit-core-valgrind-s2.xml b/coregrind/m_gdbserver/64bit-core-valgrind-s2.xml index 14f2726018..b1bcba8e84 100644 --- a/coregrind/m_gdbserver/64bit-core-valgrind-s2.xml +++ b/coregrind/m_gdbserver/64bit-core-valgrind-s2.xml @@ -27,6 +27,11 @@ + + + + + @@ -53,14 +58,14 @@ - - - - - - - - + + + + + + + + diff --git a/coregrind/m_gdbserver/64bit-sse-valgrind-s1.xml b/coregrind/m_gdbserver/64bit-sse-valgrind-s1.xml index 9db6c746f6..eb01261549 100644 --- a/coregrind/m_gdbserver/64bit-sse-valgrind-s1.xml +++ b/coregrind/m_gdbserver/64bit-sse-valgrind-s1.xml @@ -7,15 +7,15 @@ - - + + - - - + + + @@ -39,22 +39,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/coregrind/m_gdbserver/64bit-sse-valgrind-s2.xml b/coregrind/m_gdbserver/64bit-sse-valgrind-s2.xml index 189910e80f..c4a66f1e27 100644 --- a/coregrind/m_gdbserver/64bit-sse-valgrind-s2.xml +++ b/coregrind/m_gdbserver/64bit-sse-valgrind-s2.xml @@ -7,15 +7,15 @@ - - + + - - - + + + @@ -39,22 +39,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/docs/xml/manual-core-adv.xml b/docs/xml/manual-core-adv.xml index 526351b8f4..2758ce5b9d 100644 --- a/docs/xml/manual-core-adv.xml +++ b/docs/xml/manual-core-adv.xml @@ -676,7 +676,7 @@ the Valgrind scheduler thread state: When the option is given, the Valgrind gdbserver will let GDB examine and/or modify Valgrind's shadow registers. GDB version 7.1 or later is needed for this -to work. +to work. For x86 and amd64, GDB version 7.2 or later is needed. For each CPU register, the Valgrind core maintains two shadow register sets. These shadow registers can be accessed from @@ -696,6 +696,10 @@ $3 = 0 (gdb) ]]> +Float shadow registers are shown by GDB as unsigned integer +values instead of float values, as it is expected that these +shadow values are mostly used for memcheck validity bits. +