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
(31) |
2
(27) |
|
3
(25) |
4
(21) |
5
(21) |
6
(21) |
7
(32) |
8
(23) |
9
(15) |
|
10
(12) |
11
(9) |
12
(10) |
13
(10) |
14
(9) |
15
(7) |
16
(20) |
|
17
(14) |
18
(71) |
19
(67) |
20
(50) |
21
(25) |
22
(15) |
23
(37) |
|
24
(25) |
25
(41) |
26
(34) |
27
(57) |
28
(20) |
29
(30) |
30
(13) |
|
31
(18) |
|
|
|
|
|
|
|
From: Tom H. <th...@cy...> - 2005-07-30 02:22:13
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-07-30 03:10:07 BST Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo A valgrind/coregrind/pub_core_execontext.h A valgrind/coregrind/m_libcproc.c A valgrind/coregrind/pub_core_threadmodel.h A valgrind/coregrind/pub_core_hashtable.h A valgrind/coregrind/pub_core_options.h A valgrind/coregrind/pub_core_libcassert.h A valgrind/coregrind/pub_core_errormgr.h A valgrind/coregrind/m_libcsignal.c A valgrind/coregrind/stage1.c A valgrind/coregrind/m_threadstate.c A valgrind/coregrind/pub_core_aspacemgr.h A valgrind/coregrind/m_libcfile.c A valgrind/coregrind/pub_core_cpuid.h A valgrind/coregrind/Makefile.am A valgrind/coregrind/vki_unistd-amd64-linux.h A valgrind/coregrind/pub_core_threadstate.h A valgrind/coregrind/pub_core_mallocfree.h U valgrind Fetching external item into 'valgrind/VEX' ================================================= == 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 == 180 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jul 30 03:18:19 2005 --- new.short Sat Jul 30 03:21:58 2005 *************** *** 1,12 **** ! Checking out valgrind source tree ... done ! Configuring valgrind ... done ! Building valgrind ... done ! Running regression tests ... failed ! Regression test results follow ! ! == 180 tests, 2 stderr failures, 0 stdout failures ================= ! none/tests/faultstatus (stderr) ! none/tests/x86/int (stderr) --- 1,24 ---- ! Checking out valgrind source tree ... failed ! Last 20 lines of verbose log follow echo ! A valgrind/coregrind/pub_core_execontext.h ! A valgrind/coregrind/m_libcproc.c ! A valgrind/coregrind/pub_core_threadmodel.h ! A valgrind/coregrind/pub_core_hashtable.h ! A valgrind/coregrind/pub_core_options.h ! A valgrind/coregrind/pub_core_libcassert.h ! A valgrind/coregrind/pub_core_errormgr.h ! A valgrind/coregrind/m_libcsignal.c ! A valgrind/coregrind/stage1.c ! A valgrind/coregrind/m_threadstate.c ! A valgrind/coregrind/pub_core_aspacemgr.h ! A valgrind/coregrind/m_libcfile.c ! A valgrind/coregrind/pub_core_cpuid.h ! A valgrind/coregrind/Makefile.am ! A valgrind/coregrind/vki_unistd-amd64-linux.h ! A valgrind/coregrind/pub_core_threadstate.h ! A valgrind/coregrind/pub_core_mallocfree.h ! U valgrind + Fetching external item into 'valgrind/VEX' |
|
From: Tom H. <th...@cy...> - 2005-07-30 02:20:08
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-07-30 03:10:07 BST Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 159 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2005-07-30 02:15:19
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-07-30 03:05:08 BST Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo A valgrind/coregrind/pub_core_execontext.h A valgrind/coregrind/m_libcproc.c A valgrind/coregrind/pub_core_threadmodel.h A valgrind/coregrind/pub_core_hashtable.h A valgrind/coregrind/pub_core_options.h A valgrind/coregrind/pub_core_libcassert.h A valgrind/coregrind/pub_core_errormgr.h A valgrind/coregrind/m_libcsignal.c A valgrind/coregrind/stage1.c A valgrind/coregrind/m_threadstate.c A valgrind/coregrind/pub_core_aspacemgr.h A valgrind/coregrind/m_libcfile.c A valgrind/coregrind/pub_core_cpuid.h A valgrind/coregrind/Makefile.am A valgrind/coregrind/vki_unistd-amd64-linux.h A valgrind/coregrind/pub_core_threadstate.h A valgrind/coregrind/pub_core_mallocfree.h U valgrind Fetching external item into 'valgrind/VEX' ================================================= == 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 == 159 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jul 30 03:11:22 2005 --- new.short Sat Jul 30 03:15:10 2005 *************** *** 1,16 **** ! Checking out valgrind source tree ... done ! Configuring valgrind ... done ! Building valgrind ... done ! Running regression tests ... failed ! Regression test results follow ! ! == 159 tests, 6 stderr failures, 0 stdout failures ================= ! memcheck/tests/sigprocmask (stderr) ! memcheck/tests/strchr (stderr) ! memcheck/tests/vgtest_ume (stderr) ! memcheck/tests/weirdioctl (stderr) ! memcheck/tests/xml1 (stderr) ! none/tests/faultstatus (stderr) --- 1,24 ---- ! Checking out valgrind source tree ... failed ! Last 20 lines of verbose log follow echo ! A valgrind/coregrind/pub_core_execontext.h ! A valgrind/coregrind/m_libcproc.c ! A valgrind/coregrind/pub_core_threadmodel.h ! A valgrind/coregrind/pub_core_hashtable.h ! A valgrind/coregrind/pub_core_options.h ! A valgrind/coregrind/pub_core_libcassert.h ! A valgrind/coregrind/pub_core_errormgr.h ! A valgrind/coregrind/m_libcsignal.c ! A valgrind/coregrind/stage1.c ! A valgrind/coregrind/m_threadstate.c ! A valgrind/coregrind/pub_core_aspacemgr.h ! A valgrind/coregrind/m_libcfile.c ! A valgrind/coregrind/pub_core_cpuid.h ! A valgrind/coregrind/Makefile.am ! A valgrind/coregrind/vki_unistd-amd64-linux.h ! A valgrind/coregrind/pub_core_threadstate.h ! A valgrind/coregrind/pub_core_mallocfree.h ! U valgrind + Fetching external item into 'valgrind/VEX' |
|
From: Nicholas N. <nj...@cs...> - 2005-07-30 01:24:46
|
On Fri, 29 Jul 2005, Paul Pluzhnikov wrote: > make check fails to build: > /home/paul/valgrind-3.0.RC1/tests/cputest.c:103: undefined reference to `go' > collect2: ld returned 1 exit status > > This is because this gcc uses -D__x86_64 rather then -D__amd64 I've committed a fix for this, thanks. N |
|
From: <sv...@va...> - 2005-07-30 01:23:30
|
Author: njn
Date: 2005-07-30 02:22:37 +0100 (Sat, 30 Jul 2005)
New Revision: 4297
Log:
Use the standard #ifdefs for arch-specific code.
Modified:
trunk/tests/cputest.c
Modified: trunk/tests/cputest.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/tests/cputest.c 2005-07-29 22:01:19 UTC (rev 4296)
+++ trunk/tests/cputest.c 2005-07-30 01:22:37 UTC (rev 4297)
@@ -21,7 +21,7 @@
NULL
};
=20
-#ifdef __amd64
+#ifdef __x86_64__
static Bool go(char* cpu)
{
if ( strcmp( cpu, "amd64" ) =3D=3D 0 )
@@ -29,7 +29,7 @@
else=20
return False;
}
-#endif // __amd64
+#endif // __x86_64__
=20
#ifdef __powerpc__
static Bool go(char* cpu)
@@ -41,7 +41,7 @@
}
#endif // __powerpc__
=20
-#ifdef __x86__
+#ifdef __i386__
static void cpuid ( unsigned int n,
unsigned int* a, unsigned int* b,
unsigned int* c, unsigned int* d )
@@ -90,7 +90,7 @@
}
return False;
}
-#endif // __x86__
+#endif // __i386__
=20
=20
int main(int argc, char **argv)
|
|
From: Paul P. <ppl...@gm...> - 2005-07-30 00:47:33
|
On AMD64 Red Hat Enterprise Linux AS release 3 (Taroon Update 2),
gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-39)
make check fails to build:
/home/paul/valgrind-3.0.RC1/tests/cputest.c:103: undefined reference to `go=
'
collect2: ld returned 1 exit status
This is because this gcc uses -D__x86_64 rather then -D__amd64
Fix:
--- cputest.c.orig 2005-07-29 17:23:48.000000000 -0700
+++ cputest.c 2005-07-29 17:24:35.000000000 -0700
@@ -21,7 +21,7 @@
NULL
};
=20
-#ifdef __amd64
+#if defined(__amd64) || defined(__x86_64)
static Bool go(char* cpu)
{
if ( strcmp( cpu, "amd64" ) =3D=3D 0 )
Most of the tests fail:
=3D=3D 157 tests, 149 stderr failures, 2 stdout failures =3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
memcheck/tests/addressable (stderr)
memcheck/tests/badaddrvalue (stderr)
memcheck/tests/badfree-2trace (stderr)
memcheck/tests/badfree (stderr)
memcheck/tests/badjump (stderr)
memcheck/tests/badjump2 (stderr)
...
Looks like most of them are failing due to=20
Warning: zero-sized CIE/FDE but not at section end in DWARF2 CFI reading
which I reported earlier.
The 2 stdout failures are:
memcheck/tests/leakotron.stdout.diff:
*** leakotron.stdout.exp 2005-07-26 01:58:06.000000000 -0700
--- leakotron.stdout.out 2005-07-29 17:27:08.000000000 -0700
***************
*** 1 ****
! PASS
--- 1 ----
! FAILED: I freed everything, but there's still 4800 bytes reachable
none/tests/exec-sigmask.stdout.diff
*** exec-sigmask.stdout.exp 2005-07-26 01:58:34.000000000 -0700
--- exec-sigmask.stdout.out 2005-07-29 17:28:30.000000000 -0700
***************
*** 0 ****
--- 1 ----
+ full: signal 32 missing from mask
Cheers,
|
|
From: <sv...@va...> - 2005-07-29 22:01:22
|
Author: sewardj
Date: 2005-07-29 23:01:19 +0100 (Fri, 29 Jul 2005)
New Revision: 4296
Log:
Enable sys_fchmod and sys_fchown.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/vki_unistd-ppc32-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.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_syswrap/syswrap-ppc32-linux.c 2005-07-29 18:42:22 U=
TC (rev 4295)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-07-29 22:01:19 U=
TC (rev 4296)
@@ -2065,9 +2065,9 @@
GENXY(__NR_munmap, sys_munmap), // 91
//.. GENX_(__NR_truncate, sys_truncate), // 92
//.. GENX_(__NR_ftruncate, sys_ftruncate), // 93
-//.. GENX_(__NR_fchmod, sys_fchmod), // 94
-//..=20
-//.. GENX_(__NR_fchown, sys_fchown16), // 95
+ GENX_(__NR_fchmod, sys_fchmod), // 94
+
+ GENX_(__NR_fchown, sys_fchown16), // 95
//.. GENX_(__NR_getpriority, sys_getpriority), // 96
//.. GENX_(__NR_setpriority, sys_setpriority), // 97
//.. GENX_(__NR_profil, sys_ni_syscall), // 98
Modified: trunk/coregrind/vki_unistd-ppc32-linux.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/coregrind/vki_unistd-ppc32-linux.h 2005-07-29 18:42:22 UTC (rev=
4295)
+++ trunk/coregrind/vki_unistd-ppc32-linux.h 2005-07-29 22:01:19 UTC (rev=
4296)
@@ -123,8 +123,8 @@
#define __NR_munmap 91
//#define __NR_truncate 92
//#define __NR_ftruncate 93
-//#define __NR_fchmod 94
-//#define __NR_fchown 95
+#define __NR_fchmod 94
+#define __NR_fchown 95
//#define __NR_getpriority 96
//#define __NR_setpriority 97
//#define __NR_profil 98
|
|
From: <sv...@va...> - 2005-07-29 21:59:00
|
Author: sewardj
Date: 2005-07-29 22:58:51 +0100 (Fri, 29 Jul 2005)
New Revision: 1306
Log:
Reinstate some FP instructions. With --tool=3Dnone we now have a
successful run through gsl-1.6, which is great.
Modified:
trunk/priv/guest-ppc32/toIR.c
Modified: trunk/priv/guest-ppc32/toIR.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/priv/guest-ppc32/toIR.c 2005-07-29 11:57:00 UTC (rev 1305)
+++ trunk/priv/guest-ppc32/toIR.c 2005-07-29 21:58:51 UTC (rev 1306)
@@ -1398,34 +1398,34 @@
}
}
=20
-//zz=20
-//zz /* Write least-significant nibble of src to reg[field_idx] */
-//zz static void putReg_field ( PPC32SPR reg, IRExpr* src, UInt field_id=
x )
-//zz {
-//zz vassert( typeOfIRExpr(irbb->tyenv,src ) =3D=3D Ity_I32 );
-//zz vassert( field_idx < 8 );
-//zz vassert( reg < PPC32_SPR_MAX );
-//zz =20
-//zz if (field_idx !=3D 0) {
-//zz src =3D binop(Iop_Shl32, src, mkU8(toUChar(field_idx * 4)));
-//zz } =20
-//zz putReg_masked( reg, src, (0xF << (field_idx*4)) );
-//zz }
-//zz=20
-//zz /* Write least-significant bit of src to reg[bit_idx] */
-//zz static void putReg_bit ( PPC32SPR reg, IRExpr* src, UInt bit_idx )
-//zz {
-//zz vassert( typeOfIRExpr(irbb->tyenv,src ) =3D=3D Ity_I32 );
-//zz vassert( bit_idx < 32 );
-//zz vassert( reg < PPC32_SPR_MAX );
-//zz =20
-//zz if (bit_idx !=3D 0) {
-//zz src =3D binop(Iop_Shl32, src, mkU8(toUChar(bit_idx)));
-//zz } =20
-//zz putReg_masked( reg, src, (1<<bit_idx) );
-//zz }
=20
+/* Write least-significant nibble of src to reg[field_idx] */
+static void putReg_field ( PPC32SPR reg, IRExpr* src, UInt field_idx )
+{
+ vassert( typeOfIRExpr(irbb->tyenv,src ) =3D=3D Ity_I32 );
+ vassert( field_idx < 8 );
+ vassert( reg < PPC32_SPR_MAX );
+ =20
+ if (field_idx !=3D 0) {
+ src =3D binop(Iop_Shl32, src, mkU8(toUChar(field_idx * 4)));
+ } =20
+ putReg_masked( reg, src, (0xF << (field_idx*4)) );
+}
=20
+/* Write least-significant bit of src to reg[bit_idx] */
+static void putReg_bit ( PPC32SPR reg, IRExpr* src, UInt bit_idx )
+{
+ vassert( typeOfIRExpr(irbb->tyenv,src ) =3D=3D Ity_I32 );
+ vassert( bit_idx < 32 );
+ vassert( reg < PPC32_SPR_MAX );
+ =20
+ if (bit_idx !=3D 0) {
+ src =3D binop(Iop_Shl32, src, mkU8(toUChar(bit_idx)));
+ } =20
+ putReg_masked( reg, src, (1<<bit_idx) );
+}
+
+
/*------------------------------------------------------------*/
/*--- Integer Instruction Translation --- */
/*------------------------------------------------------------*/
@@ -2242,16 +2242,16 @@
loadBE(Ity_I16, mkexpr(EA_imm))) );
break;
=20
-//zz case 0x29: // lhzu (Load HW & and Zero with Update, PPC32 p451)
-//zz if (Ra_addr =3D=3D 0 || Ra_addr =3D=3D Rd_addr) {
-//zz vex_printf("dis_int_load(PPC32)(lhzu,Ra_addr|Rd_addr)\n");
-//zz return False;
-//zz }
-//zz DIP("lhzu r%d,%d(r%d)\n", Rd_addr, (Int)d_imm, Ra_addr);
-//zz putIReg( Rd_addr, unop(Iop_16Uto32,
-//zz loadBE(Ity_I16, mkexpr(EA_imm))) );
-//zz putIReg( Ra_addr, mkexpr(EA_imm) );
-//zz break;
+ case 0x29: // lhzu (Load HW & and Zero with Update, PPC32 p451)
+ if (Ra_addr =3D=3D 0 || Ra_addr =3D=3D Rd_addr) {
+ vex_printf("dis_int_load(PPC32)(lhzu,Ra_addr|Rd_addr)\n");
+ return False;
+ }
+ DIP("lhzu r%d,%d(r%d)\n", Rd_addr, exts_d_imm, Ra_addr);
+ putIReg( Rd_addr, unop(Iop_16Uto32,
+ loadBE(Ity_I16, mkexpr(EA_imm))) );
+ putIReg( Ra_addr, mkexpr(EA_imm) );
+ break;
=20
case 0x20: // lwz (Load W & Zero, PPC32 p460)
DIP("lwz r%d,%d(r%d)\n", Rd_addr, exts_d_imm, Ra_addr);
@@ -3910,16 +3910,16 @@
putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
break;
=20
-//zz case 0x33: // lfdu (Load Float Double with Update, PPC32 p438)
-//zz if (rA_addr =3D=3D 0) {
-//zz vex_printf("dis_fp_load(PPC32)(instr,lfdu)\n");
-//zz return False;
-//zz }
-//zz DIP("lfdu fr%d,%d(r%d)\n", frD_addr, exts_d_imm, rA_addr);
-//zz assign( EA, binop(Iop_Add32, mkU32(exts_d_imm), mkexpr(rA)) )=
;
-//zz putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
-//zz putIReg( rA_addr, mkexpr(EA) );
-//zz break;
+ case 0x33: // lfdu (Load Float Double with Update, PPC32 p438)
+ if (rA_addr =3D=3D 0) {
+ vex_printf("dis_fp_load(PPC32)(instr,lfdu)\n");
+ return False;
+ }
+ DIP("lfdu fr%d,%d(r%d)\n", frD_addr, exts_d_imm, rA_addr);
+ assign( EA, binop(Iop_Add32, mkU32(exts_d_imm), mkexpr(rA)) );
+ putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
+ putIReg( rA_addr, mkexpr(EA) );
+ break;
=20
case 0x1F:
if (b0 !=3D 0) {
@@ -3935,16 +3935,16 @@
loadBE(Ity_F32, mkexpr(EA))) );
break;
=20
-//zz case 0x237: // lfsux (Load Float Single with Update Indexed, =
PPC32 p443)
-//zz if (rA_addr =3D=3D 0) {
-//zz vex_printf("dis_fp_load(PPC32)(instr,lfsux)\n");
-//zz return False;
-//zz }
-//zz DIP("lfsux fr%d,r%d,r%d\n", frD_addr, rA_addr, rB_addr);
-//zz assign( EA, binop(Iop_Add32, mkexpr(rB), mkexpr(rA)) );
-//zz putFReg( frD_addr, unop(Iop_F32toF64, loadBE(Ity_F32, mkex=
pr(EA))) );
-//zz putIReg( rA_addr, mkexpr(EA) );
-//zz break;
+ case 0x237: // lfsux (Load Float Single with Update Indexed, PP=
C32 p443)
+ if (rA_addr =3D=3D 0) {
+ vex_printf("dis_fp_load(PPC32)(instr,lfsux)\n");
+ return False;
+ }
+ DIP("lfsux fr%d,r%d,r%d\n", frD_addr, rA_addr, rB_addr);
+ assign( EA, binop(Iop_Add32, mkexpr(rB), mkexpr(rA)) );
+ putFReg( frD_addr, unop(Iop_F32toF64, loadBE(Ity_F32, mkexpr=
(EA))) );
+ putIReg( rA_addr, mkexpr(EA) );
+ break;
=20
case 0x257: // lfdx (Load Float Double Indexed, PPC32 p440)
DIP("lfdx fr%d,r%d,r%d\n", frD_addr, rA_addr, rB_addr);
@@ -3952,16 +3952,16 @@
putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
break;
=20
-//zz case 0x277: // lfdux (Load Float Double with Update Indexed, =
PPC32 p439)
-//zz if (rA_addr =3D=3D 0) {
-//zz vex_printf("dis_fp_load(PPC32)(instr,lfdux)\n");
-//zz return False;
-//zz }
-//zz DIP("lfdux fr%d,r%d,r%d\n", frD_addr, rA_addr, rB_addr);
-//zz assign( EA, binop(Iop_Add32, mkexpr(rB), mkexpr(rA)) );
-//zz putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
-//zz putIReg( rA_addr, mkexpr(EA) );
-//zz break;
+ case 0x277: // lfdux (Load Float Double with Update Indexed, PP=
C32 p439)
+ if (rA_addr =3D=3D 0) {
+ vex_printf("dis_fp_load(PPC32)(instr,lfdux)\n");
+ return False;
+ }
+ DIP("lfdux fr%d,r%d,r%d\n", frD_addr, rA_addr, rB_addr);
+ assign( EA, binop(Iop_Add32, mkexpr(rB), mkexpr(rA)) );
+ putFReg( frD_addr, loadBE(Ity_F64, mkexpr(EA)) );
+ putIReg( rA_addr, mkexpr(EA) );
+ break;
=20
default:
vex_printf("dis_fp_load(PPC32)(opc2)\n");
@@ -4397,24 +4397,24 @@
mkexpr(frB) ));
break;
=20
-//zz case 0x1E: // fnmsub (Float Neg Mult-Subtr (Double Precision)=
, PPC32 p419)
-//zz DIP("fnmsub%s fr%d,fr%d,fr%d,fr%d\n", flag_Rc ? "." : "",
-//zz frD_addr, frA_addr, frC_addr, frB_addr);
-//zz assign( frD, unop( Iop_NegF64,
-//zz binop( Iop_SubF64,
-//zz binop( Iop_MulF64, mkexpr(frA), =
mkexpr(frC) ),
-//zz mkexpr(frB) )));
-//zz break;
-//zz=20
-//zz case 0x1F: // fnmadd (Float Neg Mult-Add (Double Precision), =
PPC32 p417)
-//zz DIP("fnmadd%s fr%d,fr%d,fr%d,fr%d\n", flag_Rc ? "." : "",
-//zz frD_addr, frA_addr, frC_addr, frB_addr);
-//zz assign( frD, unop( Iop_NegF64,
-//zz binop( Iop_AddF64,
-//zz binop( Iop_MulF64, mkexpr(frA), =
mkexpr(frC) ),
-//zz mkexpr(frB) )));
-//zz break;
+ case 0x1E: // fnmsub (Float Neg Mult-Subtr (Double Precision), PPC=
32 p419)
+ DIP("fnmsub%s fr%d,fr%d,fr%d,fr%d\n", flag_Rc ? "." : "",
+ frD_addr, frA_addr, frC_addr, frB_addr);
+ assign( frD, unop( Iop_NegF64,
+ binop( Iop_SubF64,
+ binop( Iop_MulF64, mkexpr(frA), mkexp=
r(frC) ),
+ mkexpr(frB) )));
+ break;
=20
+ case 0x1F: // fnmadd (Float Neg Mult-Add (Double Precision), PPC32=
p417)
+ DIP("fnmadd%s fr%d,fr%d,fr%d,fr%d\n", flag_Rc ? "." : "",
+ frD_addr, frA_addr, frC_addr, frB_addr);
+ assign( frD, unop( Iop_NegF64,
+ binop( Iop_AddF64,
+ binop( Iop_MulF64, mkexpr(frA), mkexp=
r(frC) ),
+ mkexpr(frB) )));
+ break;
+
default:
vex_printf("dis_fp_multadd(PPC32)(3F: opc2)\n");
return False;
@@ -4617,10 +4617,10 @@
assign( frD, mkexpr(frB) );
break;
=20
-//zz case 0x088: // fnabs (Floating Negative Absolute Value, PPC32 p4=
15)
-//zz DIP("fnabs%s fr%d,fr%d\n", flag_Rc ? "." : "", frD_addr, frB_=
addr);
-//zz assign( frD, unop( Iop_NegF64, unop( Iop_AbsF64, mkexpr(frB) =
)));
-//zz break;
+ case 0x088: // fnabs (Floating Negative Absolute Value, PPC32 p415=
)
+ DIP("fnabs%s fr%d,fr%d\n", flag_Rc ? "." : "", frD_addr, frB_ad=
dr);
+ assign( frD, unop( Iop_NegF64, unop( Iop_AbsF64, mkexpr(frB) ))=
);
+ break;
=20
case 0x108: // fabs (Floating Absolute Value, PPC32 p399)
DIP("fabs%s fr%d,fr%d\n", flag_Rc ? "." : "", frD_addr, frB_add=
r);
@@ -4686,36 +4686,36 @@
//zz putReg_field( PPC32_SPR_CR, mkexpr(tmp), 7-crfD );
//zz break;
//zz }
-//zz=20
-//zz case 0x046: { // mtfsb0 (Move to FPSCR Bit 0, PPC32 p478)
-//zz // Bit crbD of the FPSCR is cleared.
-//zz UChar crbD =3D toUChar((theInstr >> 21) & 0x1F); /* theIns=
tr[21:25] */
-//zz UInt b11to20 =3D (theInstr >> 11) & 0x3FF; /* theIns=
tr[11:20] */
-//zz=20
-//zz if (b11to20 !=3D 0) {
-//zz vex_printf("dis_fp_scr(PPC32)(instr,mtfsb0)\n");
-//zz return False;
-//zz } =20
-//zz DIP("mtfsb0%s crb%d\n", flag_Rc ? "." : "", crbD);
-//zz putReg_bit( PPC32_SPR_FPSCR, mkU32(0), 31-crbD );
-//zz break;
-//zz }
-//zz=20
-//zz case 0x086: { // mtfsfi (Move to FPSCR Field Immediate, PPC32 p4=
81)
-//zz UChar crfD =3D toUChar((theInstr >> 23) & 0x7); /* theIns=
tr[23:25] */
-//zz UChar b16to22 =3D toUChar((theInstr >> 16) & 0x7F); /* theIns=
tr[16:22] */
-//zz UChar IMM =3D toUChar((theInstr >> 12) & 0xF); /* theIns=
tr[11:15] */
-//zz UChar b11 =3D toUChar((theInstr >> 11) & 0x1); /* theIns=
tr[11] */
-//zz=20
-//zz if (b16to22 !=3D 0 || b11 !=3D 0) {
-//zz vex_printf("dis_fp_scr(PPC32)(instr,mtfsfi)\n");
-//zz return False;
-//zz } =20
-//zz DIP("mtfsfi%s crf%d,%d\n", flag_Rc ? "." : "", crfD, IMM);
-//zz putReg_field( PPC32_SPR_FPSCR, mkU32(IMM), 7-crfD );
-//zz break;
-//zz }
=20
+ case 0x046: { // mtfsb0 (Move to FPSCR Bit 0, PPC32 p478)
+ // Bit crbD of the FPSCR is cleared.
+ UChar crbD =3D toUChar((theInstr >> 21) & 0x1F); /* theInstr[21=
:25] */
+ UInt b11to20 =3D (theInstr >> 11) & 0x3FF; /* theInstr[11=
:20] */
+
+ if (b11to20 !=3D 0) {
+ vex_printf("dis_fp_scr(PPC32)(instr,mtfsb0)\n");
+ return False;
+ } =20
+ DIP("mtfsb0%s crb%d\n", flag_Rc ? "." : "", crbD);
+ putReg_bit( PPC32_SPR_FPSCR, mkU32(0), 31-crbD );
+ break;
+ }
+
+ case 0x086: { // mtfsfi (Move to FPSCR Field Immediate, PPC32 p481)
+ UChar crfD =3D toUChar((theInstr >> 23) & 0x7); /* theInstr[23=
:25] */
+ UChar b16to22 =3D toUChar((theInstr >> 16) & 0x7F); /* theInstr[16=
:22] */
+ UChar IMM =3D toUChar((theInstr >> 12) & 0xF); /* theInstr[11=
:15] */
+ UChar b11 =3D toUChar((theInstr >> 11) & 0x1); /* theInstr[11=
] */
+
+ if (b16to22 !=3D 0 || b11 !=3D 0) {
+ vex_printf("dis_fp_scr(PPC32)(instr,mtfsfi)\n");
+ return False;
+ } =20
+ DIP("mtfsfi%s crf%d,%d\n", flag_Rc ? "." : "", crfD, IMM);
+ putReg_field( PPC32_SPR_FPSCR, mkU32(IMM), 7-crfD );
+ break;
+ }
+
case 0x247: { // mffs (Move from FPSCR, PPC32 p468)
UChar frD_addr =3D toUChar((theInstr >> 21) & 0x1F); /* theInstr[2=
1:25] */
UInt b11to20 =3D (theInstr >> 11) & 0x3FF; /* theInstr[1=
1:20] */
@@ -6625,7 +6625,6 @@
irbb->jumpkind =3D Ijk_NoDecode;
dres.whatNext =3D Dis_StopHere;
dres.len =3D 0;
-vassert(0);
return dres;
=20
} /* switch (opc) for the main (primary) opcode switch. */
|
|
From: Julian S. <js...@ac...> - 2005-07-29 19:32:13
|
> But that is not about REP. This problem is at the end of every BB ending in
> a conditional jump, so it is not something to ignore IMHO.
> I just found out that VEX sometimes inverts the condition in conditional
> jumps, so the simulator is more or less not called for conditional jump
> instructions randomly.
I have to say .. I think it may prove difficult to get
{cache,call}grind to treat rep instructions as a single insn,
regardless of how many iterations it does. Particularly if vex is
going to unroll the BB containing the IR for the instruction. That
said, I'll help if I can.
Can you send an example of this conditional inversion? I'm not really
sure what you mean.
> > > I reverted this behaviour. See my change in CLG_(instrument) in the
> > > attached file (i renamed handleOneStatement to collectStatementInfo).
> > >
> > > In handleOneStatement, you did not forward ABI hints.
> > > I thought that ABI hints are used to generate better code in the VEX
> > > backend?
> >
> > What are ABI hints?
>
> I think these are pseudo-statements VEX is producing to give hints from the
> frontend to the backend. Julian, is this correct?
Sort-of. They are hints from the front end to the tool. So far the
only use is on amd64, to emit a hint that a call or return instruction
is just about to be executed. In that case memcheck needs to mess with
the memory permissions for -127(%rsp) .. 0(%rsp) and so it generates
an appropriate helper call when it sees the hint. I think it's a hack
but I couldn't think of anything cleaner.
J
|
|
From: Nicholas N. <nj...@cs...> - 2005-07-29 19:30:42
|
On Fri, 29 Jul 2005, Josef Weidendorfer wrote: > But that is not about REP. This problem is at the end of every BB ending in a > conditional jump, so it is not something to ignore IMHO. > I just found out that VEX sometimes inverts the condition in conditional > jumps, so the simulator is more or less not called for conditional jump > instructions randomly. Oh, sorry, I misread your message. That is bad, I should fix it before 3.0.0 ships. Thanks for spotting it. N |
|
From: Josef W. <Jos...@gm...> - 2005-07-29 19:12:39
|
On Friday 29 July 2005 19:54, you wrote: > On Fri, 29 Jul 2005, Josef Weidendorfer wrote: > > Looking to get the REP case right, I noticed that you insert calls to the > > simulation always after a guest instruction. In VG 2.x, this was the > > other way round. > > > > The effect of the current instrumentation is that log_1I_0D_cache_access > > is called for conditional jumps only in the fall-through case. > > > > Was this change done intentional? > > [sigh] The REP handling has changed so many times that I can't remember > how or why it is what it is. I can certainly believe that the 3.0.0 > Cachegrind is not doing the right thing. But that is not about REP. This problem is at the end of every BB ending in a conditional jump, so it is not something to ignore IMHO. I just found out that VEX sometimes inverts the condition in conditional jumps, so the simulator is more or less not called for conditional jump instructions randomly. > > I reverted this behaviour. See my change in CLG_(instrument) in the > > attached file (i renamed handleOneStatement to collectStatementInfo). > > > > In handleOneStatement, you did not forward ABI hints. > > I thought that ABI hints are used to generate better code in the VEX > > backend? > > What are ABI hints? I think these are pseudo-statements VEX is producing to give hints from the frontend to the backend. Julian, is this correct? Josef > > Nick |
|
From: <sv...@va...> - 2005-07-29 18:42:27
|
Author: tom
Date: 2005-07-29 19:42:22 +0100 (Fri, 29 Jul 2005)
New Revision: 4295
Log:
Take the address of the ifr_index member when testing if it is defined
before an SIOCGIFNAME ioctl.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.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_syswrap/syswrap-generic.c 2005-07-29 18:33:19 UTC (=
rev 4294)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-29 18:42:22 UTC (=
rev 4295)
@@ -3233,7 +3233,7 @@
break;
case VKI_SIOCGIFNAME: /* get iface name */
PRE_MEM_READ( "ioctl(SIOCGIFNAME)",
- (Addr)((struct vki_ifreq *)ARG3)->vki_ifr_ifindex,
+ (Addr)&((struct vki_ifreq *)ARG3)->vki_ifr_ifindex,
sizeof(((struct vki_ifreq *)ARG3)->vki_ifr_ifindex)=
);
PRE_MEM_WRITE( "ioctl(SIOCGIFNAME)", ARG3, sizeof(struct vki_ifreq=
));
break;
|
|
From: <sv...@va...> - 2005-07-29 18:33:34
|
Author: tom
Date: 2005-07-29 19:33:19 +0100 (Fri, 29 Jul 2005)
New Revision: 4294
Log:
A static const variable must have a constant initialiser, so remove the
static qualifier from those variables with a non-constant initialiser.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr.c
trunk/coregrind/m_debuginfo/stabs.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.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_aspacemgr/aspacemgr.c 2005-07-29 17:20:21 UTC (rev =
4293)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-07-29 18:33:19 UTC (rev =
4294)
@@ -610,7 +610,7 @@
partial mappings at the ends are truncated. */
void VG_(unmap_range)(Addr addr, SizeT len)
{
- static const Bool debug =3D False || mem_debug;
+ const Bool debug =3D False || mem_debug;
Segment* s;
Addr end, s_end;
Int i;
@@ -727,7 +727,7 @@
UInt dev, UInt ino, ULong off,=20
const Char *filename)
{
- static const Bool debug =3D False || mem_debug;
+ const Bool debug =3D False || mem_debug;
Segment* s;
Int idx;
HChar* stage2_suffix1 =3D "lib/valgrind/stage2";
@@ -874,7 +874,7 @@
void VG_(mprotect_range)(Addr a, SizeT len, UInt prot)
{
Int r;
- static const Bool debug =3D False || mem_debug;
+ const Bool debug =3D False || mem_debug;
=20
if (debug)
VG_(printf)("\nmprotect_range(%p, %lu, %x)\n", a, len, prot);
@@ -905,7 +905,7 @@
*/
Addr VG_(find_map_space)(Addr addr, SizeT len, Bool for_client)
{
- static const Bool debug =3D False || mem_debug;
+ const Bool debug =3D False || mem_debug;
Addr ret;
Addr addrOrig =3D addr;
Addr limit =3D (for_client ? VG_(client_end)-1 : VG_(valgrind_last)=
);
Modified: trunk/coregrind/m_debuginfo/stabs.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_debuginfo/stabs.c 2005-07-29 17:20:21 UTC (rev 4293=
)
+++ trunk/coregrind/m_debuginfo/stabs.c 2005-07-29 18:33:19 UTC (rev 4294=
)
@@ -131,7 +131,7 @@
*/
static SymType *structRef(StabTypeTab *tab, SymType *def, Bool isstruct,=
Char *name)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
struct structlist *sl;
SymType *ty;
static Int warnlen =3D 0;
@@ -176,7 +176,7 @@
/* Add a structural defintion for a struct/union reference */
static SymType *structDef(StabTypeTab *tab, SymType *def, Bool isstruct,=
Char *name)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
SymType *ref =3D structRef(tab, NULL, isstruct, name);
=20
/* it seems that GNAT likes to declare names as both struct tags
@@ -244,7 +244,7 @@
/* add a new index for a file */
static void addFileAlias(StabTypeTab *tab, Char *filename, UInt instance=
, Int idx)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
struct header *hp;
=20
for(hp =3D tab->headerhash[header_hash(filename, instance)]; hp !=3D =
NULL; hp =3D hp->next) {
@@ -263,7 +263,7 @@
=20
static void addHeader(StabTypeTab *tab, Char *filename, UInt instance, I=
nt idx)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
struct header *hp, **bucket;
=20
if (debug)
@@ -484,7 +484,7 @@
=20
static void stab_resolve(SymType *st, void *data)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
Char *str =3D (Char *)data;
vg_assert(!ML_(st_isresolved)(st));
=20
@@ -501,7 +501,7 @@
introduced anywhere, so we need to scan it all to pick them up. */
static SymType *stabtype_parser(SegInfo *si, SymType *def, Char **pp)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
Char *p =3D *pp;
Char t;
SymType *type;
@@ -1030,7 +1030,7 @@
/* parse a symbol reference: NAME ':' DESC TYPE */
static Bool initSym(SegInfo *si, Sym *sym, stab_types kind, Char **namep=
, Int val)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
Char *name =3D *namep;
Char *ty;
Int len;
@@ -1171,7 +1171,7 @@
definitions helps a lot. */
static Scope *addSymsToScope(Scope *sc, struct symlist *list, Int nsyms,=
Scope *outer)
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
Int j;
struct symlist *n;
Int base;
@@ -1217,7 +1217,7 @@
UChar* stabC, Int stab_sz,=20
UChar* stabstr, Int stabstr_sz )
{
- static const Bool debug =3D False || stabs_debug;
+ const Bool debug =3D False || stabs_debug;
Int i;
Int n_stab_entries;
struct nlist* stab =3D (struct nlist*)stabC;
@@ -1295,7 +1295,7 @@
=20
/* handle continued string stabs */
{
- static const Bool contdebug =3D False || stabs_debug;
+ const Bool contdebug =3D False || stabs_debug;
Int buflen =3D 0;
Int idx =3D 0;
Char *buf =3D NULL;
|
|
From: Augusto V. <aug...@si...> - 2005-07-29 18:33:34
|
Content-Transfer-Encoding: 7bit Is it possible to call VG_(get_running_tid) inside a helper?? I'm trying to do this inside log_xx_xx_cache_access() helpers, and I only get IDs 1, 2 and 3 (1 is the main(), and 2,3 are pthreads; however, my program has 4 pthreads...) (Valgrind ver: 2.4.0) Thanks, Augusto |
|
From: Tom H. <to...@co...> - 2005-07-29 18:30:16
|
In message <200...@kf...>
Maurice van der Pot <gri...@ge...> wrote:
> On Fri, Jul 29, 2005 at 06:58:43PM +0100, Tom Hughes wrote:
> > > The build fails because of a few static const variable declarations
> > > within functions. Why are these static? If I change them to normal const
> > > variables, the compilation succeeds.
> >
> > The problem is not the fact that it is static, but the fact that
> > the initialiser is invalid.
>
> I'd like to understand this. The initialiser is False || somestaticconstfilevar.
> Why would that be a problem only for static consts and not for consts?
> What is the difference between static consts and consts within functions
> for that matter?
Whether it is const or not is irrelevant, the fact is that the
initialiser for a static variable (whether or not it is const and
whether it is at file or function scape) is supposed to be a constant.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Maurice v. d. P. <gri...@ge...> - 2005-07-29 18:17:42
|
On Fri, Jul 29, 2005 at 06:58:43PM +0100, Tom Hughes wrote: > > The build fails because of a few static const variable declarations > > within functions. Why are these static? If I change them to normal const > > variables, the compilation succeeds. >=20 > The problem is not the fact that it is static, but the fact that > the initialiser is invalid. I'd like to understand this. The initialiser is False || somestaticconstfil= evar.=20 Why would that be a problem only for static consts and not for consts?=20 What is the difference between static consts and consts within functions=20 for that matter? > For production use I would suggest that you probably want to have > optimisation turned on when building valgrind You're right. I forgot to check this. > There is already a bug on the bug tracker for this. You probably > want to attach yourself to it and maybe add your patch. Oh man! I'm the one who submitted the report! When I saw this problem this time I knew I had seen it before, but I searched through Gentoo's bugzilla and any patches I ever applied to my packages and didn't find anything.=20 Sorry for the duplicate report. I attached the patch to the bug report. Thanks, Maurice. --=20 Maurice van der Pot Gentoo Linux Developer gri...@ge... http://www.gentoo.org Creator of BiteMe! gri...@kf... http://www.kfk4ever.com |
|
From: Tom H. <to...@co...> - 2005-07-29 18:04:51
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
> Problem is, the DWARF3 specification describes the CFA information in
> great detail, but it doesn't say how the end of the CIE/FDE record
> sequence is to be detected.
My code just carries on to the end of the .dwarf_frame section
and libdwarf looks like it does the same.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Tom H. <to...@co...> - 2005-07-29 17:58:50
|
In message <200...@kf...>
Maurice van der Pot <gri...@ge...> wrote:
> It compiles on one of my systems, but not on the other. The system that
> it fails to build on is an nptl only system.
I don't think the NPTL only thing is an issue. FC4 is NPTL by default
and that builds fine.
> The build fails because of a few static const variable declarations
> within functions. Why are these static? If I change them to normal const
> variables, the compilation succeeds.
The problem is not the fact that it is static, but the fact that
the initialiser is invalid.
> One example of this is in coregrind/m_aspacemgr/aspacemgr.c at the
> beginning of function VG_(unmap_range). The error I get is
> "initializer element is not constant".
Those are technically invalid but work with every version of gcc
that I know of so long as you have optimisation turned on as the
constant folder reduces the expression to a constant before it checks
the initialiser ;-)
For production use I would suggest that you probably want to have
optimisation turned on when building valgrind
> I've tried with
> compilers: gcc 3.3.3
> gcc 3.4.3
> gcc 3.4.4
> glibc: 2.3.5
>
> Attached is a patch to change all problematic static consts into consts.
There is already a bug on the bug tracker for this. You probably
want to attach yourself to it and maybe add your patch.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Julian S. <js...@ac...> - 2005-07-29 17:52:05
|
> On Fri, 2005-07-29 at 14:12 +0100, Julian Seward wrote: > > > On Friday 29 July 2005 12:59, Duane Griffin wrote: > > > It builds and seems to work fine for me on AMD64 running SuSE 9.0, but > > > there are a number of failures in the regression test: > > > > > > == 157 tests, 35 stderr failures, 1 stdout failure ================= > > > > They are probably all encountering the same problem, but we'd need > > to see the nonempty <testname>.stderr.diff files to find out. Can you > > tar them up and send them? > > My pleasure, please find them attached. Looks like they are mostly just > caused by this warning: > > Warning: zero-sized CIE/FDE but not at section end in DWARF2 CFI reading Ok, all you DWARF2 CFA junkies out there :-), here's a question: I get the abovementioned warning a lot. Basically the call-frame unwinding information is a sequence of CIE or FDE records. What's in them doesn't matter, but each does have a size field which says how big that particular record is. Valgrind takes a zero-sized record as an end-of-sequence marker, and stops reading. Most of the time this corresponds to the end of the ELF .ehframe section, but sometimes it doesn't. For reference, "readelf --debug-dump=frames" also stops reading when it hits a zero-length CIE/FDE record. Problem is, the DWARF3 specification describes the CFA information in great detail, but it doesn't say how the end of the CIE/FDE record sequence is to be detected. If anybody can shed any light on this ultra-arcane point, I'd really appreciate it. J |
|
From: Maurice v. d. P. <gri...@ge...> - 2005-07-29 17:46:15
|
On Wed, Jul 27, 2005 at 09:17:35PM +0100, Julian Seward wrote:
> Please download and test this release candidate, and let us know of
> any problems you encounter.
It compiles on one of my systems, but not on the other. The system that
it fails to build on is an nptl only system.
The build fails because of a few static const variable declarations
within functions. Why are these static? If I change them to normal const
variables, the compilation succeeds.
One example of this is in coregrind/m_aspacemgr/aspacemgr.c at the
beginning of function VG_(unmap_range). The error I get is
"initializer element is not constant".
I've tried with
compilers: gcc 3.3.3
gcc 3.4.3
gcc 3.4.4
glibc: 2.3.5
Attached is a patch to change all problematic static consts into consts.
Best regards,
Maurice.
P.S.: If proc is not mounted, valgrind exits like this:
open /proc/self/maps: No such file or directory
Segmentation fault
It would be nice if it could exit more gracefully.
--
Maurice van der Pot
Gentoo Linux Developer gri...@ge... http://www.gentoo.org
Creator of BiteMe! gri...@kf... http://www.kfk4ever.com
|
|
From: Julian S. <js...@ac...> - 2005-07-29 17:40:18
|
> On Friday 29 July 2005 12:59, Duane Griffin wrote: > It builds and seems to work fine for me on AMD64 running SuSE 9.0, but > there are a number of failures in the regression test: > > == 157 tests, 35 stderr failures, 1 stdout failure ================= They are probably all encountering the same problem, but we'd need to see the nonempty <testname>.stderr.diff files to find out. Can you tar them up and send them? J |
|
From: <sv...@va...> - 2005-07-29 17:21:22
|
Author: dirk Date: 2005-07-29 18:20:21 +0100 (Fri, 29 Jul 2005) New Revision: 4293 Log: use http:// svn:externals for all those poor souls behind braindamaged firewalls Modified: trunk/ Property changes on: trunk ___________________________________________________________________ Name: svn:externals - VEX svn://svn.valgrind.org/vex/trunk + VEX http://svn.valgrind.org/vex/trunk |
|
From: Nicholas N. <nj...@cs...> - 2005-07-29 14:25:10
|
On Fri, 29 Jul 2005, Duane Griffin wrote: > It builds and seems to work fine for me on AMD64 running SuSE 9.0, but > there are a number of failures in the regression test: > > == 157 tests, 35 stderr failures, 1 stdout failure ================= 35 is a bit high. Can you look at the *.stderr.diff and *.stderr.out files and determine if there's a single cause of most of the failures? Thanks. N |
|
From: Nicholas N. <nj...@cs...> - 2005-07-29 13:55:08
|
On Fri, 29 Jul 2005, B.Senthilkumar wrote: > I am beginner to valgrind developer . I can't to findout the code flow > sequence and i can't to findout where the memory check program starts. Could > any one please send me code flow document link Start by reading chapter 2 of http://www.valgrind.org/docs/phd2004.pdf. Note that this document describes the old intermediate representation (UCode) used in Valgrind up to 2.4.0; the newer versions (3.0.0 and upwards) have a different representation. But most of the other details are still correct, and reading about UCode will still be useful for understanding how Valgrind works. N |
|
From: <sv...@va...> - 2005-07-29 11:57:09
|
Author: sewardj
Date: 2005-07-29 12:57:00 +0100 (Fri, 29 Jul 2005)
New Revision: 1305
Log:
Implement ffreep %st(0). Fixes #109718.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.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/priv/guest-x86/toIR.c 2005-07-29 11:28:38 UTC (rev 1304)
+++ trunk/priv/guest-x86/toIR.c 2005-07-29 11:57:00 UTC (rev 1305)
@@ -4787,6 +4787,12 @@
delta++;
switch (modrm) {
=20
+ case 0xC0: /* FFREEP %st(0) */
+ DIP("ffreep %%st(%d)\n", 0);
+ put_ST_TAG ( 0, mkU8(0) );
+ fp_pop();
+ break;
+
case 0xE0: /* FNSTSW %ax */
DIP("fnstsw %%ax\n");
/* Get the FPU status word value and dump it in %AX. */
|