You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(23) |
2
(40) |
3
(17) |
4
(10) |
|
5
(14) |
6
(41) |
7
(26) |
8
(23) |
9
(15) |
10
(25) |
11
(14) |
|
12
(23) |
13
(11) |
14
(18) |
15
(21) |
16
(18) |
17
(8) |
18
(14) |
|
19
(16) |
20
(15) |
21
(12) |
22
(11) |
23
(8) |
24
(11) |
25
(12) |
|
26
(9) |
27
(17) |
28
(31) |
29
(16) |
30
(10) |
31
(17) |
|
|
From: <sv...@va...> - 2006-03-12 19:28:38
|
Author: sewardj Date: 2006-03-12 19:28:34 +0000 (Sun, 12 Mar 2006) New Revision: 5762 Log: Sigh; rename mpiwrap.c to libmpiwrap.c so that 'make dist' doesn't barf Added: trunk/auxprogs/libmpiwrap.c Removed: trunk/auxprogs/mpiwrap.c Modified: trunk/auxprogs/Makefile.am [... diff too large to include ...] |
|
From: <sv...@va...> - 2006-03-12 18:29:22
|
Author: sewardj
Date: 2006-03-12 18:29:18 +0000 (Sun, 12 Mar 2006)
New Revision: 5761
Log:
When testing 'mpicc', try at least somewhat to test for the primary
target, as that is what it will be used to compile for.
Modified:
trunk/configure.in
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-03-12 17:27:44 UTC (rev 5760)
+++ trunk/configure.in 2006-03-12 18:29:18 UTC (rev 5761)
@@ -617,8 +617,20 @@
AC_CHECK_FUNCS([floor memchr memset mkdir strchr strdup strpbrk strrchr =
strstr semtimedop])
=20
=20
-# Do we have a useable MPI setup (mpicc, and suitable MPI2 headers?)
+# Do we have a useable MPI setup on the primary target
+# (mpicc, and suitable MPI2 headers?)
+# Note: this is a kludge in that it assumes the specified mpicc=20
+# understands '-m32' or '-m64', as established above
MPI_CC=3D"mpicc"
+mflag_primary=3D
+if test x$VG_PLATFORM_PRI =3D xX86_LINUX \
+ -o x$VG_PLATFORM_PRI =3D xPPC32_LINUX ; then
+ mflag_primary=3D$FLAG_M32
+elif test x$VG_PLATFORM_PRI =3D xAMD64_LINUX \
+ -o x$VG_PLATFORM_PRI =3D xPPC64_LINUX ; then
+ mflag_primary=3D$FLAG_M64
+fi
+
AC_ARG_WITH(mpicc,
[ --with-mpicc=3D Specify name of MPI2-ised C compiler],
MPI_CC=3D$withval
@@ -627,7 +639,7 @@
saved_CC=3D$CC
saved_CFLAGS=3D$CFLAGS
CC=3D$MPI_CC
-CFLAGS=3D
+CFLAGS=3D$mflag_primary
AC_TRY_LINK([
#include <mpi.h>
#include <stdio.h>
|
|
From: <sv...@va...> - 2006-03-12 17:27:49
|
Author: sewardj
Date: 2006-03-12 17:27:44 +0000 (Sun, 12 Mar 2006)
New Revision: 5760
Log:
Unbreak mtoctf configure check.
Modified:
trunk/configure.in
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-03-12 16:57:07 UTC (rev 5759)
+++ trunk/configure.in 2006-03-12 17:27:44 UTC (rev 5760)
@@ -568,8 +568,8 @@
AC_MSG_CHECKING([if ppc32/64 as supports mtocrf/mfocrf])
=20
AC_TRY_COMPILE(, [
-__asm__ __volatile__("mtocrf 0,0");
-__asm__ __volatile__("mfocrf 0,0");
+__asm__ __volatile__("mtocrf 4,0");
+__asm__ __volatile__("mfocrf 0,4");
],
[
ac_have_as_ppc_mftocrf=3Dyes
|
|
From: <sv...@va...> - 2006-03-12 17:12:24
|
Author: sewardj
Date: 2006-03-12 16:48:14 +0000 (Sun, 12 Mar 2006)
New Revision: 5758
Log:
Add missing CALL_FN_* macros for ppc64-linux.
Modified:
trunk/include/valgrind.h
/usr/local/etc/subversion//commit-email.pl: `/usr/local/bin/svnlook diff =
/home/svn/repos/valgrind -r 5758' failed with this output:
Modified: trunk/include/valgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/valgrind.h 2006-03-12 16:47:10 UTC (rev 5757)
+++ trunk/include/valgrind.h 2006-03-12 16:48:14 UTC (rev 5758)
@@ -1717,9 +1717,11 @@
/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
=20
/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS "lr", \
- "r0", "r2", "r3", "r4", "r5", "r6", \
- "r7", "r8", "r9", "r10", "r11", "r12"
+#define __CALLER_SAVED_REGS \
+ "lr", "ctr", "xer", \
+ "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
+ "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
+ "r11", "r12", "r13"
=20
/* These CALL_FN_ macros assume that on ppc64-linux, sizeof(unsigned
long) =3D=3D 8. */
@@ -1789,7 +1791,7 @@
"std 2,-16(11)\n\t" /* save tocptr */ \
"ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
"ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg1->r4 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
"ld 11, 0(11)\n\t" /* target->r11 */ \
VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
"mr 11,%1\n\t" \
@@ -1802,6 +1804,434 @@
lval =3D (__typeof__(lval)) _res; \
} while (0)
=20
+#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+3]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+4]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+5]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+6]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+7]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+8]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ _argvec[2+8] =3D (unsigned long)arg8; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 10, 64(11)\n\t" /* arg8->r10 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)" /* restore tocptr */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+9]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ _argvec[2+8] =3D (unsigned long)arg8; \
+ _argvec[2+9] =3D (unsigned long)arg9; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "addi 1,1,-128\n\t" /* expand stack frame */ \
+ /* arg9 */ \
+ "ld 3,72(11)\n\t" \
+ "std 3,112(1)\n\t" \
+ /* args1-8 */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 10, 64(11)\n\t" /* arg8->r10 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)\n\t" /* restore tocptr */ \
+ "addi 1,1,128" /* restore frame */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+10]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ _argvec[2+8] =3D (unsigned long)arg8; \
+ _argvec[2+9] =3D (unsigned long)arg9; \
+ _argvec[2+10] =3D (unsigned long)arg10; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "addi 1,1,-128\n\t" /* expand stack frame */ \
+ /* arg10 */ \
+ "ld 3,80(11)\n\t" \
+ "std 3,120(1)\n\t" \
+ /* arg9 */ \
+ "ld 3,72(11)\n\t" \
+ "std 3,112(1)\n\t" \
+ /* args1-8 */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 10, 64(11)\n\t" /* arg8->r10 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)\n\t" /* restore tocptr */ \
+ "addi 1,1,128" /* restore frame */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10,arg11) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+11]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ _argvec[2+8] =3D (unsigned long)arg8; \
+ _argvec[2+9] =3D (unsigned long)arg9; \
+ _argvec[2+10] =3D (unsigned long)arg10; \
+ _argvec[2+11] =3D (unsigned long)arg11; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "addi 1,1,-144\n\t" /* expand stack frame */ \
+ /* arg11 */ \
+ "ld 3,88(11)\n\t" \
+ "std 3,128(1)\n\t" \
+ /* arg10 */ \
+ "ld 3,80(11)\n\t" \
+ "std 3,120(1)\n\t" \
+ /* arg9 */ \
+ "ld 3,72(11)\n\t" \
+ "std 3,112(1)\n\t" \
+ /* args1-8 */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 10, 64(11)\n\t" /* arg8->r10 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)\n\t" /* restore tocptr */ \
+ "addi 1,1,144" /* restore frame */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10,arg11,arg12) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[3+12]; \
+ volatile unsigned long _res; \
+ /* _argvec[0] holds current r2 across the call */ \
+ _argvec[1] =3D (unsigned long)_orig.r2; \
+ _argvec[2] =3D (unsigned long)_orig.nraddr; \
+ _argvec[2+1] =3D (unsigned long)arg1; \
+ _argvec[2+2] =3D (unsigned long)arg2; \
+ _argvec[2+3] =3D (unsigned long)arg3; \
+ _argvec[2+4] =3D (unsigned long)arg4; \
+ _argvec[2+5] =3D (unsigned long)arg5; \
+ _argvec[2+6] =3D (unsigned long)arg6; \
+ _argvec[2+7] =3D (unsigned long)arg7; \
+ _argvec[2+8] =3D (unsigned long)arg8; \
+ _argvec[2+9] =3D (unsigned long)arg9; \
+ _argvec[2+10] =3D (unsigned long)arg10; \
+ _argvec[2+11] =3D (unsigned long)arg11; \
+ _argvec[2+12] =3D (unsigned long)arg12; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "std 2,-16(11)\n\t" /* save tocptr */ \
+ "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
+ "addi 1,1,-144\n\t" /* expand stack frame */ \
+ /* arg12 */ \
+ "ld 3,96(11)\n\t" \
+ "std 3,136(1)\n\t" \
+ /* arg11 */ \
+ "ld 3,88(11)\n\t" \
+ "std 3,128(1)\n\t" \
+ /* arg10 */ \
+ "ld 3,80(11)\n\t" \
+ "std 3,120(1)\n\t" \
+ /* arg9 */ \
+ "ld 3,72(11)\n\t" \
+ "std 3,112(1)\n\t" \
+ /* args1-8 */ \
+ "ld 3, 8(11)\n\t" /* arg1->r3 */ \
+ "ld 4, 16(11)\n\t" /* arg2->r4 */ \
+ "ld 5, 24(11)\n\t" /* arg3->r5 */ \
+ "ld 6, 32(11)\n\t" /* arg4->r6 */ \
+ "ld 7, 40(11)\n\t" /* arg5->r7 */ \
+ "ld 8, 48(11)\n\t" /* arg6->r8 */ \
+ "ld 9, 56(11)\n\t" /* arg7->r9 */ \
+ "ld 10, 64(11)\n\t" /* arg8->r10 */ \
+ "ld 11, 0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr 11,%1\n\t" \
+ "mr %0,3\n\t" \
+ "ld 2,-16(11)\n\t" /* restore tocptr */ \
+ "addi 1,1,144" /* restore frame */ \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[2]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
#endif /* ARCH_ppc64 */
=20
=20
svnlook: Can't open directory '/tmp/svnlook.3': No such file or directory
|
|
From: <sv...@va...> - 2006-03-12 17:12:23
|
Author: sewardj
Date: 2006-03-12 16:47:10 +0000 (Sun, 12 Mar 2006)
New Revision: 5757
Log:
Work around lameness in older ppc assemblers.
Modified:
trunk/configure.in
trunk/none/tests/ppc32/mftocrf.c
/usr/local/etc/subversion//commit-email.pl: `/usr/local/bin/svnlook diff =
/home/svn/repos/valgrind -r 5757' failed with this output:
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-03-12 16:44:05 UTC (rev 5756)
+++ trunk/configure.in 2006-03-12 16:47:10 UTC (rev 5757)
@@ -545,6 +545,7 @@
CFLAGS=3D"$CFLAGS -Wdeclaration-after-statement"
fi
=20
+
# does this compiler support __builtin_expect?
AC_MSG_CHECKING([if gcc supports __builtin_expect])
=20
@@ -563,6 +564,25 @@
fi
=20
=20
+# does the ppc assembler support "mtocrf" et al?
+AC_MSG_CHECKING([if ppc32/64 as supports mtocrf/mfocrf])
+
+AC_TRY_COMPILE(, [
+__asm__ __volatile__("mtocrf 0,0");
+__asm__ __volatile__("mfocrf 0,0");
+],
+[
+ac_have_as_ppc_mftocrf=3Dyes
+AC_MSG_RESULT([yes])
+], [
+ac_have_as_ppc_mftocrf=3Dno
+AC_MSG_RESULT([no])
+])
+if test x$ac_have_as_ppc_mftocrf =3D xyes ; then
+ AC_DEFINE(HAVE_AS_PPC_MFTOCRF, 1, [Define to 1 if as supports mtocrf/m=
focrf.])
+fi
+
+
# Check for TLS support in the compiler and linker
AC_CACHE_CHECK([for TLS support], vg_cv_tls,
[AC_ARG_ENABLE(tls, [ --enable-tls platform supports=
TLS],
Modified: trunk/none/tests/ppc32/mftocrf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/mftocrf.c 2006-03-12 16:44:05 UTC (rev 5756)
+++ trunk/none/tests/ppc32/mftocrf.c 2006-03-12 16:47:10 UTC (rev 5757)
@@ -1,12 +1,13 @@
=20
#include <stdio.h>
+#include <config.h>
=20
static
int try_mtocrf ( int x )
{
int base =3D 0x31415927;
int res;
-
+#ifdef HAVE_AS_PPC_MFTOCRF
/* pre-set CR */
__asm__ __volatile__(
"mtcr %0"
@@ -21,7 +22,9 @@
__asm__ __volatile__(
"mfcr %0"
: /*w*/"=3Db"(res) : /*r*/ );
-
+#else
+ res =3D 42;
+#endif
return res;
}
=20
@@ -29,6 +32,7 @@
int try_mfocrf ( int x )=20
{
int res;
+#ifdef HAVE_AS_PPC_MFTOCRF
/* CR =3D x */
__asm__ __volatile__(
"mtcr %0"
@@ -39,7 +43,9 @@
"li %0,0\n\t"
"mfocrf %0,64"
: /*w*/"=3Db"(res) : /*r*/ );
-
+#else
+ res =3D 42;
+#endif
return res;
}
=20
svnlook: Can't open directory '/tmp/svnlook.2': No such file or directory
|
|
From: <sv...@va...> - 2006-03-12 17:12:22
|
Author: sewardj
Date: 2006-03-12 16:57:07 +0000 (Sun, 12 Mar 2006)
New Revision: 5759
Log:
Mess with this even more so that fn_1 doesn't return zero.
Modified:
trunk/memcheck/tests/wrap6.c
trunk/memcheck/tests/wrap6.stdout.exp
/usr/local/etc/subversion//commit-email.pl: `/usr/local/bin/svnlook diff =
/home/svn/repos/valgrind -r 5759' failed with this output:
Modified: trunk/memcheck/tests/wrap6.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/wrap6.c 2006-03-12 16:48:14 UTC (rev 5758)
+++ trunk/memcheck/tests/wrap6.c 2006-03-12 16:57:07 UTC (rev 5759)
@@ -78,6 +78,7 @@
v27 =3D ROL(v27,27); \
v28 =3D ROL(v28,28); \
v29 =3D ROL(v29,29); \
+ sum ^=3D ((0xFFF & v1) * i); \
sum ^=3D (v1-v2); \
sum ^=3D (v1-v3); \
sum ^=3D (v1-v4); \
Modified: trunk/memcheck/tests/wrap6.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/wrap6.stdout.exp 2006-03-12 16:48:14 UTC (rev 57=
58)
+++ trunk/memcheck/tests/wrap6.stdout.exp 2006-03-12 16:57:07 UTC (rev 57=
59)
@@ -6,64 +6,64 @@
=20
fn_1 ...
fn_1 wrapper pre ( 42 )
-fn_1 wrapper post1 =3D 0
-fn_1 wrapper post2 =3D 0
- ... 0
+fn_1 wrapper post1 =3D 103266
+fn_1 wrapper post2 =3D 103266
+ ... 103266
=20
fn_2 ...
fn_2 wrapper pre ( 42, 43 )
-fn_2 wrapper post1 =3D -214328439
-fn_2 wrapper post2 =3D -214328439
- ... -214328439
+fn_2 wrapper post1 =3D -214431509
+fn_2 wrapper post2 =3D -214431509
+ ... -214431509
=20
fn_3 ...
fn_3 wrapper pre ( 42, 43, 44 )
-fn_3 wrapper post1 =3D 1989809564
-fn_3 wrapper post2 =3D 1989809564
- ... 1989809564
+fn_3 wrapper post1 =3D 1989904126
+fn_3 wrapper post2 =3D 1989904126
+ ... 1989904126
=20
fn_4 ...
fn_4 wrapper pre ( 42, 43, 44, 45 )
-fn_4 wrapper post1 =3D -1115306928
- ... -1115306928
+fn_4 wrapper post1 =3D -1115400398
+ ... -1115400398
=20
fn_5 ...
fn_5 wrapper pre ( 42, 43, 44, 45, 46 )
-fn_5 wrapper post1 =3D 1634194685
- ... 1634194685
+fn_5 wrapper post1 =3D 1634092959
+ ... 1634092959
=20
fn_6 ...
fn_6 wrapper pre ( 42, 43, 44, 45, 46, 47 )
-fn_6 wrapper post1 =3D -374735757
- ... -374735757
+fn_6 wrapper post1 =3D -374837487
+ ... -374837487
=20
fn_7 ...
fn_7 wrapper pre ( 42, 43, 44, 45, 46, 47, 48 )
-fn_7 wrapper post1 =3D 1638028537
- ... 1638028537
+fn_7 wrapper post1 =3D 1638123419
+ ... 1638123419
=20
fn_8 ...
fn_8 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49 )
-fn_8 wrapper post1 =3D -1965908999
- ... -1965908999
+fn_8 wrapper post1 =3D -1965881189
+ ... -1965881189
=20
fn_9 ...
fn_9 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50 )
-fn_9 wrapper post1 =3D 905402864
- ... 905402864
+fn_9 wrapper post1 =3D 905366162
+ ... 905366162
=20
fn_10 ...
fn_10 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 )
-fn_10 wrapper post1 =3D 731777928
- ... 731777928
+fn_10 wrapper post1 =3D 731879658
+ ... 731879658
=20
fn_11 ...
fn_11 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 )
-fn_11 wrapper post1 =3D -947292594
- ... -947292594
+fn_11 wrapper post1 =3D -947329748
+ ... -947329748
=20
fn_12 ...
fn_12 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 )
-fn_12 wrapper post1 =3D -1058391648
- ... -1058391648
+fn_12 wrapper post1 =3D -1058297150
+ ... -1058297150
=20
svnlook: Can't open directory '/tmp/svnlook.4': No such file or directory
|
|
From: <sv...@va...> - 2006-03-12 17:12:20
|
Author: sewardj
Date: 2006-03-12 16:44:05 +0000 (Sun, 12 Mar 2006)
New Revision: 5756
Log:
LAM/MPI compile fix
Modified:
trunk/auxprogs/mpiwrap.c
/usr/local/etc/subversion//commit-email.pl: `/usr/local/bin/svnlook diff =
/home/svn/repos/valgrind -r 5756' failed with this output:
Modified: trunk/auxprogs/mpiwrap.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/mpiwrap.c 2006-03-12 14:15:23 UTC (rev 5755)
+++ trunk/auxprogs/mpiwrap.c 2006-03-12 16:44:05 UTC (rev 5756)
@@ -229,7 +229,9 @@
else if (ty =3D=3D MPI_WCHAR) fprintf(f,"WCHAR");
# endif
else if (ty =3D=3D MPI_LONG_LONG_INT) fprintf(f,"LONG_LONG_INT");
+# if defined(MPI_LONG_LONG)
else if (ty =3D=3D MPI_LONG_LONG) fprintf(f,"LONG_LONG");
+# endif
else if (ty =3D=3D MPI_UNSIGNED_LONG_LONG) fprintf(f,"UNSIGNED_LONG_L=
ONG");
else fprintf(f,"showTy:???");
}
svnlook: Can't open directory '/tmp/svnlook.1': No such file or directory
|
|
From: Bryan M. <om...@br...> - 2006-03-12 15:33:20
|
see http://www.brainmurders.eclipse.co.uk/omega.html for a complete overview of what this tool can do for you. From the web page: ----------------------------------- Omega addresses what I perceive to be one of the few shortfalls of the excellent Valgrind Memcheck Tool - where Memcheck reports the location that a leaked block was allocated, Omega also shows where it was leaked. . . . OK. Let's run Memcheck and Omega on a small test program so you can see what to expect. 01 #include <stdlib.h> 02 03 static void func1(void) 04 { 05 char *pointer = 0; 06 07 pointer = malloc(64); 08 09 return; 10 } /* Leak report here */ 11 12 int main(int argc, char *argv[]) 13 { 14 func1(); 15 16 return 0; 17 } 18 Save that (without the line numbers) as scope2.c then compile it like this: $> gcc -g -O0 scope2.c -o scope . . . $> valgrind --tool=memcheck --leak-check=full ./scope ==13293== Memcheck, a memory error detector. ==13293== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==13293== Using LibVEX rev 1419, a library for dynamic binary translation. ==13293== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==13293== Using valgrind-3.2.0.SVN, a dynamic binary instrumentation framework. ==13293== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==13293== For more details, rerun with: -v ==13293== ==13293== ==13293== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 11 from 1) ==13293== malloc/free: in use at exit: 64 bytes in 1 blocks. ==13293== malloc/free: 1 allocs, 0 frees, 64 bytes allocated. ==13293== For counts of detected errors, rerun with: -v ==13293== searching for pointers to 1 not-freed blocks. ==13293== checked 56,168 bytes. ==13293== ==13293== 64 bytes in 1 blocks are definitely lost in loss record 1 of 1 ==13293== at 0x401B51E: malloc (vg_replace_malloc.c:149) ==13293== by 0x8048372: func1 (scope2.c:7) ==13293== by 0x804838F: main (scope2.c:14) ==13293== ==13293== LEAK SUMMARY: ==13293== definitely lost: 64 bytes in 1 blocks. ==13293== possibly lost: 0 bytes in 0 blocks. ==13293== still reachable: 0 bytes in 0 blocks. ==13293== suppressed: 0 bytes in 0 blocks. ==13293== Reachable blocks (those to which a pointer was found) are not shown. ==13293== To see them, rerun with: --show-reachable=yes As expected, Memcheck identifies that the block allocated at line 7 has leaked. Whilst with this trivial example, its obvious where the leak occurred, tracking down memory leaks can be a really tedious and time consuming exercise. So, lets try Omega to see if it can help us out: $> valgrind --tool=omega ./scope ==13297== Omega-beta2, An instant memory leak detector. ==13297== Copyright (C) 2006, and GNU GPL'd, by Bryan Meredith. ==13297== Using LibVEX rev 1419, a library for dynamic binary translation. ==13297== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==13297== Using valgrind-3.2.0.SVN, a dynamic binary instrumentation framework. ==13297== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==13297== For more details, rerun with: -v ==13297== ==13297== ==13297== ==13297== ==13297== Omega Leak Summary ==13297== ================== ==13297== Loss Record 1: Leaked 64 (0x40) bytes in 1 block ==13297== at 0x8048379: func1 (scope2.c:10) ==13297== by 0x804838F: main (scope2.c:14) ==13297== Block allocated ==13297== at 0x401AE7E: malloc (vg_replace_malloc.c:149) ==13297== by 0x8048372: func1 (scope2.c:7) ==13297== by 0x804838F: main (scope2.c:14) ==13297== See the difference? Omega not only shows that the block allocated at line 7 leaked, it shows you that it leaked at line 10. . . . Omega is NOT perfect. I hope that it will get better but it is fairly usable NOW. It currently supports x86 and x86_64. The main area that I expect to work on to get this up to release standards is function wrapping. With the highly optimised routines in glibc and other libraries, Omega can sometimes lose track of a pointer as it gets moved or miss making a new one on a copy. By introducing function wrappers around these problem functions, we should be able to ensure that the right thing happens. I would welcome assistance to make this work on PPC32 and PPC64 but I have no hardware to test or build on so I would need patches rather than just helpful advice. I am more than happy to receive your comments, criticisms, bug reports and especially patches (although I make no promises to accept them). Any success stories would also be nice to hear about. ----------------------------------- All the information that you need to download, compile and run Omega is on the web page. If you are having problems tracking down memory leaks, Omega is designed to help YOU. Bryan "Brain Murders" Meredith |
|
From: <sv...@va...> - 2006-03-12 14:15:26
|
Author: sewardj Date: 2006-03-12 14:15:23 +0000 (Sun, 12 Mar 2006) New Revision: 5755 Log: Updated expected output following r5753. Modified: trunk/memcheck/tests/wrap6.stdout.exp Modified: trunk/memcheck/tests/wrap6.stdout.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/wrap6.stdout.exp 2006-03-12 13:39:15 UTC (rev 57= 54) +++ trunk/memcheck/tests/wrap6.stdout.exp 2006-03-12 14:15:23 UTC (rev 57= 55) @@ -6,64 +6,64 @@ =20 fn_1 ... fn_1 wrapper pre ( 42 ) -fn_1 wrapper post1 =3D -13631437 -fn_1 wrapper post2 =3D -13631437 - ... -13631437 +fn_1 wrapper post1 =3D 0 +fn_1 wrapper post2 =3D 0 + ... 0 =20 fn_2 ... fn_2 wrapper pre ( 42, 43 ) -fn_2 wrapper post1 =3D 201956282 -fn_2 wrapper post2 =3D 201956282 - ... 201956282 +fn_2 wrapper post1 =3D -214328439 +fn_2 wrapper post2 =3D -214328439 + ... -214328439 =20 fn_3 ... fn_3 wrapper pre ( 42, 43, 44 ) -fn_3 wrapper post1 =3D -1985342033 -fn_3 wrapper post2 =3D -1985342033 - ... -1985342033 +fn_3 wrapper post1 =3D 1989809564 +fn_3 wrapper post2 =3D 1989809564 + ... 1989809564 =20 fn_4 ... fn_4 wrapper pre ( 42, 43, 44, 45 ) -fn_4 wrapper post1 =3D 1119208547 - ... 1119208547 +fn_4 wrapper post1 =3D -1115306928 + ... -1115306928 =20 fn_5 ... fn_5 wrapper pre ( 42, 43, 44, 45, 46 ) -fn_5 wrapper post1 =3D -1638411058 - ... -1638411058 +fn_5 wrapper post1 =3D 1634194685 + ... 1634194685 =20 fn_6 ... fn_6 wrapper pre ( 42, 43, 44, 45, 46, 47 ) -fn_6 wrapper post1 =3D 379190336 - ... 379190336 +fn_6 wrapper post1 =3D -374735757 + ... -374735757 =20 fn_7 ... fn_7 wrapper pre ( 42, 43, 44, 45, 46, 47, 48 ) -fn_7 wrapper post1 =3D -1634577206 - ... -1634577206 +fn_7 wrapper post1 =3D 1638028537 + ... 1638028537 =20 fn_8 ... fn_8 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49 ) -fn_8 wrapper post1 =3D 1977785290 - ... 1977785290 +fn_8 wrapper post1 =3D -1965908999 + ... -1965908999 =20 fn_9 ... fn_9 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50 ) -fn_9 wrapper post1 =3D -892905021 - ... -892905021 +fn_9 wrapper post1 =3D 905402864 + ... 905402864 =20 fn_10 ... fn_10 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ) -fn_10 wrapper post1 =3D -726791237 - ... -726791237 +fn_10 wrapper post1 =3D 731777928 + ... 731777928 =20 fn_11 ... fn_11 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ) -fn_11 wrapper post1 =3D 951678589 - ... 951678589 +fn_11 wrapper post1 =3D -947292594 + ... -947292594 =20 fn_12 ... fn_12 wrapper pre ( 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ) -fn_12 wrapper post1 =3D 1071266195 - ... 1071266195 +fn_12 wrapper post1 =3D -1058391648 + ... -1058391648 =20 |
|
From: <sv...@va...> - 2006-03-12 13:39:19
|
Author: sewardj
Date: 2006-03-12 13:39:15 +0000 (Sun, 12 Mar 2006)
New Revision: 5754
Log:
Add CALL_FN_* missing cases for ppc32-linux.
Modified:
trunk/include/valgrind.h
Modified: trunk/include/valgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/valgrind.h 2006-03-12 13:38:46 UTC (rev 5753)
+++ trunk/include/valgrind.h 2006-03-12 13:39:15 UTC (rev 5754)
@@ -1247,15 +1247,38 @@
=20
#if defined(ARCH_ppc32)
=20
+/* This is useful for finding out about the on-stack stuff:
+
+ extern int f9 ( int,int,int,int,int,int,int,int,int );
+ extern int f10 ( int,int,int,int,int,int,int,int,int,int );
+ extern int f11 ( int,int,int,int,int,int,int,int,int,int,int );
+ extern int f12 ( int,int,int,int,int,int,int,int,int,int,int,int );
+
+ int g9 ( void ) {
+ return f9(11,22,33,44,55,66,77,88,99);
+ }
+ int g10 ( void ) {
+ return f10(11,22,33,44,55,66,77,88,99,110);
+ }
+ int g11 ( void ) {
+ return f11(11,22,33,44,55,66,77,88,99,110,121);
+ }
+ int g12 ( void ) {
+ return f12(11,22,33,44,55,66,77,88,99,110,121,132);
+ }
+*/
+
/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
=20
/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS "lr", \
- "r0", "r2", "r3", "r4", "r5", "r6", \
- "r7", "r8", "r9", "r10", "r11", "r12"
+#define __CALLER_SAVED_REGS \
+ "lr", "ctr", "xer", \
+ "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
+ "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
+ "r11", "r12", "r13"
=20
-/* These CALL_FN_ macros assume that on ppc32-linux, sizeof(unsigned
- long) =3D=3D 4. */
+/* These CALL_FN_ macros assume that on ppc32-linux,=20
+ sizeof(unsigned long) =3D=3D 4. */
=20
#define CALL_FN_W_v(lval, orig) \
do { \
@@ -1317,6 +1340,374 @@
lval =3D (__typeof__(lval)) _res; \
} while (0)
=20
+#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[4]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[5]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[6]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[7]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[8]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[9]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ _argvec[8] =3D (unsigned long)arg8; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 10,32(11)\n\t" /* arg8->r10 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[10]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ _argvec[8] =3D (unsigned long)arg8; \
+ _argvec[9] =3D (unsigned long)arg9; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "addi 1,1,-16\n\t" \
+ /* arg9 */ \
+ "lwz 3,36(11)\n\t" \
+ "stw 3,8(1)\n\t" \
+ /* args1-8 */ \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 10,32(11)\n\t" /* arg8->r10 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "addi 1,1,16\n\t" \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[11]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ _argvec[8] =3D (unsigned long)arg8; \
+ _argvec[9] =3D (unsigned long)arg9; \
+ _argvec[10] =3D (unsigned long)arg10; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "addi 1,1,-16\n\t" \
+ /* arg10 */ \
+ "lwz 3,40(11)\n\t" \
+ "stw 3,12(1)\n\t" \
+ /* arg9 */ \
+ "lwz 3,36(11)\n\t" \
+ "stw 3,8(1)\n\t" \
+ /* args1-8 */ \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 10,32(11)\n\t" /* arg8->r10 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "addi 1,1,16\n\t" \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10,arg11) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[12]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ _argvec[8] =3D (unsigned long)arg8; \
+ _argvec[9] =3D (unsigned long)arg9; \
+ _argvec[10] =3D (unsigned long)arg10; \
+ _argvec[11] =3D (unsigned long)arg11; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "addi 1,1,-32\n\t" \
+ /* arg11 */ \
+ "lwz 3,44(11)\n\t" \
+ "stw 3,16(1)\n\t" \
+ /* arg10 */ \
+ "lwz 3,40(11)\n\t" \
+ "stw 3,12(1)\n\t" \
+ /* arg9 */ \
+ "lwz 3,36(11)\n\t" \
+ "stw 3,8(1)\n\t" \
+ /* args1-8 */ \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 10,32(11)\n\t" /* arg8->r10 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "addi 1,1,32\n\t" \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
+#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9,arg10,arg11,arg12) \
+ do { \
+ volatile OrigFn _orig =3D (orig); \
+ volatile unsigned long _argvec[13]; \
+ volatile unsigned long _res; \
+ _argvec[0] =3D (unsigned long)_orig.nraddr; \
+ _argvec[1] =3D (unsigned long)arg1; \
+ _argvec[2] =3D (unsigned long)arg2; \
+ _argvec[3] =3D (unsigned long)arg3; \
+ _argvec[4] =3D (unsigned long)arg4; \
+ _argvec[5] =3D (unsigned long)arg5; \
+ _argvec[6] =3D (unsigned long)arg6; \
+ _argvec[7] =3D (unsigned long)arg7; \
+ _argvec[8] =3D (unsigned long)arg8; \
+ _argvec[9] =3D (unsigned long)arg9; \
+ _argvec[10] =3D (unsigned long)arg10; \
+ _argvec[11] =3D (unsigned long)arg11; \
+ _argvec[12] =3D (unsigned long)arg12; \
+ __asm__ volatile( \
+ "mr 11,%1\n\t" \
+ "addi 1,1,-32\n\t" \
+ /* arg12 */ \
+ "lwz 3,48(11)\n\t" \
+ "stw 3,20(1)\n\t" \
+ /* arg11 */ \
+ "lwz 3,44(11)\n\t" \
+ "stw 3,16(1)\n\t" \
+ /* arg10 */ \
+ "lwz 3,40(11)\n\t" \
+ "stw 3,12(1)\n\t" \
+ /* arg9 */ \
+ "lwz 3,36(11)\n\t" \
+ "stw 3,8(1)\n\t" \
+ /* args1-8 */ \
+ "lwz 3,4(11)\n\t" /* arg1->r3 */ \
+ "lwz 4,8(11)\n\t" \
+ "lwz 5,12(11)\n\t" \
+ "lwz 6,16(11)\n\t" /* arg4->r6 */ \
+ "lwz 7,20(11)\n\t" \
+ "lwz 8,24(11)\n\t" \
+ "lwz 9,28(11)\n\t" \
+ "lwz 10,32(11)\n\t" /* arg8->r10 */ \
+ "lwz 11,0(11)\n\t" /* target->r11 */ \
+ VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
+ "addi 1,1,32\n\t" \
+ "mr %0,3" \
+ : /*out*/ "=3Dr" (_res) \
+ : /*in*/ "r" (&_argvec[0]) \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ ); \
+ lval =3D (__typeof__(lval)) _res; \
+ } while (0)
+
#endif /* ARCH_ppc32 */
=20
/* --------------------------- ppc64 --------------------------- */
|
|
From: <sv...@va...> - 2006-03-12 13:38:49
|
Author: sewardj
Date: 2006-03-12 13:38:46 +0000 (Sun, 12 Mar 2006)
New Revision: 5753
Log:
TRASH_IREGS: add enough live variables to make ppc32 spill (not easy)
Modified:
trunk/memcheck/tests/wrap6.c
Modified: trunk/memcheck/tests/wrap6.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/wrap6.c 2006-03-12 13:37:19 UTC (rev 5752)
+++ trunk/memcheck/tests/wrap6.c 2006-03-12 13:38:46 UTC (rev 5753)
@@ -16,7 +16,8 @@
#define TRASH_IREGS(_rlval, _vec) \
do { \
register UInt* vec =3D (_vec); \
- /* x86 spills for v > 4, amd64 for v > 12. */ \
+ /* x86 spills for v > 4, amd64 for v > 12. Getting ppc */ \
+ /* to spill is quite difficult, requiring v > 28 or so. */ \
register UInt i, sum =3D 0; \
register UInt v1 =3D vec[1-1]; \
register UInt v2 =3D vec[2-1]; \
@@ -30,19 +31,53 @@
register UInt v10 =3D vec[10-1]; \
register UInt v11 =3D vec[11-1]; \
register UInt v12 =3D vec[12-1]; \
+ register UInt v13 =3D vec[13-1]; \
+ register UInt v14 =3D vec[14-1]; \
+ register UInt v15 =3D vec[15-1]; \
+ register UInt v16 =3D vec[16-1]; \
+ register UInt v17 =3D vec[17-1]; \
+ register UInt v18 =3D vec[18-1]; \
+ register UInt v19 =3D vec[19-1]; \
+ register UInt v20 =3D vec[20-1]; \
+ register UInt v21 =3D vec[21-1]; \
+ register UInt v22 =3D vec[22-1]; \
+ register UInt v23 =3D vec[23-1]; \
+ register UInt v24 =3D vec[24-1]; \
+ register UInt v25 =3D vec[25-1]; \
+ register UInt v26 =3D vec[26-1]; \
+ register UInt v27 =3D vec[27-1]; \
+ register UInt v28 =3D vec[28-1]; \
+ register UInt v29 =3D vec[29-1]; \
for (i =3D 0; i < 50; i++) { \
- v1 =3D ROL(v1,1); \
- v2 =3D ROL(v2,2); \
- v3 =3D ROL(v3,3); \
- v4 =3D ROL(v4,4); \
- v5 =3D ROL(v5,5); \
- v6 =3D ROL(v6,6); \
- v7 =3D ROL(v7,7); \
- v8 =3D ROL(v8,8); \
- v9 =3D ROL(v9,9); \
+ v1 =3D ROL(v1,1); \
+ v2 =3D ROL(v2,2); \
+ v3 =3D ROL(v3,3); \
+ v4 =3D ROL(v4,4); \
+ v5 =3D ROL(v5,5); \
+ v6 =3D ROL(v6,6); \
+ v7 =3D ROL(v7,7); \
+ v8 =3D ROL(v8,8); \
+ v9 =3D ROL(v9,9); \
v10 =3D ROL(v10,10); \
v11 =3D ROL(v11,11); \
v12 =3D ROL(v12,12); \
+ v13 =3D ROL(v13,13); \
+ v14 =3D ROL(v14,14); \
+ v15 =3D ROL(v15,15); \
+ v16 =3D ROL(v16,16); \
+ v17 =3D ROL(v17,17); \
+ v18 =3D ROL(v18,18); \
+ v19 =3D ROL(v19,19); \
+ v20 =3D ROL(v20,20); \
+ v21 =3D ROL(v21,21); \
+ v22 =3D ROL(v22,22); \
+ v23 =3D ROL(v23,23); \
+ v24 =3D ROL(v24,24); \
+ v25 =3D ROL(v25,25); \
+ v26 =3D ROL(v26,26); \
+ v27 =3D ROL(v27,27); \
+ v28 =3D ROL(v28,28); \
+ v29 =3D ROL(v29,29); \
sum ^=3D (v1-v2); \
sum ^=3D (v1-v3); \
sum ^=3D (v1-v4); \
@@ -54,6 +89,23 @@
sum ^=3D (v1-v10); \
sum ^=3D (v1-v11); \
sum ^=3D (v1-v12); \
+ sum ^=3D (v1-v13); \
+ sum ^=3D (v1-v14); \
+ sum ^=3D (v1-v15); \
+ sum ^=3D (v1-v16); \
+ sum ^=3D (v1-v17); \
+ sum ^=3D (v1-v18); \
+ sum ^=3D (v1-v19); \
+ sum ^=3D (v1-v20); \
+ sum ^=3D (v1-v21); \
+ sum ^=3D (v1-v22); \
+ sum ^=3D (v1-v23); \
+ sum ^=3D (v1-v24); \
+ sum ^=3D (v1-v25); \
+ sum ^=3D (v1-v26); \
+ sum ^=3D (v1-v27); \
+ sum ^=3D (v1-v28); \
+ sum ^=3D (v1-v29); \
} \
_rlval =3D sum; \
} while (0)
|
|
From: <sv...@va...> - 2006-03-12 13:37:26
|
Author: sewardj
Date: 2006-03-12 13:37:19 +0000 (Sun, 12 Mar 2006)
New Revision: 5752
Log:
sizeofOneNamedTy(): handle long double correctly on non-x86/amd64 platfor=
ms.
Modified:
trunk/auxprogs/mpiwrap.c
Modified: trunk/auxprogs/mpiwrap.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/mpiwrap.c 2006-03-12 13:36:06 UTC (rev 5751)
+++ trunk/auxprogs/mpiwrap.c 2006-03-12 13:37:19 UTC (rev 5752)
@@ -377,7 +377,10 @@
exact size of one item of the type, NOT the size of it when padded
suitably to make an array of them. In particular that's why the
size of LONG_DOUBLE is 10 and not sizeof(long double), since the
- latter is 12 at least on x86. Ref: MPI 1.1 doc p18 */
+ latter is 12 at least on x86. Except if sizeof(long double) is
+ claimed to be 8 then we'd better respect that.
+
+ Ref: MPI 1.1 doc p18 */
static long sizeofOneNamedTy ( MPI_Datatype ty )
{
if (ty =3D=3D MPI_CHAR) return sizeof(signed char);
@@ -390,8 +393,10 @@
if (ty =3D=3D MPI_UNSIGNED_LONG) return sizeof(unsigned long int);
if (ty =3D=3D MPI_FLOAT) return sizeof(float);
if (ty =3D=3D MPI_DOUBLE) return sizeof(double);
- if (ty =3D=3D MPI_LONG_DOUBLE) return 10; /* NOT: sizeof(long doub=
le); */
if (ty =3D=3D MPI_BYTE) return 1;
+ if (ty =3D=3D MPI_LONG_DOUBLE)
+ return sizeof(long double)=3D=3D8=20
+ ? 8 : 10; /* NOT: sizeof(long double); */
/* MPI_PACKED */
/* new in MPI2: */
# if defined(MPI_WCHAR)
|
|
From: <sv...@va...> - 2006-03-12 13:36:17
|
Author: sewardj Date: 2006-03-12 13:36:06 +0000 (Sun, 12 Mar 2006) New Revision: 5751 Log: Add ppc32-linux details. Modified: trunk/docs/internals/register-uses.txt Modified: trunk/docs/internals/register-uses.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/register-uses.txt 2006-03-12 00:39:19 UTC (rev 5= 750) +++ trunk/docs/internals/register-uses.txt 2006-03-12 13:36:06 UTC (rev 5= 751) @@ -51,3 +51,41 @@ xmm2-7 n fp#3-8 xmm8-15 n =20 + +ppc32-linux +~~~~~~~~~~~ + +Reg Callee Arg =20 +Name Saves? Reg? Comment Vex-uses? +------------------------------------------------------------------- +r0 n n sometimes RAZ +r1 y n stack pointer +r2 n n +r3 n int#1 int[31:0] retreg y +r4 n int#2 also int retreg y +r5 n int#3 y +r6 n int#4 y +r7 n int#5 y +r8 n int#6 y +r9 n int#7 y +r10 n int#8 y +r11 n y +r12 n y +r13 ? +r14-28 y y +r29 y reserved for dispatcher +r30 y altivec spill temporary +r31 y & guest state +f0 n +f1 n fp#1 fp retreg +f2-8 n fp#2-8 +f9-13 n +f14-31 y y (14-21) +v0-v19 ? +v20-31 y y (20-27,29) +cr0-7 +lr y return address +ctr n +xer n +fpscr + |
|
From: <js...@ac...> - 2006-03-12 10:44:39
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-03-12 02:00:01 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo wrap6-wrap6.o: In function `_vgwZU_NONE_fn_9': /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:432: undefined reference to `CALL_FN_W_9W' wrap6-wrap6.o: In function `_vgwZU_NONE_fn_10': /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:471: undefined reference to `CALL_FN_W_10W' wrap6-wrap6.o: In function `_vgwZU_NONE_fn_11': /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:511: undefined reference to `CALL_FN_W_11W' wrap6-wrap6.o: In function `_vgwZU_NONE_fn_12': /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:553: undefined reference to `CALL_FN_W_12W' collect2: ld returned 1 exit status make[5]: *** [wrap6] Error 1 make[5]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 194 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Mar 12 02:10:33 2006 --- new.short Sun Mar 12 02:16:31 2006 *************** *** 6,26 **** ! Regression test results follow ! ! == 194 tests, 11 stderr failures, 5 stdout failures ================= ! memcheck/tests/leak-cycle (stderr) ! memcheck/tests/leak-tree (stderr) ! memcheck/tests/leakotron (stdout) ! memcheck/tests/mempool (stderr) ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/sigaltstack (stderr) ! memcheck/tests/stack_changes (stdout) ! memcheck/tests/stack_changes (stderr) ! memcheck/tests/xml1 (stderr) ! none/tests/faultstatus (stderr) ! none/tests/mremap (stderr) ! none/tests/ppc32/jm-fp (stdout) ! none/tests/ppc32/jm-fp (stderr) ! none/tests/ppc32/test_fx (stdout) ! none/tests/ppc32/test_fx (stderr) ! none/tests/ppc32/test_gx (stdout) ! --- 6,27 ---- ! Last 20 lines of verbose log follow echo ! wrap6-wrap6.o: In function `_vgwZU_NONE_fn_9': ! /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:432: undefined reference to `CALL_FN_W_9W' ! wrap6-wrap6.o: In function `_vgwZU_NONE_fn_10': ! /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:471: undefined reference to `CALL_FN_W_10W' ! wrap6-wrap6.o: In function `_vgwZU_NONE_fn_11': ! /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:511: undefined reference to `CALL_FN_W_11W' ! wrap6-wrap6.o: In function `_vgwZU_NONE_fn_12': ! /home/sewardj/Nightly/valgrind/memcheck/tests/wrap6.c:553: undefined reference to `CALL_FN_W_12W' ! collect2: ld returned 1 exit status ! make[5]: *** [wrap6] Error 1 ! make[5]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' ! make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' ! make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck/tests' ! make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/memcheck' ! make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' ! make: *** [check] Error 2 |
|
From: <js...@ac...> - 2006-03-12 04:57:58
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-03-12 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 225 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 225 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Mar 12 03:44:42 2006 --- new.short Sun Mar 12 04:06:26 2006 *************** *** 10,12 **** ! == 225 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 225 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) *************** *** 15,16 **** --- 15,17 ---- memcheck/tests/x86/scalar_supp (stderr) + none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) |
|
From: Tom H. <to...@co...> - 2006-03-12 03:44:02
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-03-12 03:30:06 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 227 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2006-03-12 03:43:49
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-03-12 04:40:00 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Get_count': mpiwrap.c:866: warning: implicit declaration of function `CALL_FN_W_WWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Testall': mpiwrap.c:1267: warning: implicit declaration of function `CALL_FN_W_WWWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Iprobe': mpiwrap.c:1299: warning: implicit declaration of function `CALL_FN_W_5W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Sendrecv': mpiwrap.c:1372: warning: implicit declaration of function `CALL_FN_W_12W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Gather': mpiwrap.c:1499: warning: implicit declaration of function `CALL_FN_W_8W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Accumulate': mpiwrap.c:1953: warning: implicit declaration of function `CALL_FN_W_9W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Type_create_darray': mpiwrap.c:2190: warning: implicit declaration of function `CALL_FN_W_10W' mpicc: No such file or directory make[2]: *** [libmpiwrap.so] Error 1 make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/auxprogs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' make: *** [all] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Get_count': mpiwrap.c:865: warning: implicit declaration of function `CALL_FN_W_WWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Testall': mpiwrap.c:1266: warning: implicit declaration of function `CALL_FN_W_WWWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Iprobe': mpiwrap.c:1298: warning: implicit declaration of function `CALL_FN_W_5W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Sendrecv': mpiwrap.c:1371: warning: implicit declaration of function `CALL_FN_W_12W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Gather': mpiwrap.c:1498: warning: implicit declaration of function `CALL_FN_W_8W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Accumulate': mpiwrap.c:1952: warning: implicit declaration of function `CALL_FN_W_9W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Type_create_darray': mpiwrap.c:2189: warning: implicit declaration of function `CALL_FN_W_10W' mpicc: No such file or directory make[2]: *** [libmpiwrap.so] Error 1 make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/auxprogs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' make: *** [all] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Mar 12 04:41:57 2006 --- new.short Sun Mar 12 04:43:44 2006 *************** *** 7,21 **** mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Get_count': ! mpiwrap.c:865: warning: implicit declaration of function `CALL_FN_W_WWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Testall': ! mpiwrap.c:1266: warning: implicit declaration of function `CALL_FN_W_WWWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Iprobe': ! mpiwrap.c:1298: warning: implicit declaration of function `CALL_FN_W_5W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Sendrecv': ! mpiwrap.c:1371: warning: implicit declaration of function `CALL_FN_W_12W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Gather': ! mpiwrap.c:1498: warning: implicit declaration of function `CALL_FN_W_8W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Accumulate': ! mpiwrap.c:1952: warning: implicit declaration of function `CALL_FN_W_9W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Type_create_darray': ! mpiwrap.c:2189: warning: implicit declaration of function `CALL_FN_W_10W' mpicc: No such file or directory --- 7,21 ---- mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Get_count': ! mpiwrap.c:866: warning: implicit declaration of function `CALL_FN_W_WWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Testall': ! mpiwrap.c:1267: warning: implicit declaration of function `CALL_FN_W_WWWW' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Iprobe': ! mpiwrap.c:1299: warning: implicit declaration of function `CALL_FN_W_5W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Sendrecv': ! mpiwrap.c:1372: warning: implicit declaration of function `CALL_FN_W_12W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Gather': ! mpiwrap.c:1499: warning: implicit declaration of function `CALL_FN_W_8W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Accumulate': ! mpiwrap.c:1953: warning: implicit declaration of function `CALL_FN_W_9W' mpiwrap.c: In function `_vgwZU_libmpiZdsoZa_PMPI_Type_create_darray': ! mpiwrap.c:2190: warning: implicit declaration of function `CALL_FN_W_10W' mpicc: No such file or directory |
|
From: Tom H. <th...@cy...> - 2006-03-12 03:32:05
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-03-12 03:15:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 226 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-12 03:26:12
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-03-12 03:10:07 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 249 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Mar 12 03:18:59 2006 --- new.short Sun Mar 12 03:26:02 2006 *************** *** 8,11 **** ! == 249 tests, 6 stderr failures, 1 stdout failure ================= ! memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) --- 8,10 ---- ! == 249 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-12 03:23:50
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-03-12 03:00:03 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 249 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-12 03:22:03
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-03-12 03:05:13 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2006-03-12 00:39:22
|
Author: sewardj
Date: 2006-03-12 00:39:19 +0000 (Sun, 12 Mar 2006)
New Revision: 5750
Log:
Fix a redirection bug created by the overhaul of m_redir.c. Bug
caused hardwired Actives to be discarded at the first call to
VG_(redir_notify_delete_SegInfo). This causes crashes on amd64-linux
by throwing away the hardwired redirections
0xFFFFFFFFFF600000 -> VG_(amd64_linux_REDIR_FOR_vgettimeofday)
0xFFFFFFFFFF600400 -> VG_(amd64_linux_REDIR_FOR_vtime)
which I'm sure got mentioned at some point recently, but I cannot find
the email now.
Bug does not affect 3.1.X, since that line contains the old m_redir.c
implementation.
Bug does not affect any platform other than amd64-linux since no
others have hardwired Actives at the start.
Modified:
trunk/coregrind/m_redir.c
Modified: trunk/coregrind/m_redir.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_redir.c 2006-03-12 00:35:42 UTC (rev 5749)
+++ trunk/coregrind/m_redir.c 2006-03-12 00:39:19 UTC (rev 5750)
@@ -573,11 +573,16 @@
&& (act->parent_spec->mark || act->parent_sym->mark);
=20
/* While we're at it, a bit of paranoia: delete any actives
- which don't have both feet in valid client executable
- areas. */
- if (!delMe) {
- if (!is_plausible_guest_addr(act->from_addr)) delMe =3D True;
- if (!is_plausible_guest_addr(act->to_addr)) delMe =3D True;
+ which don't have both feet in valid client executable areas.
+ But don't delete hardwired-at-startup ones; these are denoted
+ by having parent_spec or parent_sym being NULL. */
+ if ( (!delMe)
+ && act->parent_spec !=3D NULL
+ && act->parent_sym !=3D NULL ) {
+ if (!is_plausible_guest_addr(act->from_addr))
+ delMe =3D True;
+ if (!is_plausible_guest_addr(act->to_addr))
+ delMe =3D True;
}
=20
if (delMe) {
|
|
From: <sv...@va...> - 2006-03-12 00:35:49
|
Author: sewardj
Date: 2006-03-12 00:35:42 +0000 (Sun, 12 Mar 2006)
New Revision: 5749
Log:
A 64-bit fix
Modified:
trunk/auxprogs/mpiwrap.c
Modified: trunk/auxprogs/mpiwrap.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/mpiwrap.c 2006-03-11 16:19:14 UTC (rev 5748)
+++ trunk/auxprogs/mpiwrap.c 2006-03-12 00:35:42 UTC (rev 5749)
@@ -1,7 +1,7 @@
=20
/*---------------------------------------------------------------*/
/*--- ---*/
-/*--- A library of wrappers for MPI 1.1 functions. ---*/
+/*--- A library of wrappers for MPI 2 functions. ---*/
/*--- ---*/
/*---------------------------------------------------------------*/
=20
@@ -479,8 +479,9 @@
=20
if (0) {
ex =3D extentOfTy(ty);
- printf("tycon %p %d %d %d (ext %d)\n",
- (void*)tycon, n_ints, n_addrs, n_dtys, (int)ex );
+ printf("tycon 0x%llx %d %d %d (ext %d)\n",
+ (unsigned long long int)tycon,=20
+ n_ints, n_addrs, n_dtys, (int)ex );
}
=20
/* Now safe to do MPI_Type_get_contents */
|