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
(21) |
2
(18) |
3
(19) |
4
(17) |
|
5
(6) |
6
(5) |
7
(9) |
8
(21) |
9
(16) |
10
(21) |
11
(22) |
|
12
(19) |
13
(19) |
14
(8) |
15
(16) |
16
(17) |
17
(16) |
18
(33) |
|
19
(33) |
20
(34) |
21
(32) |
22
(26) |
23
(23) |
24
(16) |
25
(21) |
|
26
(19) |
27
(7) |
28
(29) |
29
(27) |
30
(55) |
|
|
|
From: <sv...@va...> - 2005-06-30 00:44:09
|
Author: njn Date: 2005-06-30 01:44:02 +0100 (Thu, 30 Jun 2005) New Revision: 123 Log: extra info Modified: trunk/support/bug_reports.html Modified: trunk/support/bug_reports.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/support/bug_reports.html 2005-06-30 00:27:57 UTC (rev 122) +++ trunk/support/bug_reports.html 2005-06-30 00:44:02 UTC (rev 123) @@ -37,3 +37,7 @@ include all this information, you are much more likely to get a useful response.</p> =20 +<p>Some bugs are fixed quickly, some take a long time to get fixed. +Please be patient if your bug is not acted upon quickly. The great +thing about Bugzilla is that bug reports do not get lost.</p> + |
|
From: <sv...@va...> - 2005-06-30 00:28:01
|
Author: njn Date: 2005-06-30 01:27:57 +0100 (Thu, 30 Jun 2005) New Revision: 122 Log: Update info about 2.4 vs. 3.0 repos. Modified: trunk/devel/cvs_svn.html Modified: trunk/devel/cvs_svn.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/devel/cvs_svn.html 2005-06-11 23:53:03 UTC (rev 121) +++ trunk/devel/cvs_svn.html 2005-06-30 00:27:57 UTC (rev 122) @@ -10,18 +10,53 @@ <a href=3D"http://subversion.tigris.org/">Subversion</a> (SVN) at valgrind.org.<br /> =20 -The development valgrind-3.0 line is now in SVN at valgrind.org.<br /> +The actively developed valgrind-3.0 line is now in SVN at valgrind.org.<= br /> =20 -The stable valgrind-2.4 line continues to be kde.org, now also in SVN, a= t +The old valgrind-2.4 line continues to be kde.org, now also in SVN, at least for the moment.</p> =20 -<p>If you are doing any development work other than bug fixes for 2.4, p= lease -do them on the 3.0 line against the valgrind.org repository!</p> +<p>If you are doing any development work, please do it on the 3.0 line +against the valgrind.org repository!</p> =20 =20 <div class=3D"hr_brown"><hr/></div> -<h2>The stable valgrind-2.4 line</h2> +<h2>The Valgrind-3.0 development line</h2> =20 +<p>If you want to browse the 3.0 repository, you can use the web +based interface:=20 +<a href=3D"http://svn.valgrind.org/">http://svn.valgrind.org/</a>.</p> + +<p>To check out code on the 3.0 line (anonymous, read-only SVN=20 +access), proceed as follows. Note that=20 +the 3.0 line has been split into two pieces: Vex, a library that +provides dynamic translation services, and Valgrind proper. You=20 +need both pieces. Do this:<br /> +<code> svn co svn://svn.valgrind.org/vex/trunk vex</code><br= /> +<code> svn co svn://svn.valgrind.org/valgrind/trunk valgrind= </code><br /> +<code> cd vex && make clean version all</code><br /> +<code> cd ../valgrind</code><br /> +<code> ./autogen.sh</code><br /> +<code> ./configure --prefix=3D... --with-vex=3D/path/to/vex<= /code><br /> +<code> make install</code><br /> +</p> + +<p><b>Note:</b> as of late June 2005, the 3.0 line has seen great +upheaval. Nonetheless, it builds and works well on x86/Linux <b>and +AMD64/Linux</b> and is eminently usable. It also has some functional +improvements over the current 2.4.0 release, mostly in Memcheck's handli= ng +of SSE/SSE2 code. +</p> + +<p>On PPC32/Linux it is just coming to life, but cannot run anything mor= e +than tiny programs. We expect this will improve rapidly. For the time +being, however, don't bother to try building on PPC32/Linux unless you a= re a +die-hard developer and are prepared for serious breakage. +</p> + + +<div class=3D"hr_brown"><hr/></div> +<h2>The old Valgrind-2.4 line</h2> + <p>If you want to browse the 2.4 repository you can use the=20 <a href=3D"http://websvn.kde.org/trunk/valgrind/">web based interface</a= >.</p> =20 @@ -42,36 +77,4 @@ =20 =20 =20 -<div class=3D"hr_brown"><hr/></div> -<h2>The unstable valgrind-3.0 development line</h2> =20 -<p>If you want to browse the 3.0 repository, you can use the web -based interface:=20 -<a href=3D"http://svn.valgrind.org/">http://svn.valgrind.org/</a>.</p> - -<p>To check out code on the 3.0 line (anonymous, read-only SVN=20 -access), proceed as follows. Note that=20 -the 3.0 line has been split into two pieces: Vex, a library that -provides dynamic translation services, and Valgrind proper. You=20 -need both pieces. Do this:<br /> -<code> svn co svn://svn.valgrind.org/vex/trunk vex</code><br= /> -<code> svn co svn://svn.valgrind.org/valgrind/trunk valgrind= </code><br /> -<code> cd vex && make clean version all</code><br /> -<code> cd ../valgrind</code><br /> -<code> ./autogen.sh</code><br /> -<code> ./configure --prefix=3D... --with-vex=3D/path/to/vex<= /code><br /> -<code> make install</code><br /> -</p> - -<p><b>Note:</b> as of late March 2005, the 3.0 line has seen massive -upheaval. It builds and works pretty well on x86-linux and is -eminently usable. In some ways is already better than the current -stable 2.4.0 release, mostly in its handling of SSE/SSE2 code. -</p> - -<p>On amd64-linux it is just coming to life, but is majorly broken in -various ways, and is not usable for anything useful yet. We expect -this will improve rapidly. For the time being, however, don't bother -to try building on amd64-linux unless you are a die-hard developer and -are prepared for serious breakage. -</p> |
|
From: <sv...@va...> - 2005-06-30 00:22:41
|
Author: sewardj
Date: 2005-06-30 01:22:38 +0100 (Thu, 30 Jun 2005)
New Revision: 4058
Log:
acroread-5.06 for x86-linux requires up to 598 CIEs. Bump the array
size accordingly.
Modified:
trunk/coregrind/m_debuginfo/dwarf.c
Modified: trunk/coregrind/m_debuginfo/dwarf.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/dwarf.c 2005-06-30 00:16:02 UTC (rev 4057=
)
+++ trunk/coregrind/m_debuginfo/dwarf.c 2005-06-30 00:22:38 UTC (rev 4058=
)
@@ -2182,7 +2182,7 @@
cie->saw_z_augmentation =3D False;
}
=20
-#define N_CIEs 200
+#define N_CIEs 2000
static CIE the_CIEs[N_CIEs];
=20
=20
|
|
From: <sv...@va...> - 2005-06-30 00:16:09
|
Author: njn
Date: 2005-06-30 01:16:02 +0100 (Thu, 30 Jun 2005)
New Revision: 4057
Log:
Avoid magic numbers.
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-06-30 00:10:16 UTC (=
rev 4056)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-06-30 00:16:02 UTC (=
rev 4057)
@@ -4526,11 +4526,11 @@
PRE_REG_READ3(long, "mincore",
unsigned long, start, vki_size_t, length,
unsigned char *, vec);
- PRE_MEM_WRITE( "mincore(vec)", ARG3, (ARG2 + 4096 - 1) / 4096);
+ PRE_MEM_WRITE( "mincore(vec)", ARG3, VG_PGROUNDUP(ARG2) / VKI_PAGE_SI=
ZE );
}
POST(sys_mincore)
{
- POST_MEM_WRITE( ARG3, (ARG2 + 4096 - 1) / 4096 ); =20
+ POST_MEM_WRITE( ARG3, VG_PGROUNDUP(ARG2) / VKI_PAGE_SIZE ); =20
}
=20
PRE(sys_nanosleep)
|
|
From: <sv...@va...> - 2005-06-30 00:10:20
|
Author: sewardj
Date: 2005-06-30 01:10:16 +0100 (Thu, 30 Jun 2005)
New Revision: 4056
Log:
A couple more XML cases that slipped through the net.
Modified:
trunk/coregrind/m_debuginfo/dwarf.c
trunk/coregrind/m_errormgr.c
Modified: trunk/coregrind/m_debuginfo/dwarf.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/dwarf.c 2005-06-29 23:38:33 UTC (rev 4055=
)
+++ trunk/coregrind/m_debuginfo/dwarf.c 2005-06-30 00:10:16 UTC (rev 4056=
)
@@ -2486,7 +2486,8 @@
return;
=20
bad:
- VG_(message)(Vg_UserMsg, "Warning: %s in DWARF2 CFI reading", how);
+ if (!VG_(clo_xml))
+ VG_(message)(Vg_UserMsg, "Warning: %s in DWARF2 CFI reading", how=
);
return;
}
=20
Modified: trunk/coregrind/m_errormgr.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_errormgr.c 2005-06-29 23:38:33 UTC (rev 4055)
+++ trunk/coregrind/m_errormgr.c 2005-06-30 00:10:16 UTC (rev 4056)
@@ -465,7 +465,8 @@
pointless to continue the Valgrind run after this point. */
if (VG_(clo_error_limit)=20
&& (n_errs_shown >=3D M_COLLECT_NO_ERRORS_AFTER_SHOWN
- || n_errs_found >=3D M_COLLECT_NO_ERRORS_AFTER_FOUND)) {
+ || n_errs_found >=3D M_COLLECT_NO_ERRORS_AFTER_FOUND)
+ && !VG_(clo_xml)) {
if (!stopping_message) {
VG_(message)(Vg_UserMsg, "");
=20
@@ -498,7 +499,8 @@
/* After M_COLLECT_ERRORS_SLOWLY_AFTER different errors have
been found, be much more conservative about collecting new
ones. */
- if (n_errs_shown >=3D M_COLLECT_ERRORS_SLOWLY_AFTER) {
+ if (n_errs_shown >=3D M_COLLECT_ERRORS_SLOWLY_AFTER
+ && !VG_(clo_xml)) {
exe_res =3D Vg_LowRes;
if (!slowdown_message) {
VG_(message)(Vg_UserMsg, "");
|
|
From: <sv...@va...> - 2005-06-29 23:38:36
|
Author: sewardj
Date: 2005-06-30 00:38:33 +0100 (Thu, 30 Jun 2005)
New Revision: 4055
Log:
XML output wibble (purely decorative)
Modified:
trunk/coregrind/m_errormgr.c
Modified: trunk/coregrind/m_errormgr.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_errormgr.c 2005-06-29 23:15:56 UTC (rev 4054)
+++ trunk/coregrind/m_errormgr.c 2005-06-29 23:38:33 UTC (rev 4055)
@@ -669,10 +669,8 @@
any_supp =3D True;
if (VG_(clo_xml)) {
VG_(message)(Vg_DebugMsg,=20
- " <pair>\n"
- " <count>%d</count>\n"
- " <name>%s</name>\n"
- " </pair>",=20
+ " <pair> <count>%d</count> "
+ "<name>%s</name> </pair>",=20
su->count, su->sname);
} else {
VG_(message)(Vg_DebugMsg, "supp: %4d %s", su->count, su->sname)=
;
|
|
From: <sv...@va...> - 2005-06-29 23:16:23
|
Author: sewardj
Date: 2005-06-30 00:15:56 +0100 (Thu, 30 Jun 2005)
New Revision: 4054
Log:
XML printing fixes for printing to file descriptors.
Modified:
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_main.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_main.c 2005-06-29 17:12:28 UTC (rev 4053)
+++ trunk/coregrind/m_main.c 2005-06-29 23:15:56 UTC (rev 4054)
@@ -1855,7 +1855,7 @@
VG_(message)(Vg_UserMsg, "</preamble>");
}
=20
- if (VG_(clo_verbosity) > 0 && log_to !=3D VgLogTo_Fd) {
+ if (!VG_(clo_xml) && VG_(clo_verbosity) > 0 && log_to !=3D VgLogTo_Fd=
) {
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,=20
"My PID =3D %d, parent PID =3D %d. Prog and args are:",
|
|
From: Josef W. <Jos...@gm...> - 2005-06-29 22:37:26
|
On Tuesday 28 June 2005 12:11, Julian Seward wrote:
> - External tools: installing eg Callgrind could be more complex as it
> would have to be linked against libcoregrind.a at
> installation time, even if installing from RPMs.
I don't see real problems here. Finding the correct lib is similar to finding
the headers now.
Linking with valgrind at build time would make RPMs independent, i.e. a
callgrind installation could exist without valgrind at all or with another
valgrind release. Similar, currently I am forced to install into the same
prefix, as valgrind has to find the tool.
But actually, I do not see any big advantages or disadvantages regarding
external tools.
> Alternatively, adjust the core/tool interface so that multiple
> tools can be linked into the core all at once. This sounds
> attractive, and could save disk space.
For external tools you still have to provide the library to link against.
I.e. each external tools would get its own executable. As I am used to install
my wrapper script ("callgrind"), which would become the executable, AFAICS it
would not make a big difference.
Josef
>
> Comments? In particular, are there other bad consequences I haven't
> thought of? Also, [GregP] how would this play for making V work
> for MacOS ?
>
> J
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
|
|
From: <sv...@va...> - 2005-06-29 19:05:13
|
Author: cerion
Date: 2005-06-29 20:05:08 +0100 (Wed, 29 Jun 2005)
New Revision: 1232
Log:
We have more than 59 allocateable regs now (duh)
+ Better insn printout for altivec load/store
Modified:
trunk/priv/host-ppc32/hdefs.c
Modified: trunk/priv/host-ppc32/hdefs.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/host-ppc32/hdefs.c 2005-06-29 19:01:32 UTC (rev 1231)
+++ trunk/priv/host-ppc32/hdefs.c 2005-06-29 19:05:08 UTC (rev 1232)
@@ -181,7 +181,7 @@
void getAllocableRegs_PPC32 ( Int* nregs, HReg** arr )
{
UInt i=3D0;
- *nregs =3D 59;
+ *nregs =3D 90;
*arr =3D LibVEX_Alloc(*nregs * sizeof(HReg));
// GPR0 =3D scratch reg where possible - some ops interpret as value =
zero
// GPR1 =3D stack pointer
@@ -281,6 +281,8 @@
(*arr)[i++] =3D hregPPC32_VR29();
(*arr)[i++] =3D hregPPC32_VR30();
(*arr)[i++] =3D hregPPC32_VR31();
+
+ vassert(i =3D=3D *nregs);
}
=20
=20
@@ -1227,21 +1229,21 @@
case Pin_AvLdSt: {
UChar sz =3D i->Pin.AvLdSt.sz;
if (i->Pin.AvLdSt.addr->tag =3D=3D Pam_IR) {
- vex_printf("{ ");
ppLoadImm(hregPPC32_GPR30(), i->Pin.AvLdSt.addr->Pam.RR.index);
- vex_printf(" }");
+ vex_printf(" ; ");
}
- if (i->Pin.AvLdSt.isLoad) {
+ if (i->Pin.AvLdSt.isLoad)
vex_printf("lv%sx ", sz=3D=3D8 ? "eb" : sz=3D=3D16 ? "eh" : sz=3D=
=3D32 ? "ew" : "");
- ppHRegPPC32(i->Pin.AvLdSt.reg);
- vex_printf(",");
- ppPPC32AMode(i->Pin.AvLdSt.addr);
- } else {
+ else
vex_printf("stv%sx ", sz=3D=3D8 ? "eb" : sz=3D=3D16 ? "eh" : sz=
=3D=3D32 ? "ew" : "");
- ppHRegPPC32(i->Pin.AvLdSt.reg);
- vex_printf(",");
- ppPPC32AMode(i->Pin.AvLdSt.addr);
- }
+ ppHRegPPC32(i->Pin.AvLdSt.reg);
+ vex_printf(",");
+ if (i->Pin.AvLdSt.addr->tag =3D=3D Pam_IR)
+ vex_printf("%%r30");
+ else=20
+ ppHRegPPC32(i->Pin.AvLdSt.addr->Pam.RR.index);
+ vex_printf(",");
+ ppHRegPPC32(i->Pin.AvLdSt.addr->Pam.RR.base);
return;
}
case Pin_AvUnary:
|
|
From: <sv...@va...> - 2005-06-29 19:01:38
|
Author: cerion
Date: 2005-06-29 20:01:32 +0100 (Wed, 29 Jun 2005)
New Revision: 1231
Log:
some more isel cases: v128,f32
Modified:
trunk/priv/host-ppc32/isel.c
Modified: trunk/priv/host-ppc32/isel.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/host-ppc32/isel.c 2005-06-29 18:53:23 UTC (rev 1230)
+++ trunk/priv/host-ppc32/isel.c 2005-06-29 19:01:32 UTC (rev 1231)
@@ -1353,7 +1353,7 @@
return r_dst;
}
=20
-//.. case Iop_128to32: {
+//.. case Iop_V128to32: {
//.. HReg dst =3D newVRegI(env);
//.. HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
//.. X86AMode* esp0 =3D X86AMode_IR(0, hregX86_ESP());
@@ -2325,28 +2325,33 @@
return;
}
=20
-//.. /* 128{HI}to64 */
-//.. case Iop_128HIto64:
-//.. case Iop_128to64: {
-//.. Int off =3D e->Iex.Unop.op=3D=3DIop_128HIto64 ? 8 : 0;
-//.. HReg tLo =3D newVRegI(env);
-//.. HReg tHi =3D newVRegI(env);
-//.. HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
-//.. X86AMode* esp0 =3D X86AMode_IR(0, hregX86_ESP());
-//.. X86AMode* espLO =3D X86AMode_IR(off, hregX86_ESP());
-//.. X86AMode* espHI =3D X86AMode_IR(off+4, hregX86_ESP());
-//.. sub_from_esp(env, 16);
-//.. addInstr(env, X86Instr_SseLdSt(False/*store*/, vec, esp=
0));
-//.. addInstr(env, X86Instr_Alu32R( Xalu_MOV,=20
-//.. X86RMI_Mem(espLO), tLo )=
);
-//.. addInstr(env, X86Instr_Alu32R( Xalu_MOV,=20
-//.. X86RMI_Mem(espHI), tHi )=
);
-//.. add_to_esp(env, 16);
-//.. *rHi =3D tHi;
-//.. *rLo =3D tLo;
-//.. return;
-//.. }
-//..=20
+ /* V128{HI}to64 */
+ case Iop_V128HIto64:
+ case Iop_V128to64: {
+ Int off =3D e->Iex.Unop.op=3D=3DIop_V128HIto64 ? 0 : 8;
+ HReg tLo =3D newVRegI(env);
+ HReg tHi =3D newVRegI(env);
+ HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
+ PPC32AMode *sp0, *spLO, *spHI;
+
+ sub_from_sp( env, 32 ); // Move SP down 32 bytes
+ sp0 =3D PPC32AMode_IR(0, StackFramePtr);
+ spHI =3D PPC32AMode_IR(off, StackFramePtr);
+ spLO =3D PPC32AMode_IR(off+4, StackFramePtr);
+
+ // store as Vec128
+ addInstr(env, PPC32Instr_AvLdSt( False/*store*/, 16, vec, sp=
0 ));
+
+ // load hi,lo words (of hi/lo half of vec) as Ity_I32's
+ addInstr(env, PPC32Instr_Load( 4, False, tHi, spHI ));
+ addInstr(env, PPC32Instr_Load( 4, False, tLo, spLO ));
+
+ add_to_sp( env, 32 ); // Reset SP
+ *rHi =3D tHi;
+ *rLo =3D tLo;
+ return;
+ }
+
//.. /* could do better than this, but for now ... */
//.. case Iop_1Sto64: {
//.. HReg tLo =3D newVRegI(env);
@@ -2971,7 +2976,7 @@
//.. return dst;
//.. }
//..=20
-//.. case Iop_32Uto128: {
+//.. case Iop_32UtoV128: {
//.. HReg dst =3D newVRegV(env);
//.. X86AMode* esp0 =3D X86AMode_IR(0, hregX86_ESP());
//.. X86RMI* rmi =3D iselIntExpr_RMI(env, e->Iex.Unop.arg);
@@ -2981,7 +2986,7 @@
//.. return dst;
//.. }
//..=20
-//.. case Iop_64Uto128: {
+//.. case Iop_64UtoV128: {
//.. HReg rHi, rLo;
//.. HReg dst =3D newVRegV(env);
//.. X86AMode* esp0 =3D X86AMode_IR(0, hregX86_ESP());
@@ -3001,7 +3006,7 @@
//.. if (e->tag =3D=3D Iex_Binop) {
//.. switch (e->Iex.Binop.op) {
//..=20
-//.. case Iop_Set128lo32: {
+//.. case Iop_SetV128lo32: {
//.. HReg dst =3D newVRegV(env);
//.. HReg srcV =3D iselVecExpr(env, e->Iex.Binop.arg1);
//.. HReg srcI =3D iselIntExpr_R(env, e->Iex.Binop.arg2);
@@ -3014,7 +3019,7 @@
//.. return dst;
//.. }
//..=20
-//.. case Iop_Set128lo64: {
+//.. case Iop_SetV128lo64: {
//.. HReg dst =3D newVRegV(env);
//.. HReg srcV =3D iselVecExpr(env, e->Iex.Binop.arg1);
//.. HReg srcIhi, srcIlo;
@@ -3030,7 +3035,7 @@
//.. return dst;
//.. }
//..=20
-//.. case Iop_64HLto128: {
+//.. case Iop_64HLtoV128: {
//.. HReg r3, r2, r1, r0;
//.. X86AMode* esp0 =3D X86AMode_IR(0, hregX86_ESP());
//.. X86AMode* esp4 =3D advance4(esp0);
@@ -3154,9 +3159,9 @@
//.. case Iop_InterleaveLO64x2:=20
//.. op =3D Xsse_UNPCKLQ; arg1isEReg =3D True; goto do_SseReRg;
//..=20
-//.. case Iop_And128: op =3D Xsse_AND; goto do_SseReRg;
-//.. case Iop_Or128: op =3D Xsse_OR; goto do_SseReRg;
-//.. case Iop_Xor128: op =3D Xsse_XOR; goto do_SseReRg;
+//.. case Iop_AndV128: op =3D Xsse_AND; goto do_SseReRg;
+//.. case Iop_OrV128: op =3D Xsse_OR; goto do_SseReRg;
+//.. case Iop_XorV128: op =3D Xsse_XOR; goto do_SseReRg;
//.. case Iop_Add8x16: op =3D Xsse_ADD8; goto do_SseReRg;
//.. case Iop_Add16x8: op =3D Xsse_ADD16; goto do_SseReRg;
//.. case Iop_Add32x4: op =3D Xsse_ADD32; goto do_SseReRg;
@@ -3327,6 +3332,12 @@
addInstr(env, PPC32Instr_Store( 4, am_addr4, rLo ));
return;
}
+//.. if (ty =3D=3D Ity_V128) {
+//.. HReg vec =3D iselVecExpr(env, stmt->Ist.Put.data);
+//.. X86AMode* am =3D X86AMode_IR(stmt->Ist.Put.offset, hregX8=
6_EBP());
+//.. addInstr(env, X86Instr_SseLdSt(False/*store*/, vec, am));
+//.. return;
+//.. }
//.. if (ty =3D=3D Ity_F32) {
//.. HReg f32 =3D iselFltExpr(env, stmt->Ist.Put.data);
//.. X86AMode* am =3D X86AMode_IR(stmt->Ist.Put.offset, hregX8=
6_EBP());
@@ -3402,18 +3413,18 @@
addInstr(env, PPC32Instr_FpUnary(Pfp_MOV, fr_dst, fr_src));
return;
}
-//.. if (ty =3D=3D Ity_F32) {
-//.. HReg dst =3D lookupIRTemp(env, tmp);
-//.. HReg src =3D iselFltExpr(env, stmt->Ist.Tmp.data);
-//.. addInstr(env, X86Instr_FpUnary(Xfp_MOV,src,dst));
-//.. return;
-//.. }
-//.. if (ty =3D=3D Ity_V128) {
-//.. HReg dst =3D lookupIRTemp(env, tmp);
-//.. HReg src =3D iselVecExpr(env, stmt->Ist.Tmp.data);
-//.. addInstr(env, mk_vMOVsd_RR(src,dst));
-//.. return;
-//.. }
+ if (ty =3D=3D Ity_F32) {
+ HReg fr_dst =3D lookupIRTemp(env, tmp);
+ HReg fr_src =3D iselFltExpr(env, stmt->Ist.Tmp.data);
+ addInstr(env, PPC32Instr_FpUnary(Pfp_MOV, fr_dst, fr_src));
+ return;
+ }
+ if (ty =3D=3D Ity_V128) {
+ HReg v_dst =3D lookupIRTemp(env, tmp);
+ HReg v_src =3D iselVecExpr(env, stmt->Ist.Tmp.data);
+ addInstr(env, PPC32Instr_AvUnary(Pav_MOV, v_dst, v_src));
+ return;
+ }
break;
}
=20
|
|
From: <sv...@va...> - 2005-06-29 18:54:21
|
Author: cerion
Date: 2005-06-29 19:53:23 +0100 (Wed, 29 Jun 2005)
New Revision: 1230
Log:
Fixed bug in doHelperCall, passing LONG_LONG params
Modified:
trunk/priv/host-ppc32/isel.c
Modified: trunk/priv/host-ppc32/isel.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/host-ppc32/isel.c 2005-06-29 07:59:18 UTC (rev 1229)
+++ trunk/priv/host-ppc32/isel.c 2005-06-29 18:53:23 UTC (rev 1230)
@@ -634,8 +634,8 @@
iselIntExpr_R(env, args[i]) ));
} else { // Ity_I64
HReg rHi, rLo;
- if (i%2 =3D=3D 1) // ppc32 abi spec for LONG_LONG
- argreg++;
+ if (argreg%2 =3D=3D 1) // ppc32 abi spec for passing a LONG_=
LONG
+ argreg++; // XXX: odd argreg =3D> even rN
vassert(argreg < PPC32_N_REGPARMS-1);
iselInt64Expr(&rHi,&rLo, env, args[i]);
addInstr(env, mk_iMOVds_RR( argregs[argreg++], rHi ));
@@ -668,8 +668,8 @@
tmpregs[argreg] =3D iselIntExpr_R(env, args[i]);
} else { // Ity_I64
HReg rHi, rLo;
- if (i%2 =3D=3D 1) // ppc32 abi spec for LONG_LONG
- argreg++;
+ if (argreg%2 =3D=3D 1) // ppc32 abi spec for passing a LONG_=
LONG
+ argreg++; // XXX: odd argreg =3D> even rN
vassert(argreg < PPC32_N_REGPARMS-1);
iselInt64Expr(&rHi,&rLo, env, args[i]);
tmpregs[argreg++] =3D rHi;
@@ -695,6 +695,8 @@
=20
/* Move the args to their final destinations. */
for (i =3D 0; i < argreg; i++) {
+ if (tmpregs[i] =3D=3D INVALID_HREG) // Skip invalid regs
+ continue;
/* None of these insns, including any spill code that might
be generated, may alter the condition codes. */
addInstr( env, mk_iMOVds_RR( argregs[i], tmpregs[i] ) );
|
|
From: <sv...@va...> - 2005-06-29 17:13:22
|
Author: sewardj
Date: 2005-06-29 18:12:28 +0100 (Wed, 29 Jun 2005)
New Revision: 4053
Log:
It's official. I am a moron.
Modified:
trunk/coregrind/m_transtab.c
Modified: trunk/coregrind/m_transtab.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_transtab.c 2005-06-29 10:16:14 UTC (rev 4052)
+++ trunk/coregrind/m_transtab.c 2005-06-29 17:12:28 UTC (rev 4053)
@@ -334,7 +334,7 @@
Addr addr;
=20
/* Surely no real cache would have a different line size? */
- vg_assert(cls =3D=3D 16 || cls =3D=3D 32 || cls =3D=3D 64);
+ vg_assert(cls =3D=3D 16 || cls =3D=3D 32 || cls =3D=3D 64 || cls =3D=3D=
128);
=20
startaddr &=3D ~(cls - 1);
for (addr =3D startaddr; addr < endaddr; addr +=3D cls)
|
|
From: Nicholas N. <nj...@cs...> - 2005-06-29 13:35:13
|
Hi, I want to remove the "Corecheck" tool. Corecheck is just like Nulgrind, except that it turns on "core errors". These are errors that the core can detect. The main ones used to be all the pthread errors, before they were disabled. There are also some other minor ones like detecting bad signal numbers in some signal-handling functions, and detecting bogus file descriptors passed to read(). The Corecheck regtests in theory are exercising these "core errors". In practice they are not. Most of them could be moved into Nulgrind with no change. The small number that actually report a "core error" could be moved into memcheck/tests/, since Memcheck (along with Addrcheck and Helgrind) turn on "core errors". I started this move last night, moving some of corecheck/tests/ into none/tests. And since regression testing was Corecheck's raison d'etre, if I move the regression tests out of corecheck/tests/ then Corecheck might as well die. It would be one fewer tool to maintain and document. Any objections? Related to this: Nulgrind currently does report some minor errors, eg. if you pass an invalid file descriptor to read(). I think it shouldn't, that all minor errors like this should only be reported if "core errors" have been turned on in the tool. Thus Nulgrind would never report any kind of errors, just run the program normally. Memcheck and co. would still report these minor errors, of course. Any objections to this? N |
|
From: Nicholas N. <nj...@cs...> - 2005-06-29 12:52:16
|
On Wed, 29 Jun 2005, Julian Seward wrote: >> Fix off-by-one error that was causing four leak-checking regression test >> failures for me, and also fixes bug #106293 for me. Let's hope it has >> the same effect for others. > > Thanks for chasing that. I was going to look at it this morning but I guess > I don't need to now :-) I wasn't even chasing it -- I just stumbled across it while looking at something else and got lucky :) N |
|
From: Paul M. <pa...@sa...> - 2005-06-29 12:28:48
|
Julian Seward writes: > Something similar needs to be instituted for ppc32. So far we > know of ppc32 with no Altivec and ppc32 with Altivec. Are there > further variants that need considering? There are embedded ppc processors (405, 440) that don't have altivec but do have some extra integer multiply-add instructions. The 440 also has a "determine left-most zero byte" instruction IIRC. I'll try to dig up some documentation on these instructions. Regards, Paul. |
|
From: Julian S. <js...@ac...> - 2005-06-29 10:51:50
|
Paul What are the main instruction-set variants in use on ppc32 ? For example, on x86, Vex distinguishes between x86-with-no-SSE capabilities, x86-that-can-do-SSE1 and x86-that-can-do-SSE2. Something similar needs to be instituted for ppc32. So far we know of ppc32 with no Altivec and ppc32 with Altivec. Are there further variants that need considering? Thanks, J |
|
From: <sv...@va...> - 2005-06-29 10:16:21
|
Author: sewardj
Date: 2005-06-29 11:16:14 +0100 (Wed, 29 Jun 2005)
New Revision: 4052
Log:
ppc32: reinstate collection of cache-line-size info from the auxv
array at startup. This is used in m_transtab. However this info is
not yet fed to Vex, so it's still important to zero-out the auxv field
holding cache line size info passed to the client, so as to stop the
client's glibc using dcbz. This will be fixed.
Also get rid of a bunch more ppc32-specific vdso stuff in m_main that
doesn't need to be done. This now means ppc32-linux specifics in
m_main are only marginally intrusive than the x86-linux or amd64-linux
specifics in m_main.
Modified:
trunk/coregrind/m_machine.c
trunk/coregrind/m_main.c
trunk/coregrind/m_transtab.c
trunk/coregrind/pub_core_machine.h
Modified: trunk/coregrind/m_machine.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_machine.c 2005-06-29 08:46:30 UTC (rev 4051)
+++ trunk/coregrind/m_machine.c 2005-06-29 10:16:14 UTC (rev 4052)
@@ -196,6 +196,16 @@
return VG_INVALID_THREADID;
}
=20
+//////////////////////////////////////////////////////////////////
+// Architecture specifics
+
+// PPC: what is the cache line size (for dcbz etc) ?
+// This info is harvested on Linux at startup from the AT_SYSINFO
+// entries. 0 means not-yet-set.
+#if defined(VGA_ppc32)
+Int VG_(cache_line_size_ppc32) =3D 0;
+#endif
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_main.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_main.c 2005-06-29 08:46:30 UTC (rev 4051)
+++ trunk/coregrind/m_main.c 2005-06-29 10:16:14 UTC (rev 4052)
@@ -122,13 +122,7 @@
static Int vg_argc;
static Char **vg_argv;
=20
-#if defined(VGP_ppc32_linux)
-/* From the aux vector */
-Int VG_(cache_line_size);
-UInt VG_(hardware_capabilities);
-#endif
=20
-
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/*=3D=3D=3D Counters, for profiling purposes only =
=3D=3D=3D*/
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
@@ -173,28 +167,28 @@
found |=3D 2;
break;
=20
-#if defined(VGP_ppc32_linux)
+# if defined(VGP_ppc32_linux)
case AT_DCACHEBSIZE:
case AT_ICACHEBSIZE:
case AT_UCACHEBSIZE:
- VG_(debugLog)(1, "main", "PPC32 cache line size %u (type %u)\n"=
,=20
- (UInt)auxv->u.a_val, (UInt)auxv->a_type );
- if (auxv->u.a_val)
- VG_(cache_line_size) =3D auxv->u.a_val;
- // XXX: Nasty hack to stop use of badly implemented
- // cache-control instns in vex (dcbz)
- auxv->u.a_val =3D 0;
+ if (auxv->u.a_val > 0) {
+ VG_(cache_line_size_ppc32) =3D auxv->u.a_val;
+ VG_(debugLog)(1, "main",=20
+ "PPC32 cache line size %u (type %u)\n",=20
+ (UInt)auxv->u.a_val, (UInt)auxv->a_type );
+ }
+ /* HACK: Tell glibc we don't know what the line size is.
+ This stops it using dcbz. */
+ auxv->u.a_val =3D 0;
break;
+# endif
=20
- case AT_HWCAP:
- VG_(hardware_capabilities) =3D auxv->u.a_val;
- break;
-#endif
-
case AT_PHDR:
VG_(valgrind_base) =3D VG_PGROUNDDN(auxv->u.a_val);
break;
=20
+ default:
+ break;
}
=20
if ( found !=3D (1|2) ) {
Modified: trunk/coregrind/m_transtab.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_transtab.c 2005-06-29 08:46:30 UTC (rev 4051)
+++ trunk/coregrind/m_transtab.c 2005-06-29 10:16:14 UTC (rev 4052)
@@ -30,12 +30,13 @@
*/
=20
#include "pub_core_basics.h"
+#include "pub_core_machine.h" // ppc32: VG_(cache_line_size_ppc32)
#include "pub_core_libcbase.h"
#include "pub_core_libcassert.h"
-#include "pub_core_libcmman.h" // For VG_(get_memory_from_mmap)()
+#include "pub_core_libcmman.h" // For VG_(get_memory_from_mmap)()
#include "pub_core_libcprint.h"
#include "pub_core_options.h"
-#include "pub_core_tooliface.h" // For VG_(details).avg_translation_=
sizeB
+#include "pub_core_tooliface.h" // For VG_(details).avg_translation_siz=
eB
#include "pub_core_transtab.h"
=20
/* #define DEBUG_TRANSTAB */
@@ -324,14 +325,17 @@
invalidateFastCache();
}
=20
-#if defined(VGA_ppc32)
-static void invalidate_icache(void *ptr, int nbytes)
+static void invalidate_icache ( void *ptr, Int nbytes )
{
- unsigned long startaddr =3D (unsigned long) ptr;
- unsigned long endaddr =3D startaddr + nbytes;
- unsigned long addr;
- unsigned long cls =3D 16; //VG_(cache_line_size);
+# if defined(VGA_ppc32)
+ Addr startaddr =3D (Addr) ptr;
+ Addr endaddr =3D startaddr + nbytes;
+ Addr cls =3D VG_(cache_line_size_ppc32);
+ Addr addr;
=20
+ /* Surely no real cache would have a different line size? */
+ vg_assert(cls =3D=3D 16 || cls =3D=3D 32 || cls =3D=3D 64);
+
startaddr &=3D ~(cls - 1);
for (addr =3D startaddr; addr < endaddr; addr +=3D cls)
asm volatile("dcbst 0,%0" : : "r" (addr));
@@ -339,8 +343,17 @@
for (addr =3D startaddr; addr < endaddr; addr +=3D cls)
asm volatile("icbi 0,%0" : : "r" (addr));
asm volatile("sync; isync");
+
+# elif defined(VGA_x86)
+ /* no need to do anything, hardware provides coherence */
+
+# elif defined(VGA_amd64)
+ /* no need to do anything, hardware provides coherence */
+
+# else
+# error "Unknown ARCH"
+# endif
}
-#endif
=20
=20
/* Add a translation of vge to TT/TC. The translation is temporarily
@@ -421,9 +434,7 @@
sectors[y].tc_next +=3D reqdQ;
sectors[y].tt_n_inuse++;
=20
-#if defined(VGA_ppc32)
invalidate_icache( dstP, code_len );
-#endif
=20
/* more paranoia */
tce2 =3D sectors[y].tc_next;
Modified: trunk/coregrind/pub_core_machine.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/pub_core_machine.h 2005-06-29 08:46:30 UTC (rev 4051)
+++ trunk/coregrind/pub_core_machine.h 2005-06-29 10:16:14 UTC (rev 4052)
@@ -88,6 +88,15 @@
// Offsets for the Vex state
#define VG_O_STACK_PTR (offsetof(VexGuestArchState, VG_STACK_PTR)=
)
=20
+// Architecture specifics
+
+// PPC: what is the cache line size (for dcbz etc) ?
+// This info is harvested on Linux at startup from the AT_SYSINFO
+// entries.
+#if defined(VGA_ppc32)
+extern Int VG_(cache_line_size_ppc32);
+#endif
+
#endif // __PUB_CORE_MACHINE_H
=20
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2005-06-29 08:46:33
|
Author: sewardj
Date: 2005-06-29 09:46:30 +0100 (Wed, 29 Jun 2005)
New Revision: 4051
Log:
Get rid of some VDSO finding stuff which was ifdef VGP_ppc32_linux but
apparently pointless as per recent mail from PaulM since ppc32-linux
does not use VDSOs yet.
Modified:
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_main.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_main.c 2005-06-29 04:02:24 UTC (rev 4050)
+++ trunk/coregrind/m_main.c 2005-06-29 08:46:30 UTC (rev 4051)
@@ -126,8 +126,6 @@
/* From the aux vector */
Int VG_(cache_line_size);
UInt VG_(hardware_capabilities);
-Addr VG_(vdso_base);
-Addr VG_(vdso_end);
#endif
=20
=20
@@ -154,24 +152,6 @@
=20
=20
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/*=3D=3D=3D Miscellaneous global functions =
=3D=3D=3D*/
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-
-#if defined(VGP_ppc32_linux)
-/* Used in scanning /proc/pid/maps for the VDSO */
-static int find_vdso(char *start, char *end, const char *perm,
- off_t offset, int maj, int min, int ino, void *extra)
-{
- if ((Addr)start !=3D VG_(vdso_base))
- return 1; /* keep looking */
- /* found it */
- VG_(vdso_end) =3D (Addr)end;
- return 0;
-}
-#endif
-
-
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/*=3D=3D=3D Check we were launched by stage 1 =
=3D=3D=3D*/
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
@@ -215,12 +195,6 @@
VG_(valgrind_base) =3D VG_PGROUNDDN(auxv->u.a_val);
break;
=20
-#if defined(VGP_ppc32_linux)
- case AT_SYSINFO_EHDR:
- VG_(vdso_base) =3D auxv->u.a_val;
- VG_(foreach_map)(find_vdso, NULL);
- break;
-#endif
}
=20
if ( found !=3D (1|2) ) {
@@ -294,27 +268,8 @@
vg_assert(!res.isError);
=20
// Make client hole
-//zz #if defined(VGP_ppc32_linux)
-//zz {
-//zz Int ires;
-//zz if (VG_(vdso_end) > VG_(client_base) && VG_(vdso_base) < VG_(cli=
ent_end)) {
-//zz if (VG_(client_base) < VG_(vdso_base)) {
-//zz ires =3D munmap((void *)VG_(client_base), VG_(vdso_base) - V=
G_(client_base));
-//zz vg_assert(ires =3D=3D 0);
-//zz }
-//zz if (VG_(vdso_end) < VG_(client_end)) {
-//zz ires =3D munmap((void *)VG_(vdso_end), VG_(client_end) - VG_=
(vdso_end));
-//zz vg_assert(ires =3D=3D 0);
-//zz }
-//zz } else {
-//zz ires =3D munmap((void*)VG_(client_base), client_size);
-//zz vg_assert(ires =3D=3D 0);
-//zz }
-//zz }
-//zz #else
res =3D VG_(munmap_native)((void*)VG_(client_base), client_size);
vg_assert(!res.isError);
-//zz #endif
=20
// Map shadow memory.
// Initially all inaccessible, incrementally initialized as it is use=
d
|
|
From: Julian S. <js...@ac...> - 2005-06-29 08:23:40
|
> Fix off-by-one error that was causing four leak-checking regression test > failures for me, and also fixes bug #106293 for me. Let's hope it has > the same effect for others. Thanks for chasing that. I was going to look at it this morning but I guess I don't need to now :-) J |
|
From: Cerion Armour-B. <ce...@op...> - 2005-06-29 08:09:25
|
On Wednesday 29 June 2005 10:02, Tom Hughes wrote: > In message <200...@op...> > > sv...@va... wrote: > > Fixed coupla altivec typos > > - hopefully fixes FC4 build > > It seems to be fine now. > > Tom Great. I'll have to try out gcc 4... Cerion |
|
From: Tom H. <to...@co...> - 2005-06-29 08:03:10
|
In message <200...@op...>
sv...@va... wrote:
> Fixed coupla altivec typos
> - hopefully fixes FC4 build
It seems to be fine now.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-06-29 07:59:23
|
Author: cerion
Date: 2005-06-29 08:59:18 +0100 (Wed, 29 Jun 2005)
New Revision: 1229
Log:
Fixed coupla altivec typos
- hopefully fixes FC4 build
Modified:
trunk/priv/host-ppc32/hdefs.c
trunk/priv/host-ppc32/hdefs.h
Modified: trunk/priv/host-ppc32/hdefs.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/host-ppc32/hdefs.c 2005-06-28 21:07:02 UTC (rev 1228)
+++ trunk/priv/host-ppc32/hdefs.c 2005-06-29 07:59:18 UTC (rev 1229)
@@ -1226,21 +1226,18 @@
=20
case Pin_AvLdSt: {
UChar sz =3D i->Pin.AvLdSt.sz;
- UChar* str_sz =3D (sz =3D=3D 8) ? "eb" :
- (sz =3D=3D 16) ? "eh" :
- (sz =3D=3D 32) ? "ew" : "";
if (i->Pin.AvLdSt.addr->tag =3D=3D Pam_IR) {
vex_printf("{ ");
ppLoadImm(hregPPC32_GPR30(), i->Pin.AvLdSt.addr->Pam.RR.index);
vex_printf(" }");
}
if (i->Pin.AvLdSt.isLoad) {
- vex_printf("lv%sx ", str_sz);
+ vex_printf("lv%sx ", sz=3D=3D8 ? "eb" : sz=3D=3D16 ? "eh" : sz=3D=
=3D32 ? "ew" : "");
ppHRegPPC32(i->Pin.AvLdSt.reg);
vex_printf(",");
ppPPC32AMode(i->Pin.AvLdSt.addr);
} else {
- vex_printf("stv%sx ", str_sz);
+ vex_printf("stv%sx ", sz=3D=3D8 ? "eb" : sz=3D=3D16 ? "eh" : sz=
=3D=3D32 ? "ew" : "");
ppHRegPPC32(i->Pin.AvLdSt.reg);
vex_printf(",");
ppPPC32AMode(i->Pin.AvLdSt.addr);
Modified: trunk/priv/host-ppc32/hdefs.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/priv/host-ppc32/hdefs.h 2005-06-28 21:07:02 UTC (rev 1228)
+++ trunk/priv/host-ppc32/hdefs.h 2005-06-29 07:59:18 UTC (rev 1229)
@@ -686,12 +686,12 @@
extern PPC32Instr* PPC32Instr_RdWrLR ( Bool wrLR, HReg gpr );
=20
extern PPC32Instr* PPC32Instr_AvLdSt ( Bool isLoad, UChar sz, HReg, =
PPC32AMode* );
-extern PPC32Instr* PPC32Instr_AvUnary ( PPC32FpOp op, HReg dst, HReg =
src );
-extern PPC32Instr* PPC32Instr_AvBinary ( PPC32FpOp op, HReg dst, HReg =
srcL, HReg srcR );
-extern PPC32Instr* PPC32Instr_AvBin8x16 ( PPC32FpOp op, HReg dst, HReg =
srcL, HReg srcR );
-extern PPC32Instr* PPC32Instr_AvBin16x8 ( PPC32FpOp op, HReg dst, HReg =
srcL, HReg srcR );
-extern PPC32Instr* PPC32Instr_AvBin32x4 ( PPC32FpOp op, HReg dst, HReg =
srcL, HReg srcR );
-extern PPC32Instr* PPC32Instr_AvBin32Fx4 ( PPC32FpOp op, HReg dst, HReg =
srcL, HReg srcR );
+extern PPC32Instr* PPC32Instr_AvUnary ( PPC32AvOp op, HReg dst, HReg =
src );
+extern PPC32Instr* PPC32Instr_AvBinary ( PPC32AvOp op, HReg dst, HReg =
srcL, HReg srcR );
+extern PPC32Instr* PPC32Instr_AvBin8x16 ( PPC32AvOp op, HReg dst, HReg =
srcL, HReg srcR );
+extern PPC32Instr* PPC32Instr_AvBin16x8 ( PPC32AvOp op, HReg dst, HReg =
srcL, HReg srcR );
+extern PPC32Instr* PPC32Instr_AvBin32x4 ( PPC32AvOp op, HReg dst, HReg =
srcL, HReg srcR );
+extern PPC32Instr* PPC32Instr_AvBin32Fx4 ( PPC32AvOp op, HReg dst, HReg =
srcL, HReg srcR );
extern PPC32Instr* PPC32Instr_AvPerm ( HReg ctl, HReg dst, HReg srcL=
, HReg srcR );
extern PPC32Instr* PPC32Instr_AvSel ( HReg ctl, HReg dst, HReg srcL=
, HReg srcR );
extern PPC32Instr* PPC32Instr_AvShlDbl ( UChar shift, HReg dst, HReg s=
rcL, HReg srcR );
|
|
From: Tom H. <to...@co...> - 2005-06-29 07:49:32
|
In message <E1D...@du...>
Tom Hughes <to...@co...> wrote:
> gcc -g -O -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -fpie -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \
> -c priv/host-ppc32/hdefs.c
> priv/host-ppc32/hdefs.c:817: error: conflicting types for 'PPC32Instr_AvUnary'
> priv/host-ppc32/hdefs.h:689: error: previous declaration of 'PPC32Instr_AvUnary' was here
The prototype says PPC32FpOp for the first argument but the function
itself says PPC32AvOp. Obviously gcc 4 is stricter about enum types
matching in prototypes.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-06-29 04:02:27
|
Author: njn
Date: 2005-06-29 05:02:24 +0100 (Wed, 29 Jun 2005)
New Revision: 4050
Log:
Fix vg_regtests so it can properly handle alternative output filenames wi=
th
more than one numeric char at the end (eg. xml1.stderr.exp64).
Modified:
trunk/tests/vg_regtest.in
Modified: trunk/tests/vg_regtest.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/tests/vg_regtest.in 2005-06-29 03:54:09 UTC (rev 4049)
+++ trunk/tests/vg_regtest.in 2005-06-29 04:02:24 UTC (rev 4050)
@@ -55,15 +55,15 @@
# Note that filters are necessary for stderr results to filter out thing=
s that
# always change, eg. process id numbers.
#
-# Expected stdout (filtered) is kept in <test>.stdout.exp[0-9]? (can be =
more
+# Expected stdout (filtered) is kept in <test>.stdout.exp[0-9]* (can be =
more
# than one expected output). It can be missing if it would be empty. E=
xpected
-# stderr (filtered) is kept in <test>.stderr.exp[0-9]?.=20
+# stderr (filtered) is kept in <test>.stderr.exp[0-9]*.=20
#
# The prerequisite command, if present, must return 0 otherwise the test=
is
# skipped.
#
# If results don't match, the output can be found in <test>.std<strm>.ou=
t,
-# and the diff between expected and actual in <test>.std<strm>.diff[0-9]=
?.
+# and the diff between expected and actual in <test>.std<strm>.diff[0-9]=
*.
#
# Notes on adding regression tests for a new tool are in
# coregrind/docs/coregrind_tools.html.
@@ -236,7 +236,7 @@
(-r $f_exp) or die "Could not read `$f_exp'\n";
=20
my $n =3D "";
- if ($f_exp =3D~ /.*\.exp(\d?)/) {
+ if ($f_exp =3D~ /.*\.exp(\d*)/) {
$n =3D $1;
} else {
$n =3D "";
|
|
From: <sv...@va...> - 2005-06-29 03:54:11
|
Author: njn Date: 2005-06-29 04:54:09 +0100 (Wed, 29 Jun 2005) New Revision: 4049 Log: Add alt output Added: trunk/none/tests/fdleak_cmsg.stderr.exp3 Added: trunk/none/tests/fdleak_cmsg.stderr.exp3 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/fdleak_cmsg.stderr.exp3 2005-06-29 03:46:32 UTC (rev= 4048) +++ trunk/none/tests/fdleak_cmsg.stderr.exp3 2005-06-29 03:54:09 UTC (rev= 4049) @@ -0,0 +1,53 @@ + + +FILE DESCRIPTORS: 7 open at exit. +Open AF_UNIX socket .: /tmp/sock + at 0x........: accept (in /...libc...) + by 0x........: main (fdleak_cmsg.c:174) + +Open AF_UNIX socket .: /tmp/sock + at 0x........: socket (in /...libc...) + by 0x........: main (fdleak_cmsg.c:174) + +Open file descriptor .: /tmp/data2 + at 0x........: open (in /...libc...) + by 0x........: main (fdleak_cmsg.c:174) + +Open file descriptor .: /tmp/data1 + at 0x........: open (in /...libc...) + by 0x........: main (fdleak_cmsg.c:174) + +Open file descriptor .: . + <inherited from parent> + +Open file descriptor .: . + <inherited from parent> + +Open file descriptor .: /dev/null + <inherited from parent> + + + +FILE DESCRIPTORS: 6 open at exit. +Open file descriptor .: /tmp/data2 + at 0x........: recvmsg (in /...libc...) + by 0x........: main (fdleak_cmsg.c:178) + +Open file descriptor .: /tmp/data1 + at 0x........: recvmsg (in /...libc...) + by 0x........: main (fdleak_cmsg.c:178) + +Open AF_UNIX socket .: <unknown> + at 0x........: socket (in /...libc...) + by 0x........: main (fdleak_cmsg.c:178) + +Open file descriptor .: . + <inherited from parent> + +Open file descriptor .: . + <inherited from parent> + +Open file descriptor .: /dev/null + <inherited from parent> + + |