Hello community, here is the log from the commit of package valgrind checked in at Wed Aug 2 16:24:06 CEST 2006. -------- --- valgrind/valgrind.changes 2006-08-01 03:18:44.000000000 +0200 +++ valgrind/valgrind.changes 2006-08-02 14:47:23.000000000 +0200 @@ -1,0 +2,5 @@ +Wed Aug 2 14:47:08 CEST 2006 - dmueller@suse.de + +- also fix multibyte NOP parsing for x86_64 + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ valgrind.spec ++++++ --- /var/tmp/diff_new_pack.v31Diq/_old 2006-08-02 16:24:00.000000000 +0200 +++ /var/tmp/diff_new_pack.v31Diq/_new 2006-08-02 16:24:00.000000000 +0200 @@ -18,7 +18,7 @@ Summary: Memory Management Debugger BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: 3.2.0 -Release: 3 +Release: 4 Source0: %{name}-%{version}.tar.bz2 # svn di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_1_0 svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_1_BRANCH > 3_1_BRANCH.diff # svn di svn://svn.valgrind.org/vex/tags/VEX_3_1_0 svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH > VEX_3_1_BRANCH.diff @@ -93,6 +93,8 @@ %doc %_mandir/*/* %changelog -n valgrind +* Wed Aug 02 2006 - dmueller@suse.de +- also fix multibyte NOP parsing for x86_64 * Tue Aug 01 2006 - dmueller@suse.de - add patch to handle multibyte NOPs as generated by recent binutils ++++++ multibyte-nop.diff ++++++ --- /var/tmp/diff_new_pack.v31Diq/_old 2006-08-02 16:24:00.000000000 +0200 +++ /var/tmp/diff_new_pack.v31Diq/_new 2006-08-02 16:24:00.000000000 +0200 @@ -1,20 +1,51 @@ -Index: VEX/priv/guest-x86/toIR.c +------------------------------------------------------------------------ +r1634 | sewardj | 2006-08-01 20:36:25 +0200 (Tue, 01 Aug 2006) | 4 lines + +Handle nop-with-an-amode (sheesh. Mutancy. whatever next?) for x86 and +amd64. Fixes #131481 and #131298. + + +------------------------------------------------------------------------ +Index: priv/guest-amd64/toIR.c =================================================================== ---- VEX/priv/guest-x86/toIR.c (revision 1633) -+++ VEX/priv/guest-x86/toIR.c (working copy) -@@ -12644,6 +12644,15 @@ DisResult disInstr_X86_WRK ( - DIP("emms\n"); +--- VEX/priv/guest-amd64/toIR.c (revision 1633) ++++ VEX/priv/guest-amd64/toIR.c (revision 1634) +@@ -13570,6 +13570,17 @@ DisResult disInstr_AMD64_WRK ( + delta = dis_mul_E_G ( pfx, sz, delta ); break; -+ case 0x1F: /* NOP [HINT] */ -+ { -+ int len; -+ addr = disAMode ( &len, sorb, delta, dis_buf ); -+ delta +=len; -+ DIP("NOP [HINT]"); ++ /* =-=-=-=-=-=-=-=-=- NOPs =-=-=-=-=-=-=-=-=-=-=-= */ ++ ++ case 0x1F: ++ if (haveF2orF3(pfx)) goto decode_failure; ++ modrm = getUChar(delta); ++ if (epartIsReg(modrm)) goto decode_failure; ++ addr = disAMode ( &alen, pfx, delta, dis_buf, 0 ); ++ delta += alen; ++ DIP("nop%c %s\n", nameISize(sz), dis_buf); + break; -+ } + - /* =-=-=-=-=-=-=-=-=- unimp2 =-=-=-=-=-=-=-=-=-=-= */ + /* =-=-=-=-=-=-=-=-=- Jcond d32 -=-=-=-=-=-=-=-=-= */ + case 0x80: + case 0x81: +Index: priv/guest-x86/toIR.c +=================================================================== +--- VEX/priv/guest-x86/toIR.c (revision 1633) ++++ VEX/priv/guest-x86/toIR.c (revision 1634) +@@ -12388,6 +12388,16 @@ DisResult disInstr_X86_WRK ( + delta = dis_mul_E_G ( sorb, sz, delta ); + break; - default: ++ /* =-=-=-=-=-=-=-=-=- NOPs =-=-=-=-=-=-=-=-=-=-=-= */ ++ ++ case 0x1F: ++ modrm = getUChar(delta); ++ if (epartIsReg(modrm)) goto decode_failure; ++ addr = disAMode ( &alen, sorb, delta, dis_buf ); ++ delta += alen; ++ DIP("nop%c %s\n", nameISize(sz), dis_buf); ++ break; ++ + /* =-=-=-=-=-=-=-=-=- Jcond d32 -=-=-=-=-=-=-=-=-= */ + case 0x80: + case 0x81: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...