rpms/valgrind/F-12 valgrind-3.5.0-amd64-loopnel.patch, NONE, 1.1 valgrind-3.5.0-ppc-tests.patch, 1.1, 1.2 valgrind.spec, 1.70, 1.71

Jakub Jelinek jakub at fedoraproject.org
Thu Oct 22 08:16:26 UTC 2009


Author: jakub

Update of /cvs/pkgs/rpms/valgrind/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10011

Modified Files:
	valgrind-3.5.0-ppc-tests.patch valgrind.spec 
Added Files:
	valgrind-3.5.0-amd64-loopnel.patch 
Log Message:
3.5.0-5

valgrind-3.5.0-amd64-loopnel.patch:
 VEX/priv/guest_amd64_toIR.c         |   10 ++++++----
 none/tests/amd64/Makefile.am        |    2 ++
 none/tests/amd64/Makefile.in        |   24 +++++++++++++++++-------
 none/tests/amd64/loopnel.c          |   11 +++++++++++
 none/tests/amd64/loopnel.stderr.exp |    2 ++
 none/tests/amd64/loopnel.stdout.exp |    1 +
 none/tests/amd64/loopnel.vgtest     |    1 +
 7 files changed, 40 insertions(+), 11 deletions(-)

--- NEW FILE valgrind-3.5.0-amd64-loopnel.patch ---
--- valgrind/VEX/priv/guest_amd64_toIR.c.jj	2009-10-09 12:52:07.000000000 +0200
+++ valgrind/VEX/priv/guest_amd64_toIR.c	2009-10-21 22:46:40.000000000 +0200
@@ -14011,17 +14011,19 @@ DisResult disInstr_AMD64_WRK ( 
    case 0xE1: /* LOOPE  disp8: decrement count, jump if count != 0 && ZF==1 */
    case 0xE2: /* LOOP   disp8: decrement count, jump if count != 0 */
     { /* The docs say this uses rCX as a count depending on the
-         address size override, not the operand one.  Since we don't
-         handle address size overrides, I guess that means RCX. */
+         address size override, not the operand one.  */
       IRExpr* zbit  = NULL;
       IRExpr* count = NULL;
       IRExpr* cond  = NULL;
       HChar*  xtra  = NULL;
 
-      if (have66orF2orF3(pfx) || haveASO(pfx)) goto decode_failure;
+      if (have66orF2orF3(pfx)) goto decode_failure;
       d64 = guest_RIP_bbstart+delta+1 + getSDisp8(delta);
       delta++;
-      putIReg64(R_RCX, binop(Iop_Sub64, getIReg64(R_RCX), mkU64(1)));
+      if (haveASO (pfx))
+         putIReg32(R_RCX, binop(Iop_Sub32, getIReg32(R_RCX), mkU32(1)));
+      else
+         putIReg64(R_RCX, binop(Iop_Sub64, getIReg64(R_RCX), mkU64(1)));
 
       count = getIReg64(R_RCX);
       cond = binop(Iop_CmpNE64, count, mkU64(0));
--- valgrind/none/tests/amd64/loopnel.c.jj	2009-10-22 09:42:36.000000000 +0200
+++ valgrind/none/tests/amd64/loopnel.c	2009-10-22 09:43:07.000000000 +0200
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int
+main (void)
+{
+  long rcx = 0x200000005UL;
+  long rax = 5UL;
+  asm volatile ("1: addq $1, %0; loopnel 1b" : "+a" (rax), "+c" (rcx) : : "cc");
+  printf ("%ld %ld\n", rax, rcx);
+  return 0;
+}
--- valgrind/none/tests/amd64/loopnel.vgtest.jj	2009-10-22 09:43:54.000000000 +0200
+++ valgrind/none/tests/amd64/loopnel.vgtest	2009-10-22 09:43:59.000000000 +0200
@@ -0,0 +1 @@
+prog: loopnel
--- valgrind/none/tests/amd64/loopnel.stdout.exp.jj	2009-10-22 09:43:28.000000000 +0200
+++ valgrind/none/tests/amd64/loopnel.stdout.exp	2009-10-22 09:43:24.000000000 +0200
@@ -0,0 +1 @@
+10 0
--- valgrind/none/tests/amd64/loopnel.stderr.exp.jj	2009-10-22 09:43:40.000000000 +0200
+++ valgrind/none/tests/amd64/loopnel.stderr.exp	2009-08-19 15:37:15.000000000 +0200
@@ -0,0 +1,2 @@
+
+
--- valgrind/none/tests/amd64/Makefile.am.jj	2009-08-19 15:37:15.000000000 +0200
+++ valgrind/none/tests/amd64/Makefile.am	2009-10-22 09:44:53.000000000 +0200
@@ -37,6 +37,7 @@ EXTRA_DIST = \
 	insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
 	jrcxz.stderr.exp jrcxz.stdout.exp jrcxz.vgtest \
 	looper.stderr.exp looper.stdout.exp looper.vgtest \
+	loopnel.stderr.exp loopnel.stdout.exp loopnel.vgtest \
 	nibz_bennee_mmap.stderr.exp nibz_bennee_mmap.stdout.exp \
 	nibz_bennee_mmap.vgtest \
 	rcl-amd64.vgtest rcl-amd64.stdout.exp rcl-amd64.stderr.exp \
@@ -72,6 +73,7 @@ if ! VGCONF_OS_IS_DARWIN
 	fcmovnu \
 	fxtract \
 	looper \
+	loopnel \
 	jrcxz \
 	shrld \
 	slahf-amd64
--- valgrind/none/tests/amd64/Makefile.in.jj	2009-08-19 15:43:22.000000000 +0200
+++ valgrind/none/tests/amd64/Makefile.in	2009-10-22 09:46:44.000000000 +0200
@@ -65,6 +65,7 @@ check_PROGRAMS = amd64locked$(EXEEXT) bu
 @VGCONF_OS_IS_DARWIN_FALSE@	fcmovnu \
 @VGCONF_OS_IS_DARWIN_FALSE@	fxtract \
 @VGCONF_OS_IS_DARWIN_FALSE@	looper \
+ at VGCONF_OS_IS_DARWIN_FALSE@	loopnel \
 @VGCONF_OS_IS_DARWIN_FALSE@	jrcxz \
 @VGCONF_OS_IS_DARWIN_FALSE@	shrld \
 @VGCONF_OS_IS_DARWIN_FALSE@	slahf-amd64
@@ -87,8 +88,9 @@ am__EXEEXT_3 = insn_basic$(EXEEXT) insn_
 @VGCONF_OS_IS_DARWIN_FALSE@	bug156404-amd64$(EXEEXT) \
 @VGCONF_OS_IS_DARWIN_FALSE@	faultstatus$(EXEEXT) \
 @VGCONF_OS_IS_DARWIN_FALSE@	fcmovnu$(EXEEXT) fxtract$(EXEEXT) \
- at VGCONF_OS_IS_DARWIN_FALSE@	looper$(EXEEXT) jrcxz$(EXEEXT) \
- at VGCONF_OS_IS_DARWIN_FALSE@	shrld$(EXEEXT) slahf-amd64$(EXEEXT)
+ at VGCONF_OS_IS_DARWIN_FALSE@	looper$(EXEEXT) loopnel$(EXEEXT) \
+ at VGCONF_OS_IS_DARWIN_FALSE@	jrcxz$(EXEEXT) shrld$(EXEEXT) \
+ at VGCONF_OS_IS_DARWIN_FALSE@	slahf-amd64$(EXEEXT)
 amd64locked_SOURCES = amd64locked.c
 amd64locked_OBJECTS = amd64locked-amd64locked.$(OBJEXT)
 amd64locked_LDADD = $(LDADD)
@@ -146,6 +148,9 @@ jrcxz_LDADD = $(LDADD)
 looper_SOURCES = looper.c
 looper_OBJECTS = looper.$(OBJEXT)
 looper_LDADD = $(LDADD)
+loopnel = loopnel.c
+loopnel_OBJECTS = loopnel.$(OBJEXT)
+loopnel_LDADD = $(LDADD)
 nibz_bennee_mmap_SOURCES = nibz_bennee_mmap.c
 nibz_bennee_mmap_OBJECTS = nibz_bennee_mmap.$(OBJEXT)
 nibz_bennee_mmap_LDADD = $(LDADD)
@@ -180,16 +185,16 @@ SOURCES = amd64locked.c bug127521-64.c b
 	fcmovnu.c fxtract.c $(insn_basic_SOURCES) $(insn_fpu_SOURCES) \
 	$(insn_mmx_SOURCES) $(insn_sse_SOURCES) $(insn_sse2_SOURCES) \
 	$(insn_sse3_SOURCES) $(insn_ssse3_SOURCES) jrcxz.c looper.c \
-	nibz_bennee_mmap.c rcl-amd64.c redundantRexW.c shrld.c \
-	slahf-amd64.c smc1.c ssse3_misaligned.c
+	loopnel.c nibz_bennee_mmap.c rcl-amd64.c redundantRexW.c \
+	shrld.c slahf-amd64.c smc1.c ssse3_misaligned.c
 DIST_SOURCES = amd64locked.c bug127521-64.c bug132813-amd64.c \
 	bug132918.c bug137714-amd64.c bug156404-amd64.c clc.c \
 	faultstatus.c fcmovnu.c fxtract.c $(insn_basic_SOURCES) \
 	$(insn_fpu_SOURCES) $(insn_mmx_SOURCES) $(insn_sse_SOURCES) \
 	$(insn_sse2_SOURCES) $(insn_sse3_SOURCES) \
-	$(insn_ssse3_SOURCES) jrcxz.c looper.c nibz_bennee_mmap.c \
-	rcl-amd64.c redundantRexW.c shrld.c slahf-amd64.c smc1.c \
-	ssse3_misaligned.c
+	$(insn_ssse3_SOURCES) jrcxz.c looper.c loopnel.c \
+	nibz_bennee_mmap.c rcl-amd64.c redundantRexW.c shrld.c \
+	slahf-amd64.c smc1.c ssse3_misaligned.c
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -536,6 +541,7 @@ EXTRA_DIST = \
 	insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
 	jrcxz.stderr.exp jrcxz.stdout.exp jrcxz.vgtest \
 	looper.stderr.exp looper.stdout.exp looper.vgtest \
+	loopnel.stderr.exp loopnel.stdout.exp loopnel.vgtest \
 	nibz_bennee_mmap.stderr.exp nibz_bennee_mmap.stdout.exp \
 	nibz_bennee_mmap.vgtest \
 	rcl-amd64.vgtest rcl-amd64.stdout.exp rcl-amd64.stderr.exp \
@@ -661,6 +667,9 @@ jrcxz$(EXEEXT): $(jrcxz_OBJECTS) $(jrcxz
 looper$(EXEEXT): $(looper_OBJECTS) $(looper_DEPENDENCIES) 
 	@rm -f looper$(EXEEXT)
 	$(LINK) $(looper_LDFLAGS) $(looper_OBJECTS) $(looper_LDADD) $(LIBS)
+loopnel$(EXEEXT): $(loopnel_OBJECTS) $(loopnel_DEPENDENCIES) 
+	@rm -f loopnel$(EXEEXT)
+	$(LINK) $(loopnel_LDFLAGS) $(loopnel_OBJECTS) $(loopnel_LDADD) $(LIBS)
 nibz_bennee_mmap$(EXEEXT): $(nibz_bennee_mmap_OBJECTS) $(nibz_bennee_mmap_DEPENDENCIES) 
 	@rm -f nibz_bennee_mmap$(EXEEXT)
 	$(LINK) $(nibz_bennee_mmap_LDFLAGS) $(nibz_bennee_mmap_OBJECTS) $(nibz_bennee_mmap_LDADD) $(LIBS)
@@ -708,6 +717,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/insn_ssse3.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jrcxz.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/looper.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/loopnel.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/nibz_bennee_mmap.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rcl-amd64.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/redundantRexW.Po at am__quote@

valgrind-3.5.0-ppc-tests.patch:
 ppc32/jm-insns.c |    8 ++++----
 ppc64/jm-insns.c |    8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

Index: valgrind-3.5.0-ppc-tests.patch
===================================================================
RCS file: /cvs/pkgs/rpms/valgrind/F-12/valgrind-3.5.0-ppc-tests.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- valgrind-3.5.0-ppc-tests.patch	21 Oct 2009 14:54:08 -0000	1.1
+++ valgrind-3.5.0-ppc-tests.patch	22 Oct 2009 08:16:26 -0000	1.2
@@ -15,3 +15,20 @@
  register HWord_t r14 __asm__ ("r14");
  register HWord_t r15 __asm__ ("r15");
  register HWord_t r16 __asm__ ("r16");
+--- valgrind/none/tests/ppc64/jm-insns.c.jj	2009-10-09 12:52:01.000000000 +0200
++++ valgrind/none/tests/ppc64/jm-insns.c	2009-10-20 17:25:32.000000000 +0200
+@@ -210,10 +210,10 @@ typedef uint64_t  HWord_t;
+ 
+ 
+ /* XXXX these must all be callee-save regs! */
+-register double f14 __asm__ ("f14");
+-register double f15 __asm__ ("f15");
+-register double f16 __asm__ ("f16");
+-register double f17 __asm__ ("f17");
++register double f14 __asm__ ("46");
++register double f15 __asm__ ("47");
++register double f16 __asm__ ("48");
++register double f17 __asm__ ("49");
+ register HWord_t r14 __asm__ ("r14");
+ register HWord_t r15 __asm__ ("r15");
+ register HWord_t r16 __asm__ ("r16");


Index: valgrind.spec
===================================================================
RCS file: /cvs/pkgs/rpms/valgrind/F-12/valgrind.spec,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -p -r1.70 -r1.71
--- valgrind.spec	21 Oct 2009 14:54:08 -0000	1.70
+++ valgrind.spec	22 Oct 2009 08:16:26 -0000	1.71
@@ -1,7 +1,7 @@
 Summary: Tool for finding memory management bugs in programs
 Name: valgrind
 Version: 3.5.0
-Release: 4
+Release: 5
 Epoch: 1
 Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
 Patch1: valgrind-3.5.0-cachegrind-improvements.patch
@@ -14,6 +14,7 @@ Patch7: valgrind-3.5.0-dwarf3.patch
 Patch8: valgrind-3.5.0-pr40659.patch
 Patch9: valgrind-3.5.0-helgrind-race-supp.patch
 Patch10: valgrind-3.5.0-ppc-tests.patch
+Patch11: valgrind-3.5.0-amd64-loopnel.patch
 License: GPLv2
 URL: http://www.valgrind.org/
 Group: Development/Debuggers
@@ -77,6 +78,7 @@ or valgrind plugins.
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
 
 %build
 %ifarch x86_64 ppc64
@@ -162,6 +164,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/pkgconfig/*
 
 %changelog
+* Thu Oct 22 2009 Jakub Jelinek <jakub at redhat.com> 3.5.0-5
+- add emulation of 0x67 prefixed loop* insns on x86_64 (#530165)
+
 * Wed Oct 21 2009 Jakub Jelinek <jakub at redhat.com> 3.5.0-4
 - handle reading of .debug_frame in addition to .eh_frame
 - ignore unknown DWARF3 expressions in evaluate_trivial_GX




More information about the scm-commits mailing list