3.4.1-1
This commit is contained in:
parent
f47d25dcf8
commit
7657d9810e
@ -1 +1 @@
|
||||
valgrind-3.4.0.tar.bz2
|
||||
valgrind-3.4.1.tar.bz2
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
1b0fe1219e1a583ff8c2db54ed2265e6 valgrind-3.4.0.tar.bz2
|
||||
b5f039dd2271aaf9ae570ab4116f87c7 valgrind-3.4.1.tar.bz2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,68 +0,0 @@
|
||||
--- valgrind-3.4.0/Makefile.am.jj 2009-01-02 13:40:45.000000000 -0500
|
||||
+++ valgrind-3.4.0/Makefile.am 2009-02-09 07:40:21.140994000 -0500
|
||||
@@ -209,26 +209,26 @@ valt_load_address_x86_linux.lds: Makefil
|
||||
$(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_amd64_linux.lds: Makefile
|
||||
$(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_ppc32_linux.lds: Makefile
|
||||
$(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_ppc64_linux.lds: Makefile
|
||||
$(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
--- valgrind-3.4.0/Makefile.in.jj 2009-01-02 13:50:00.000000000 -0500
|
||||
+++ valgrind-3.4.0/Makefile.in 2009-02-09 07:41:28.439218000 -0500
|
||||
@@ -946,28 +946,28 @@ valt_load_address_x86_linux.lds: Makefil
|
||||
$(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_amd64_linux.lds: Makefile
|
||||
$(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_ppc32_linux.lds: Makefile
|
||||
$(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
|
||||
valt_load_address_ppc64_linux.lds: Makefile
|
||||
$(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
|
||||
-e '1,/^=====\+$$/d' \
|
||||
-e '/^=====\+$$/,/.\*/d' \
|
||||
- -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
+ -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
|
||||
|| rm -f $@
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
@ -1,71 +0,0 @@
|
||||
--- valgrind-3.4.0/configure.in.jj 2007-01-29 14:42:52.000000000 -0500
|
||||
+++ valgrind-3.4.0/configure.in 2007-02-13 08:02:26.000000000 -0500
|
||||
@@ -289,6 +289,7 @@ case "${host_os}" in
|
||||
AC_MSG_ERROR([Valgrind is operating system specific. Sorry. Please consider doing a port.])
|
||||
;;
|
||||
esac
|
||||
+VG_PLATFORM=`echo "$VG_PLATFORM_PRI" | LC_ALL=C tr A-Z_ a-z-`
|
||||
|
||||
# If we are building on a 64 bit platform test to see if the system
|
||||
# supports building 32 bit programs and disable 32 bit support if it
|
||||
@@ -331,6 +332,7 @@ AC_MSG_CHECKING([for a supported CPU/OS
|
||||
|
||||
AC_SUBST(VG_PLATFORM_PRI)
|
||||
AC_SUBST(VG_PLATFORM_SEC)
|
||||
+AC_SUBST(VG_PLATFORM)
|
||||
AC_SUBST(VG_ARCH_PRI)
|
||||
|
||||
# By default, the primary arch is the same as the "max" arch, as
|
||||
--- valgrind-3.4.0/configure.jj 2007-01-29 14:45:30.000000000 -0500
|
||||
+++ valgrind-3.4.0/configure 2007-02-13 08:04:33.000000000 -0500
|
||||
@@ -311,7 +311,7 @@ ac_includes_default="\
|
||||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT VEX_DIR DISTCHECK_CONFIGURE_FLAGS LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE RANLIB ac_ct_RANLIB AR PERL GDB CCAS CCASFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os VG_ARCH_MAX VG_ARCH_ALL VALT_LOAD_ADDRESS VG_OS VG_PLATFORM_PRI VG_PLATFORM_SEC VG_ARCH_PRI VGP_X86_LINUX_TRUE VGP_X86_LINUX_FALSE VGP_AMD64_LINUX_TRUE VGP_AMD64_LINUX_FALSE VGP_PPC32_LINUX_TRUE VGP_PPC32_LINUX_FALSE VGP_PPC64_LINUX_TRUE VGP_PPC64_LINUX_FALSE VGP_PPC32_AIX5_TRUE VGP_PPC32_AIX5_FALSE VGP_PPC64_AIX5_TRUE VGP_PPC64_AIX5_FALSE VGO_LINUX_TRUE VGO_LINUX_FALSE VGO_AIX5_TRUE VGO_AIX5_FALSE VGP_HAVE_SECONDARY_TRUE VGP_HAVE_SECONDARY_FALSE DEFAULT_SUPP EGREP GLIBC_VERSION HAS_ALTIVEC_TRUE HAS_ALTIVEC_FALSE HAVE_ALTIVEC_H_TRUE HAVE_ALTIVEC_H_FALSE FLAG_M32 FLAG_MAIX32 FLAG_M64 FLAG_MAIX64 FLAG_MMMX FLAG_MSSE PREFERRED_STACK_BOUNDARY FLAG_WDECL_AFTER_STMT FLAG_W_NO_FORMAT_ZERO_LENGTH FLAG_W_EXTRA FLAG_FNO_STACK_PROTECTOR FLAG_UNLIMITED_INLINE_UNIT_GROWTH BUILD_SSE3_TESTS_TRUE BUILD_SSE3_TESTS_FALSE BUILD_SSSE3_TESTS_TRUE BUILD_SSSE3_TESTS_FALSE LIBOBJS MPI_CC BUILD_MPIWRAP_PRI_TRUE BUILD_MPIWRAP_PRI_FALSE BUILD_MPIWRAP_SEC_TRUE BUILD_MPIWRAP_SEC_FALSE HAVE_QTCORE_TRUE HAVE_QTCORE_FALSE BOOST_CFLAGS BOOST_LIBS HAVE_BOOST_1_35_TRUE HAVE_BOOST_1_35_FALSE HAVE_OPENMP_TRUE HAVE_OPENMP_FALSE LTLIBOBJS'
|
||||
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT VEX_DIR DISTCHECK_CONFIGURE_FLAGS LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE RANLIB ac_ct_RANLIB AR PERL GDB CCAS CCASFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os VG_ARCH_MAX VG_ARCH_ALL VALT_LOAD_ADDRESS VG_OS VG_PLATFORM_PRI VG_PLATFORM_SEC VG_PLATFORM VG_ARCH_PRI VGP_X86_LINUX_TRUE VGP_X86_LINUX_FALSE VGP_AMD64_LINUX_TRUE VGP_AMD64_LINUX_FALSE VGP_PPC32_LINUX_TRUE VGP_PPC32_LINUX_FALSE VGP_PPC64_LINUX_TRUE VGP_PPC64_LINUX_FALSE VGP_PPC32_AIX5_TRUE VGP_PPC32_AIX5_FALSE VGP_PPC64_AIX5_TRUE VGP_PPC64_AIX5_FALSE VGO_LINUX_TRUE VGO_LINUX_FALSE VGO_AIX5_TRUE VGO_AIX5_FALSE VGP_HAVE_SECONDARY_TRUE VGP_HAVE_SECONDARY_FALSE DEFAULT_SUPP EGREP GLIBC_VERSION HAS_ALTIVEC_TRUE HAS_ALTIVEC_FALSE HAVE_ALTIVEC_H_TRUE HAVE_ALTIVEC_H_FALSE FLAG_M32 FLAG_MAIX32 FLAG_M64 FLAG_MAIX64 FLAG_MMMX FLAG_MSSE PREFERRED_STACK_BOUNDARY FLAG_WDECL_AFTER_STMT FLAG_W_NO_FORMAT_ZERO_LENGTH FLAG_W_EXTRA FLAG_FNO_STACK_PROTECTOR FLAG_UNLIMITED_INLINE_UNIT_GROWTH BUILD_SSE3_TESTS_TRUE BUILD_SSE3_TESTS_FALSE BUILD_SSSE3_TESTS_TRUE BUILD_SSSE3_TESTS_FALSE LIBOBJS MPI_CC BUILD_MPIWRAP_PRI_TRUE BUILD_MPIWRAP_PRI_FALSE BUILD_MPIWRAP_SEC_TRUE BUILD_MPIWRAP_SEC_FALSE HAVE_QTCORE_TRUE HAVE_QTCORE_FALSE BOOST_CFLAGS BOOST_LIBS HAVE_BOOST_1_35_TRUE HAVE_BOOST_1_35_FALSE HAVE_OPENMP_TRUE HAVE_OPENMP_FALSE LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@@ -4365,6 +4365,7 @@ echo "$as_me: error: Valgrind is operati
|
||||
{ (exit 1); exit 1; }; }
|
||||
;;
|
||||
esac
|
||||
+VG_PLATFORM=`echo "$VG_PLATFORM_PRI" | LC_ALL=C tr A-Z_ a-z-`
|
||||
|
||||
# If we are building on a 64 bit platform test to see if the system
|
||||
# supports building 32 bit programs and disable 32 bit support if it
|
||||
@@ -4459,6 +4460,7 @@ echo $ECHO_N "checking for a supported C
|
||||
|
||||
|
||||
|
||||
+
|
||||
# By default, the primary arch is the same as the "max" arch, as
|
||||
# commented above (at the definition of VG_ARCH_MAX). We may choose
|
||||
# to downgrade it in the big case statement just below here, in the
|
||||
@@ -10043,6 +10045,7 @@ s,@VALT_LOAD_ADDRESS@,$VALT_LOAD_ADDRESS
|
||||
s,@VG_OS@,$VG_OS,;t t
|
||||
s,@VG_PLATFORM_PRI@,$VG_PLATFORM_PRI,;t t
|
||||
s,@VG_PLATFORM_SEC@,$VG_PLATFORM_SEC,;t t
|
||||
+s,@VG_PLATFORM@,$VG_PLATFORM,;t t
|
||||
s,@VG_ARCH_PRI@,$VG_ARCH_PRI,;t t
|
||||
s,@VGP_X86_LINUX_TRUE@,$VGP_X86_LINUX_TRUE,;t t
|
||||
s,@VGP_X86_LINUX_FALSE@,$VGP_X86_LINUX_FALSE,;t t
|
||||
--- valgrind-3.4.0/valgrind.pc.in.jj 2007-01-02 09:52:30.000000000 -0500
|
||||
+++ valgrind-3.4.0/valgrind.pc.in 2007-02-13 08:04:57.000000000 -0500
|
||||
@@ -4,13 +4,13 @@ libdir=@libdir@
|
||||
includedir=@includedir@/valgrind
|
||||
arch=@VG_ARCH@
|
||||
os=@VG_OS@
|
||||
-platform=@VG_PLATFORM_PRI@
|
||||
+platform=@VG_PLATFORM@
|
||||
valt_load_address=@VALT_LOAD_ADDRESS@
|
||||
|
||||
Name: Valgrind
|
||||
Description: A dynamic binary instrumentation framework
|
||||
Version: @VERSION@
|
||||
Requires:
|
||||
-Libs: -L${libdir}/valgrind/@VG_PLATFORM_PRI@ -lcoregrind -lvex -lgcc
|
||||
+Libs: -L${libdir}/valgrind/@VG_PLATFORM@ -lcoregrind -lvex -lgcc
|
||||
Cflags: -I${includedir}
|
||||
|
@ -1,781 +0,0 @@
|
||||
--- valgrind-3.3.0/VEX/priv/guest-ppc/toIR.c.jj 2007-12-11 00:18:52.000000000 +0100
|
||||
+++ valgrind-3.3.0/VEX/priv/guest-ppc/toIR.c 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -333,6 +333,7 @@ typedef enum {
|
||||
} PPC_GST;
|
||||
|
||||
#define MASK_FPSCR_RN 0x3
|
||||
+#define MASK_FPSCR_FPRF 0x1F000
|
||||
#define MASK_VSCR_VALID 0x00010001
|
||||
|
||||
|
||||
@@ -2149,7 +2150,7 @@ static IRExpr* /* ::Ity_I32 */ getGST_ma
|
||||
|
||||
/* We're only keeping track of the rounding mode,
|
||||
so if the mask isn't asking for this, just return 0x0 */
|
||||
- if (mask & 0x3) {
|
||||
+ if (mask & (MASK_FPSCR_RN|MASK_FPSCR_FPRF)) {
|
||||
assign( val, IRExpr_Get( OFFB_FPROUND, Ity_I32 ) );
|
||||
} else {
|
||||
assign( val, mkU32(0x0) );
|
||||
@@ -2278,7 +2279,7 @@ static void putGST_masked ( PPC_GST reg,
|
||||
switch (reg) {
|
||||
case PPC_GST_FPSCR: {
|
||||
/* Allow writes to Rounding Mode */
|
||||
- if (mask & 0x3) {
|
||||
+ if (mask & (MASK_FPSCR_RN|MASK_FPSCR_FPRF)) {
|
||||
/* construct new fpround from new and old values as per mask:
|
||||
new fpround = (src & (3 & mask)) | (fpround & (3 & ~mask)) */
|
||||
stmt(
|
||||
@@ -2286,11 +2287,11 @@ static void putGST_masked ( PPC_GST reg,
|
||||
OFFB_FPROUND,
|
||||
binop(
|
||||
Iop_Or32,
|
||||
- binop(Iop_And32, src, mkU32(3 & mask)),
|
||||
+ binop(Iop_And32, src, mkU32((MASK_FPSCR_RN|MASK_FPSCR_FPRF) & mask)),
|
||||
binop(
|
||||
Iop_And32,
|
||||
IRExpr_Get(OFFB_FPROUND,Ity_I32),
|
||||
- mkU32(3 & ~mask)
|
||||
+ mkU32((MASK_FPSCR_RN|MASK_FPSCR_FPRF) & ~mask)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -3231,6 +3232,48 @@ static Bool dis_int_logic ( UInt theInst
|
||||
// TODO: alternatively: assign(rA, verbose_Clz64(rS));
|
||||
break;
|
||||
|
||||
+ case 0x1FC: // cmpb (Power6: compare bytes)
|
||||
+ DIP("cmpb r%u,r%u,r%u\n", rA_addr, rS_addr, rB_addr);
|
||||
+
|
||||
+ if (mode64)
|
||||
+ assign( rA, unop( Iop_V128to64,
|
||||
+ binop( Iop_CmpEQ8x16,
|
||||
+ binop( Iop_64HLtoV128, mkU64(0), mkexpr(rS) ),
|
||||
+ binop( Iop_64HLtoV128, mkU64(0), mkexpr(rB) )
|
||||
+ )) );
|
||||
+ else
|
||||
+ assign( rA, unop( Iop_V128to32,
|
||||
+ binop( Iop_CmpEQ8x16,
|
||||
+ unop( Iop_32UtoV128, mkexpr(rS) ),
|
||||
+ unop( Iop_32UtoV128, mkexpr(rB) )
|
||||
+ )) );
|
||||
+ break;
|
||||
+
|
||||
+ case 0x2DF: { // mftgpr (move floating-point to general purpose register)
|
||||
+ IRTemp frB = newTemp(Ity_F64);
|
||||
+ DIP("mftgpr r%u,fr%u\n", rS_addr, rB_addr);
|
||||
+
|
||||
+ assign( frB, getFReg(rB_addr)); // always F64
|
||||
+ if (mode64)
|
||||
+ assign( rA, unop( Iop_ReinterpF64asI64, mkexpr(frB)) );
|
||||
+ else
|
||||
+ assign( rA, unop( Iop_64to32, unop( Iop_ReinterpF64asI64, mkexpr(frB))) );
|
||||
+
|
||||
+ putIReg( rS_addr, mkexpr(rA));
|
||||
+ return True;
|
||||
+ }
|
||||
+ case 0x25F: { // mffgpr (move floating-point from general purpose register)
|
||||
+ IRTemp frA = newTemp(Ity_F64);
|
||||
+ DIP("mffgpr fr%u,r%u\n", rS_addr, rB_addr);
|
||||
+
|
||||
+ if (mode64)
|
||||
+ assign( frA, unop( Iop_ReinterpI64asF64, mkexpr(rB)) );
|
||||
+ else
|
||||
+ assign( frA, unop( Iop_ReinterpI64asF64, unop( Iop_32Uto64, mkexpr(rB))) );
|
||||
+
|
||||
+ putFReg( rS_addr, mkexpr(frA));
|
||||
+ return True;
|
||||
+ }
|
||||
default:
|
||||
vex_printf("dis_int_logic(ppc)(opc2)\n");
|
||||
return False;
|
||||
@@ -6556,6 +6599,45 @@ static Bool dis_fp_round ( UInt theInstr
|
||||
binop(Iop_I64toF64, rm, mkexpr(r_tmp64)) );
|
||||
break;
|
||||
|
||||
+ case 0x188: case 0x1A8: case 0x1C8: case 0x1E8: // frin, friz, frip, frim
|
||||
+ switch(opc2) {
|
||||
+ case 0x188: // frin (Floating Round to Integer Nearest)
|
||||
+ DIP("frin%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
|
||||
+ assign( r_tmp64,
|
||||
+ binop(Iop_F64toI64, mkU32(Irrm_NEAREST), mkexpr(frB)) );
|
||||
+ break;
|
||||
+ case 0x1A8: // friz (Floating Round to Integer Toward Zero)
|
||||
+ DIP("friz%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
|
||||
+ assign( r_tmp64,
|
||||
+ binop(Iop_F64toI64, mkU32(Irrm_ZERO), mkexpr(frB)) );
|
||||
+ break;
|
||||
+ case 0x1C8: // frip (Floating Round to Integer Plus)
|
||||
+ DIP("frip%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
|
||||
+ assign( r_tmp64,
|
||||
+ binop(Iop_F64toI64, mkU32(Irrm_PosINF), mkexpr(frB)) );
|
||||
+ break;
|
||||
+ case 0x1E8: // frim (Floating Round to Integer Minus)
|
||||
+ DIP("frim%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
|
||||
+ assign( r_tmp64,
|
||||
+ binop(Iop_F64toI64, mkU32(Irrm_NegINF), mkexpr(frB)) );
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* don't use the rounded integer if frB is outside -9e18..9e18 */
|
||||
+ /* F64 has only log10(2**52) significant digits anyway */
|
||||
+ /* need to preserve sign of zero */
|
||||
+ /* frD = (fabs(frB) > 9e18) ? frB :
|
||||
+ (sign(frB)) ? -fabs((double)r_tmp64) : (double)r_tmp64 */
|
||||
+ assign( frD, IRExpr_Mux0X( unop( Iop_32to8, binop( Iop_CmpF64,
|
||||
+ IRExpr_Const(IRConst_F64(9e18)), unop( Iop_AbsF64, mkexpr(frB)))),
|
||||
+ IRExpr_Mux0X( unop( Iop_32to8, binop( Iop_Shr32, unop( Iop_64HIto32,
|
||||
+ unop(Iop_ReinterpF64asI64, mkexpr(frB))), mkU8(31))),
|
||||
+ binop( Iop_I64toF64, mkU32(0), mkexpr(r_tmp64) ),
|
||||
+ unop( Iop_NegF64, unop( Iop_AbsF64,
|
||||
+ binop(Iop_I64toF64, mkU32(0), mkexpr(r_tmp64)) )) ),
|
||||
+ mkexpr(frB) ));
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
vex_printf("dis_fp_round(ppc)(opc2)\n");
|
||||
return False;
|
||||
@@ -9224,6 +9306,10 @@ DisResult disInstr_PPC_WRK (
|
||||
case 0x32E: // fctid
|
||||
case 0x32F: // fctidz
|
||||
case 0x34E: // fcfid
|
||||
+ case 0x188: // frin (Power5+)
|
||||
+ case 0x1A8: // friz (Power5+)
|
||||
+ case 0x1C8: // frip (Power5+)
|
||||
+ case 0x1E8: // frim (Power5+)
|
||||
if (dis_fp_round(theInstr)) goto decode_success;
|
||||
goto decode_failure;
|
||||
|
||||
@@ -9310,6 +9396,10 @@ DisResult disInstr_PPC_WRK (
|
||||
if (dis_int_arith( theInstr )) goto decode_success;
|
||||
goto decode_failure;
|
||||
|
||||
+ case 0x1FC: // cmpb
|
||||
+ if (dis_int_logic( theInstr )) goto decode_success;
|
||||
+ goto decode_failure;
|
||||
+
|
||||
default:
|
||||
break; // Fall through...
|
||||
}
|
||||
@@ -9328,6 +9418,7 @@ DisResult disInstr_PPC_WRK (
|
||||
case 0x11C: case 0x3BA: case 0x39A: // eqv, extsb, extsh
|
||||
case 0x1DC: case 0x07C: case 0x1BC: // nand, nor, or
|
||||
case 0x19C: case 0x13C: // orc, xor
|
||||
+ case 0x2DF: case 0x25F: // mftgpr, mffgpr
|
||||
if (dis_int_logic( theInstr )) goto decode_success;
|
||||
goto decode_failure;
|
||||
|
||||
--- valgrind-3.3.0/none/tests/ppc32/Makefile.am.jj 2007-12-11 00:18:32.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/Makefile.am 2008-03-03 10:00:36.000000000 +0100
|
||||
@@ -19,13 +19,15 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
|
||||
testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest \
|
||||
twi.stderr.exp twi.stdout.exp twi.vgtest \
|
||||
tw.stderr.exp tw.stdout.exp tw.vgtest \
|
||||
- xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest
|
||||
+ xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest \
|
||||
+ power5+_round.stderr.exp power5+_round.stdout.exp power5+_round.vgtest \
|
||||
+ power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest
|
||||
|
||||
check_PROGRAMS = \
|
||||
bug129390-ppc32 \
|
||||
bug139050-ppc32 \
|
||||
ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx \
|
||||
- testVMX twi tw xlc_dbl_u32
|
||||
+ testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp
|
||||
|
||||
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
|
||||
@FLAG_M32@
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power5+_round.c.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power5+_round.c 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,147 @@
|
||||
+/* Copyright (C) 2007 Pete Eberlein eberlein@us.ibm.com
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU General Public License as
|
||||
+ published by the Free Software Foundation; either version 2 of the
|
||||
+ License, or (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
+ 02111-1307, USA.
|
||||
+
|
||||
+ The GNU General Public License is contained in the file COPYING.
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <strings.h>
|
||||
+#include <math.h>
|
||||
+
|
||||
+#define POS_NORMAL 0x4000
|
||||
+#define NEG_NORMAL 0x8000
|
||||
+#define POS_INF 0x5000
|
||||
+#define NEG_INF 0x9000
|
||||
+#define POS_ZERO 0x2000
|
||||
+#define NEG_ZERO 0x12000
|
||||
+#define POS_DENORMAL 0x14000
|
||||
+#define NEG_DENORMAL 0x18000
|
||||
+#define NAN 0x11000
|
||||
+#define FPRF_MASK 0x1F000
|
||||
+
|
||||
+
|
||||
+int main (int argc, char* argv[]) {
|
||||
+
|
||||
+ double inf, neg0, nan;
|
||||
+ union {
|
||||
+ double d;
|
||||
+ struct { unsigned int dummy, dummy2: 15, fprf:17; };
|
||||
+ } fpscr;
|
||||
+
|
||||
+ inf = strtod("inf", NULL);
|
||||
+ neg0 = copysign(0, -1);
|
||||
+ nan = strtod("nan", NULL);
|
||||
+
|
||||
+
|
||||
+ /* This set is disabled until fprf is implemented. */
|
||||
+ if (0) {
|
||||
+ double set[] = {inf, 1.5, 0, neg0, -1.5, -inf, nan};
|
||||
+ int i, j, fprf;
|
||||
+ for (i=0; i<7; ++i) {
|
||||
+ for (j=0; j<7; ++j) {
|
||||
+ asm ("fcmpu 1, %1, %2\n\t" \
|
||||
+ "mffs %0\n" \
|
||||
+ : "=f" (fpscr.d) \
|
||||
+ : "f" (set[i]), "f" (set[j]) \
|
||||
+ );
|
||||
+
|
||||
+ if (i == 6 || j == 6) {
|
||||
+ fprf = 0x1000; // Unordered
|
||||
+ } else if (i == j || (i==2 && j==3) || (i==3 && j==2)) {
|
||||
+ fprf = 0x2000; // Equal
|
||||
+ } else if (i < j) {
|
||||
+ fprf = 0x4000; // Greater Than
|
||||
+ } else if (i > j) {
|
||||
+ fprf = 0x8000; // Less Than
|
||||
+ }
|
||||
+
|
||||
+ printf("fcmpu\t%.1f\t%.1f\t%x\t%s\n", set[i], set[j], fpscr.fprf,
|
||||
+ fpscr.fprf == fprf ? "PASS" : "FAIL");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
+ double set[] = {inf, 1.9, 1.1, 0, neg0, -1.1, -1.9, -inf, nan};
|
||||
+ double frin[] = {inf, 2.0, 1.0, 0, neg0, -1.0, -2.0, -inf, nan};
|
||||
+ double friz[] = {inf, 1.0, 1.0, 0, neg0, -1.0, -1.0, -inf, nan};
|
||||
+ double frip[] = {inf, 2.0, 2.0, 0, neg0, -1.0, -1.0, -inf, nan};
|
||||
+ double frim[] = {inf, 1.0, 1.0, 0, neg0, -2.0, -2.0, -inf, nan};
|
||||
+ int fprf[] = {POS_INF, POS_NORMAL, POS_NORMAL, POS_ZERO, NEG_ZERO,
|
||||
+ NEG_NORMAL, NEG_NORMAL, NEG_INF, NAN};
|
||||
+ double set2[] = {0.9, 0.1, -0.1, -0.9, 1e-40, -1e-40};
|
||||
+ double frin2[] = {1.0, 0.0, -0.0, -1.0, 0.0, -0.0};
|
||||
+ int frin2rf[] = {POS_NORMAL,POS_ZERO,NEG_ZERO,NEG_NORMAL,POS_ZERO,NEG_ZERO};
|
||||
+ double friz2[] = {0.0, 0.0, -0.0, -0.0, 0.0, -0.0};
|
||||
+ int friz2rf[] = {POS_ZERO,POS_ZERO,NEG_ZERO,NEG_ZERO,POS_ZERO,NEG_ZERO};
|
||||
+ double frip2[] = {1.0, 1.0, -0.0, -0.0, 1.0, -0.0};
|
||||
+ int frip2rf[] = {POS_NORMAL,POS_NORMAL,NEG_ZERO,NEG_ZERO,POS_NORMAL,NEG_ZERO};
|
||||
+ double frim2[] = {0.0, 0.0, -1.0, -1.0, 0.0, -1.0};
|
||||
+ int frim2rf[] = {POS_ZERO,POS_ZERO,NEG_NORMAL,NEG_NORMAL,POS_ZERO,NEG_NORMAL};
|
||||
+ double ret;
|
||||
+ int i;
|
||||
+
|
||||
+#define DO_TEST(op,in,out,rf) for (i=0; i<sizeof(in)/sizeof(double); ++i) { \
|
||||
+ asm (#op" %0, %2\n\t" \
|
||||
+ "mffs %1\n" \
|
||||
+ : "=f" (ret), "=f" (fpscr.d) \
|
||||
+ : "f" (in[i]) \
|
||||
+ ); \
|
||||
+ printf(#op"\t%g\t%g\t%x\t%s\n", in[i], ret, fpscr.fprf, \
|
||||
+ (!bcmp(&ret, &out[i], sizeof(double))) /*&& (rf[i] == fpscr.fprf)*/ \
|
||||
+ ? "PASS" : "FAIL"); \
|
||||
+ }
|
||||
+ /* Note: fprf check above is disabled until fprf is implemented. */
|
||||
+
|
||||
+
|
||||
+ DO_TEST(frin,set, frin, fprf);
|
||||
+ DO_TEST(frin,set2,frin2,frin2rf);
|
||||
+ DO_TEST(friz,set, friz, fprf);
|
||||
+ DO_TEST(friz,set2,friz2,friz2rf);
|
||||
+ DO_TEST(frip,set, frip, fprf);
|
||||
+ DO_TEST(frip,set2,frip2,frip2rf);
|
||||
+ DO_TEST(frim,set, frim, fprf);
|
||||
+ DO_TEST(frim,set2,frim2,frim2rf);
|
||||
+ }
|
||||
+
|
||||
+ /* This set is disabled until fprf is implemented. */
|
||||
+ if (0) {
|
||||
+ double set1[] = {inf, 0.9, 0.1, 0, neg0, -0.1, -0.9, -inf, nan};
|
||||
+ double frsp1[] = {inf, 0.9f,0.1f,0, neg0, -0.1f,-0.9f,-inf, nan};
|
||||
+ int fprf1[] = {POS_INF, POS_NORMAL, POS_NORMAL, POS_ZERO, NEG_ZERO, NEG_NORMAL,
|
||||
+ NEG_NORMAL, NEG_INF, NAN};
|
||||
+ double set2[] = {1.2e-38, 1.1e-38, 1e-40, 8e-44, 9e-44, 8e-46, 7e-46};
|
||||
+ double frsp2[] = {1.2e-38f,1.1e-38f,1e-40f,8e-44f,9e-44f,8e-46f,0.0};
|
||||
+ int fprf2[] = {POS_NORMAL, POS_DENORMAL, POS_DENORMAL, POS_DENORMAL,
|
||||
+ POS_DENORMAL, POS_DENORMAL, POS_ZERO};
|
||||
+ double set3[] = {-1.2e-38, -1.1e-38, -1e-40, -8e-44, -9e-44, -8e-46, -7e-46};
|
||||
+ double frsp3[] = {-1.2e-38f,-1.1e-38f,-1e-40f,-8e-44f,-9e-44f,-8e-46f,-0.0};
|
||||
+ int fprf3[] = {NEG_NORMAL, NEG_DENORMAL, NEG_DENORMAL, NEG_DENORMAL,
|
||||
+ NEG_DENORMAL, NEG_DENORMAL, NEG_ZERO};
|
||||
+ double ret;
|
||||
+ int i;
|
||||
+ DO_TEST(frsp,set1,frsp1,fprf1);
|
||||
+ DO_TEST(frsp,set2,frsp2,fprf2);
|
||||
+ DO_TEST(frsp,set3,frsp3,fprf3);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power5+_round.stderr.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power5+_round.stderr.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,2 @@
|
||||
+
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power5+_round.stdout.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power5+_round.stdout.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,60 @@
|
||||
+frin inf inf 0 PASS
|
||||
+frin 1.9 2 0 PASS
|
||||
+frin 1.1 1 0 PASS
|
||||
+frin 0 0 0 PASS
|
||||
+frin -0 -0 0 PASS
|
||||
+frin -1.1 -1 0 PASS
|
||||
+frin -1.9 -2 0 PASS
|
||||
+frin -inf -inf 0 PASS
|
||||
+frin nan nan 0 PASS
|
||||
+frin 0.9 1 0 PASS
|
||||
+frin 0.1 0 0 PASS
|
||||
+frin -0.1 -0 0 PASS
|
||||
+frin -0.9 -1 0 PASS
|
||||
+frin 1e-40 0 0 PASS
|
||||
+frin -1e-40 -0 0 PASS
|
||||
+friz inf inf 0 PASS
|
||||
+friz 1.9 1 0 PASS
|
||||
+friz 1.1 1 0 PASS
|
||||
+friz 0 0 0 PASS
|
||||
+friz -0 -0 0 PASS
|
||||
+friz -1.1 -1 0 PASS
|
||||
+friz -1.9 -1 0 PASS
|
||||
+friz -inf -inf 0 PASS
|
||||
+friz nan nan 0 PASS
|
||||
+friz 0.9 0 0 PASS
|
||||
+friz 0.1 0 0 PASS
|
||||
+friz -0.1 -0 0 PASS
|
||||
+friz -0.9 -0 0 PASS
|
||||
+friz 1e-40 0 0 PASS
|
||||
+friz -1e-40 -0 0 PASS
|
||||
+frip inf inf 0 PASS
|
||||
+frip 1.9 2 0 PASS
|
||||
+frip 1.1 2 0 PASS
|
||||
+frip 0 0 0 PASS
|
||||
+frip -0 -0 0 PASS
|
||||
+frip -1.1 -1 0 PASS
|
||||
+frip -1.9 -1 0 PASS
|
||||
+frip -inf -inf 0 PASS
|
||||
+frip nan nan 0 PASS
|
||||
+frip 0.9 1 0 PASS
|
||||
+frip 0.1 1 0 PASS
|
||||
+frip -0.1 -0 0 PASS
|
||||
+frip -0.9 -0 0 PASS
|
||||
+frip 1e-40 1 0 PASS
|
||||
+frip -1e-40 -0 0 PASS
|
||||
+frim inf inf 0 PASS
|
||||
+frim 1.9 1 0 PASS
|
||||
+frim 1.1 1 0 PASS
|
||||
+frim 0 0 0 PASS
|
||||
+frim -0 -0 0 PASS
|
||||
+frim -1.1 -2 0 PASS
|
||||
+frim -1.9 -2 0 PASS
|
||||
+frim -inf -inf 0 PASS
|
||||
+frim nan nan 0 PASS
|
||||
+frim 0.9 0 0 PASS
|
||||
+frim 0.1 0 0 PASS
|
||||
+frim -0.1 -1 0 PASS
|
||||
+frim -0.9 -1 0 PASS
|
||||
+frim 1e-40 0 0 PASS
|
||||
+frim -1e-40 -1 0 PASS
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power5+_round.vgtest.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power5+_round.vgtest 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+prog: power5+_round
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power6_bcmp.c.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power6_bcmp.c 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,58 @@
|
||||
+/* Copyright (C) 2007 Pete Eberlein eberlein@us.ibm.com
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU General Public License as
|
||||
+ published by the Free Software Foundation; either version 2 of the
|
||||
+ License, or (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
+ 02111-1307, USA.
|
||||
+
|
||||
+ The GNU General Public License is contained in the file COPYING.
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <strings.h>
|
||||
+
|
||||
+#define CMPB(result,a,b) \
|
||||
+ asm __volatile ("cmpb %0, %1, %2\n" : "=r"(result) : "r"(a), "r"(b))
|
||||
+
|
||||
+
|
||||
+int main (int argc, char* argv[]) {
|
||||
+ int i,j,k;
|
||||
+ long mask;
|
||||
+ for (i=1; i<16; i++) {
|
||||
+ mask = 0;
|
||||
+ if(i&1) mask+=0xff;
|
||||
+ if(i&2) mask+=0xff00;
|
||||
+ if(i&4) mask+=0xff0000;
|
||||
+ if(i&8) mask+=0xff000000;
|
||||
+
|
||||
+ for (j=0; j<256; j++)
|
||||
+ for (k=0; k<256; k++)
|
||||
+ if (j!=k) {
|
||||
+
|
||||
+ long a, b, result;
|
||||
+ a = (mask & (j*0x1010101)) + ((~mask) & (k*0x1010101));
|
||||
+ b = j*0x1010101;
|
||||
+ CMPB(result, a, b);
|
||||
+ if (result != mask)
|
||||
+ printf("%8x %8x %8x %8x\n", mask, a, b, result);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power6_bcmp.stderr.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power6_bcmp.stderr.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,2 @@
|
||||
+
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc32/power6_bcmp.vgtest.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/power6_bcmp.vgtest 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+prog: power6_bcmp
|
||||
--- valgrind-3.3.0/none/tests/ppc64/Makefile.am.jj 2007-12-11 00:18:35.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/Makefile.am 2008-03-03 10:01:52.000000000 +0100
|
||||
@@ -9,10 +9,12 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
|
||||
std_reg_imm.vgtest std_reg_imm.stderr.exp std_reg_imm.stdout.exp \
|
||||
round.stderr.exp round.stdout.exp round.vgtest \
|
||||
twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest \
|
||||
- tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest
|
||||
+ tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest \
|
||||
+ power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest \
|
||||
+ power6_mf_gpr.stderr.exp power6_mf_gpr.stdout.exp power6_mf_gpr.vgtest
|
||||
|
||||
check_PROGRAMS = \
|
||||
- jm-insns lsw round std_reg_imm twi_tdi tw_td
|
||||
+ jm-insns lsw round std_reg_imm twi_tdi tw_td power6_bcmp power6_mf_gpr
|
||||
|
||||
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
|
||||
@FLAG_M64@
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_bcmp.c.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_bcmp.c 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,61 @@
|
||||
+/* Copyright (C) 2007 Pete Eberlein eberlein@us.ibm.com
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU General Public License as
|
||||
+ published by the Free Software Foundation; either version 2 of the
|
||||
+ License, or (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
+ 02111-1307, USA.
|
||||
+
|
||||
+ The GNU General Public License is contained in the file COPYING.
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <strings.h>
|
||||
+
|
||||
+#define CMPB(result,a,b) \
|
||||
+ asm ("cmpb %0, %1, %2\n" : "=r"(result) : "r"(a), "r"(b))
|
||||
+
|
||||
+
|
||||
+int main (int argc, char* argv[]) {
|
||||
+ int i,j,k;
|
||||
+ unsigned long mask;
|
||||
+ for (i=1; i<256; i++) {
|
||||
+ mask = 0;
|
||||
+ if(i&1) mask+=0xff;
|
||||
+ if(i&2) mask+=0xff00;
|
||||
+ if(i&4) mask+=0xff0000;
|
||||
+ if(i&8) mask+=0xff000000;
|
||||
+ if(i&16) mask+=0xff00000000;
|
||||
+ if(i&32) mask+=0xff0000000000;
|
||||
+ if(i&64) mask+=0xff000000000000;
|
||||
+ if(i&128) mask+=0xff00000000000000;
|
||||
+
|
||||
+ for (j=0; j<256; j++)
|
||||
+ for (k=0; k<256; k++)
|
||||
+ if (j!=k) {
|
||||
+
|
||||
+ unsigned long a, b, result;
|
||||
+ a = (mask & (j*0x101010101010101)) + ((~mask) & (k*0x101010101010101));
|
||||
+ b = j*0x101010101010101;
|
||||
+ CMPB(result, a, b);
|
||||
+ if (result != mask)
|
||||
+ printf("%8lx %8lx %8lx %8lx\n", mask, a, b, result);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_bcmp.stderr.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_bcmp.stderr.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,2 @@
|
||||
+
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_bcmp.vgtest.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_bcmp.vgtest 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+prog: power6_bcmp
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.c.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.c 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,47 @@
|
||||
+/* Copyright (C) 2007 Pete Eberlein eberlein@us.ibm.com
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU General Public License as
|
||||
+ published by the Free Software Foundation; either version 2 of the
|
||||
+ License, or (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
+ 02111-1307, USA.
|
||||
+
|
||||
+ The GNU General Public License is contained in the file COPYING.
|
||||
+*/
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+
|
||||
+
|
||||
+int main (int argc, char* argv[])
|
||||
+{
|
||||
+
|
||||
+ long i;
|
||||
+ double f;
|
||||
+
|
||||
+ i = 0;
|
||||
+ f = 100.0;
|
||||
+
|
||||
+ printf("%lx %f\n", i, f);
|
||||
+
|
||||
+ asm ("mftgpr %0, %1\n" : "=r"(i) : "f"(f));
|
||||
+
|
||||
+ f=0.0;
|
||||
+ printf("%lx %f\n", i, f);
|
||||
+
|
||||
+ asm ("mffgpr %0, %1\n" : "=f"(f) : "r"(i));
|
||||
+
|
||||
+ printf("%lx %f\n", i, f);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.stderr.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.stderr.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,2 @@
|
||||
+
|
||||
+
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.stdout.exp.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.stdout.exp 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1,3 @@
|
||||
+0 100.000000
|
||||
+4059000000000000 0.000000
|
||||
+4059000000000000 100.000000
|
||||
--- valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.vgtest.jj 2008-03-03 09:58:59.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/power6_mf_gpr.vgtest 2008-03-03 09:58:59.000000000 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+prog: power6_mf_gpr
|
||||
--- valgrind-3.3.0/none/tests/ppc32/Makefile.in.jj 2007-12-11 00:23:53.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc32/Makefile.in 2008-03-03 10:02:14.000000000 +0100
|
||||
@@ -40,7 +40,8 @@ check_PROGRAMS = bug129390-ppc32$(EXEEXT
|
||||
ldstrev$(EXEEXT) lsw$(EXEEXT) jm-insns$(EXEEXT) \
|
||||
mftocrf$(EXEEXT) mcrfs$(EXEEXT) round$(EXEEXT) \
|
||||
test_fx$(EXEEXT) test_gx$(EXEEXT) testVMX$(EXEEXT) \
|
||||
- twi$(EXEEXT) tw$(EXEEXT) xlc_dbl_u32$(EXEEXT)
|
||||
+ twi$(EXEEXT) tw$(EXEEXT) xlc_dbl_u32$(EXEEXT) \
|
||||
+ power5+_round$(EXEEXT) power6_bcmp$(EXEEXT)
|
||||
subdir = none/tests/ppc32
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@@ -71,6 +72,12 @@ mcrfs_LDADD = $(LDADD)
|
||||
mftocrf_SOURCES = mftocrf.c
|
||||
mftocrf_OBJECTS = mftocrf.$(OBJEXT)
|
||||
mftocrf_LDADD = $(LDADD)
|
||||
+power5__round_SOURCES = power5+_round.c
|
||||
+power5__round_OBJECTS = power5+_round.$(OBJEXT)
|
||||
+power5__round_LDADD = $(LDADD)
|
||||
+power6_bcmp_SOURCES = power6_bcmp.c
|
||||
+power6_bcmp_OBJECTS = power6_bcmp.$(OBJEXT)
|
||||
+power6_bcmp_LDADD = $(LDADD)
|
||||
round_SOURCES = round.c
|
||||
round_OBJECTS = round.$(OBJEXT)
|
||||
round_LDADD = $(LDADD)
|
||||
@@ -101,11 +108,12 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUD
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = bug129390-ppc32.c bug139050-ppc32.c jm-insns.c ldstrev.c \
|
||||
- lsw.c mcrfs.c mftocrf.c round.c testVMX.c test_fx.c test_gx.c \
|
||||
- tw.c twi.c xlc_dbl_u32.c
|
||||
+ lsw.c mcrfs.c mftocrf.c power5+_round.c power6_bcmp.c round.c \
|
||||
+ testVMX.c test_fx.c test_gx.c tw.c twi.c xlc_dbl_u32.c
|
||||
DIST_SOURCES = bug129390-ppc32.c bug139050-ppc32.c jm-insns.c \
|
||||
- ldstrev.c lsw.c mcrfs.c mftocrf.c round.c testVMX.c test_fx.c \
|
||||
- test_gx.c tw.c twi.c xlc_dbl_u32.c
|
||||
+ ldstrev.c lsw.c mcrfs.c mftocrf.c power5+_round.c \
|
||||
+ power6_bcmp.c round.c testVMX.c test_fx.c test_gx.c tw.c twi.c \
|
||||
+ xlc_dbl_u32.c
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
@@ -266,7 +275,9 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
|
||||
testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest \
|
||||
twi.stderr.exp twi.stdout.exp twi.vgtest \
|
||||
tw.stderr.exp tw.stdout.exp tw.vgtest \
|
||||
- xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest
|
||||
+ xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest \
|
||||
+ power5+_round.stderr.exp power5+_round.stdout.exp power5+_round.vgtest \
|
||||
+ power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest
|
||||
|
||||
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
|
||||
@FLAG_M32@
|
||||
@@ -335,6 +346,12 @@ mcrfs$(EXEEXT): $(mcrfs_OBJECTS) $(mcrfs
|
||||
mftocrf$(EXEEXT): $(mftocrf_OBJECTS) $(mftocrf_DEPENDENCIES)
|
||||
@rm -f mftocrf$(EXEEXT)
|
||||
$(LINK) $(mftocrf_LDFLAGS) $(mftocrf_OBJECTS) $(mftocrf_LDADD) $(LIBS)
|
||||
+power5+_round$(EXEEXT): $(power5__round_OBJECTS) $(power5__round_DEPENDENCIES)
|
||||
+ @rm -f power5+_round$(EXEEXT)
|
||||
+ $(LINK) $(power5__round_LDFLAGS) $(power5__round_OBJECTS) $(power5__round_LDADD) $(LIBS)
|
||||
+power6_bcmp$(EXEEXT): $(power6_bcmp_OBJECTS) $(power6_bcmp_DEPENDENCIES)
|
||||
+ @rm -f power6_bcmp$(EXEEXT)
|
||||
+ $(LINK) $(power6_bcmp_LDFLAGS) $(power6_bcmp_OBJECTS) $(power6_bcmp_LDADD) $(LIBS)
|
||||
round$(EXEEXT): $(round_OBJECTS) $(round_DEPENDENCIES)
|
||||
@rm -f round$(EXEEXT)
|
||||
$(LINK) $(round_LDFLAGS) $(round_OBJECTS) $(round_LDADD) $(LIBS)
|
||||
@@ -370,6 +387,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsw.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mcrfs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mftocrf.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power5+_round.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power6_bcmp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/round.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testVMX-testVMX.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fx.Po@am__quote@
|
||||
--- valgrind-3.3.0/none/tests/ppc64/Makefile.in.jj 2007-12-11 00:23:55.000000000 +0100
|
||||
+++ valgrind-3.3.0/none/tests/ppc64/Makefile.in 2008-03-03 10:02:14.000000000 +0100
|
||||
@@ -37,7 +37,8 @@ POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
check_PROGRAMS = jm-insns$(EXEEXT) lsw$(EXEEXT) round$(EXEEXT) \
|
||||
- std_reg_imm$(EXEEXT) twi_tdi$(EXEEXT) tw_td$(EXEEXT)
|
||||
+ std_reg_imm$(EXEEXT) twi_tdi$(EXEEXT) tw_td$(EXEEXT) \
|
||||
+ power6_bcmp$(EXEEXT) power6_mf_gpr$(EXEEXT)
|
||||
subdir = none/tests/ppc64
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@@ -53,6 +54,12 @@ jm_insns_LDADD = $(LDADD)
|
||||
lsw_SOURCES = lsw.c
|
||||
lsw_OBJECTS = lsw.$(OBJEXT)
|
||||
lsw_LDADD = $(LDADD)
|
||||
+power6_bcmp_SOURCES = power6_bcmp.c
|
||||
+power6_bcmp_OBJECTS = power6_bcmp.$(OBJEXT)
|
||||
+power6_bcmp_LDADD = $(LDADD)
|
||||
+power6_mf_gpr_SOURCES = power6_mf_gpr.c
|
||||
+power6_mf_gpr_OBJECTS = power6_mf_gpr.$(OBJEXT)
|
||||
+power6_mf_gpr_LDADD = $(LDADD)
|
||||
round_SOURCES = round.c
|
||||
round_OBJECTS = round.$(OBJEXT)
|
||||
round_LDADD = $(LDADD)
|
||||
@@ -73,9 +80,10 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUD
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
-SOURCES = jm-insns.c lsw.c round.c std_reg_imm.c tw_td.c twi_tdi.c
|
||||
-DIST_SOURCES = jm-insns.c lsw.c round.c std_reg_imm.c tw_td.c \
|
||||
- twi_tdi.c
|
||||
+SOURCES = jm-insns.c lsw.c power6_bcmp.c power6_mf_gpr.c round.c \
|
||||
+ std_reg_imm.c tw_td.c twi_tdi.c
|
||||
+DIST_SOURCES = jm-insns.c lsw.c power6_bcmp.c power6_mf_gpr.c round.c \
|
||||
+ std_reg_imm.c tw_td.c twi_tdi.c
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
@@ -226,7 +235,9 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
|
||||
std_reg_imm.vgtest std_reg_imm.stderr.exp std_reg_imm.stdout.exp \
|
||||
round.stderr.exp round.stdout.exp round.vgtest \
|
||||
twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest \
|
||||
- tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest
|
||||
+ tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest \
|
||||
+ power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest \
|
||||
+ power6_mf_gpr.stderr.exp power6_mf_gpr.stdout.exp power6_mf_gpr.vgtest
|
||||
|
||||
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
|
||||
@FLAG_M64@
|
||||
@@ -277,6 +288,12 @@ jm-insns$(EXEEXT): $(jm_insns_OBJECTS) $
|
||||
lsw$(EXEEXT): $(lsw_OBJECTS) $(lsw_DEPENDENCIES)
|
||||
@rm -f lsw$(EXEEXT)
|
||||
$(LINK) $(lsw_LDFLAGS) $(lsw_OBJECTS) $(lsw_LDADD) $(LIBS)
|
||||
+power6_bcmp$(EXEEXT): $(power6_bcmp_OBJECTS) $(power6_bcmp_DEPENDENCIES)
|
||||
+ @rm -f power6_bcmp$(EXEEXT)
|
||||
+ $(LINK) $(power6_bcmp_LDFLAGS) $(power6_bcmp_OBJECTS) $(power6_bcmp_LDADD) $(LIBS)
|
||||
+power6_mf_gpr$(EXEEXT): $(power6_mf_gpr_OBJECTS) $(power6_mf_gpr_DEPENDENCIES)
|
||||
+ @rm -f power6_mf_gpr$(EXEEXT)
|
||||
+ $(LINK) $(power6_mf_gpr_LDFLAGS) $(power6_mf_gpr_OBJECTS) $(power6_mf_gpr_LDADD) $(LIBS)
|
||||
round$(EXEEXT): $(round_OBJECTS) $(round_DEPENDENCIES)
|
||||
@rm -f round$(EXEEXT)
|
||||
$(LINK) $(round_LDFLAGS) $(round_OBJECTS) $(round_LDADD) $(LIBS)
|
||||
@@ -298,6 +315,8 @@ distclean-compile:
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jm_insns-jm-insns.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsw.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power6_bcmp.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/power6_mf_gpr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/round.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/std_reg_imm.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tw_td.Po@am__quote@
|
@ -1,12 +1,11 @@
|
||||
--- valgrind-3.4.0/cachegrind/cg_sim.c.jj 2007-01-08 02:43:10.000000000 -0500
|
||||
+++ valgrind-3.4.0/cachegrind/cg_sim.c 2007-02-13 07:15:46.000000000 -0500
|
||||
@@ -42,29 +42,32 @@ typedef struct {
|
||||
@@ -42,27 +42,30 @@ typedef struct {
|
||||
Int size; /* bytes */
|
||||
Int assoc;
|
||||
Int line_size; /* bytes */
|
||||
- Int sets;
|
||||
Int sets_min_1;
|
||||
Int assoc_bits;
|
||||
Int line_size_bits;
|
||||
Int tag_shift;
|
||||
- Char desc_line[128];
|
||||
@ -33,14 +32,13 @@
|
||||
- c->sets_min_1 = c->sets - 1;
|
||||
+ sets = (c->size / c->line_size) / c->assoc;
|
||||
+ c->sets_min_1 = sets - 1;
|
||||
c->assoc_bits = VG_(log2)(c->assoc);
|
||||
c->line_size_bits = VG_(log2)(c->line_size);
|
||||
- c->tag_shift = c->line_size_bits + VG_(log2)(c->sets);
|
||||
+ c->tag_shift = c->line_size_bits + VG_(log2)(sets);
|
||||
|
||||
if (c->assoc == 1) {
|
||||
VG_(sprintf)(c->desc_line, "%d B, %d B, direct-mapped",
|
||||
@@ -74,11 +77,8 @@ static void cachesim_initcache(cache_t c
|
||||
@@ -72,11 +75,8 @@ static void cachesim_initcache(cache_t c
|
||||
c->size, c->line_size, c->assoc);
|
||||
}
|
||||
|
||||
@ -54,13 +52,13 @@
|
||||
}
|
||||
|
||||
/* This is done as a macro rather than by passing in the cache_t2 as an
|
||||
@@ -141,8 +141,7 @@ void cachesim_##L##_doref(Addr a, UChar
|
||||
@@ -138,8 +138,7 @@ void cachesim_##L##_doref(Addr a, UChar
|
||||
return; \
|
||||
\
|
||||
/* Second case: word straddles two lines. */ \
|
||||
- /* Nb: this is a fast way of doing ((set1+1) % L.sets) */ \
|
||||
- } else if (((set1 + 1) & (L.sets-1)) == set2) { \
|
||||
+ } else if (((set1 + 1) & (L.sets_min_1)) == set2) { \
|
||||
set = &(L.tags[set1 << L.assoc_bits]); \
|
||||
set = &(L.tags[set1 * L.assoc]); \
|
||||
if (tag == set[0]) { \
|
||||
goto block2; \
|
@ -1,14 +1,11 @@
|
||||
Summary: Tool for finding memory management bugs in programs
|
||||
Name: valgrind
|
||||
Version: 3.4.0
|
||||
Release: 4
|
||||
Version: 3.4.1
|
||||
Release: 1
|
||||
Epoch: 1
|
||||
Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
|
||||
Patch1: valgrind-3.4.0-cachegrind-improvements.patch
|
||||
Patch2: valgrind-3.4.0-pkg-config.patch
|
||||
Patch3: valgrind-3.4.0-openat.patch
|
||||
Patch4: valgrind-3.4.0-newbu.patch
|
||||
Patch5: valgrind-3.4.0-debug.patch
|
||||
Patch1: valgrind-3.4.1-cachegrind-improvements.patch
|
||||
Patch2: valgrind-3.4.1-openat.patch
|
||||
License: GPLv2
|
||||
URL: http://www.valgrind.org/
|
||||
Group: Development/Debuggers
|
||||
@ -18,7 +15,7 @@ Obsoletes: valgrind-callgrind
|
||||
# Ensure glibc{,-devel} is installed for both multilib arches
|
||||
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
|
||||
%endif
|
||||
BuildRequires: glibc-devel >= 2.8
|
||||
BuildRequires: glibc-devel >= 2.9
|
||||
ExclusiveArch: %{ix86} x86_64 ppc ppc64
|
||||
%ifarch %{ix86}
|
||||
%define valarch x86
|
||||
@ -64,9 +61,6 @@ or valgrind plugins.
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
%build
|
||||
%ifarch x86_64 ppc64
|
||||
@ -157,8 +151,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/pkgconfig/*
|
||||
|
||||
%changelog
|
||||
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.4.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||
* Mon Mar 9 2009 Jakub Jelinek <jakub@redhat.com> 3.4.1-1
|
||||
- update to 3.4.1
|
||||
|
||||
* Tue Feb 9 2009 Jakub Jelinek <jakub@redhat.com> 3.4.0-3
|
||||
- update to 3.4.0
|
||||
|
Loading…
Reference in New Issue
Block a user