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
(10) |
2
(22) |
3
(15) |
4
(14) |
5
(8) |
6
(10) |
7
(14) |
|
8
(9) |
9
(10) |
10
(21) |
11
(16) |
12
(17) |
13
(15) |
14
(8) |
|
15
(12) |
16
(8) |
17
(44) |
18
(24) |
19
(29) |
20
(29) |
21
(17) |
|
22
(17) |
23
(16) |
24
(18) |
25
(16) |
26
(15) |
27
(16) |
28
(11) |
|
29
(11) |
30
(10) |
31
(12) |
|
|
|
|
|
From: <js...@ac...> - 2006-01-29 10:47:40
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-01-29 05:00:01 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 10 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) |
|
From: <js...@ac...> - 2006-01-29 04:03:07
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-29 03:30:02 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 03:46:49 2006 --- new.short Sun Jan 29 04:03:48 2006 *************** *** 10,12 **** ! == 221 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) *************** *** 16,18 **** memcheck/tests/x86/scalar_supp (stderr) - none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) --- 16,17 ---- |
|
From: <js...@ac...> - 2006-01-29 03:57:01
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-29 04:40:00 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 192 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 191 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 04:48:26 2006 --- new.short Sun Jan 29 04:56:53 2006 *************** *** 8,10 **** ! == 191 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 192 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) |
|
From: Tom H. <to...@co...> - 2006-01-29 03:44:18
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-29 03:30:05 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 223 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:30:10
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-01-29 03:15:03 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 222 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:24:07
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-01-29 03:10:06 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 5 stderr failures, 2 stdout failures ================= memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 03:17:39 2006 --- new.short Sun Jan 29 03:23:50 2006 *************** *** 8,10 **** ! == 242 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) --- 8,11 ---- ! == 242 tests, 5 stderr failures, 2 stdout failures ================= ! memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:19:34
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-01-29 03:05:13 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:13:51
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-01-29 03:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2006-01-28 18:39:14
|
Author: sewardj
Date: 2006-01-28 18:39:09 +0000 (Sat, 28 Jan 2006)
New Revision: 5600
Log:
Add configure flags --enable-only64bit and --enable-only32bit with
subvert the biarch build system, something that is sometimes
convenient to do.
Modified:
trunk/configure.in
trunk/docs/xml/manual-core.xml
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-01-28 17:08:23 UTC (rev 5599)
+++ trunk/configure.in 2006-01-28 18:39:09 UTC (rev 5600)
@@ -159,10 +159,11 @@
=20
# Check if this should be built as an inner Valgrind, to be run within
# another Valgrind. Choose the load address accordingly.
-AC_CACHE_CHECK([enable use as an inner Valgrind], vg_cv_inner,
- [AC_ARG_ENABLE(inner, [ --enable-inner enables self-ho=
sting],
- [vg_cv_inner=3D$enableval],
- [vg_cv_inner=3Dno])])
+AC_CACHE_CHECK([for use as an inner Valgrind], vg_cv_inner,
+ [AC_ARG_ENABLE(inner,=20
+ [ --enable-inner enables self-hosting],
+ [vg_cv_inner=3D$enableval],
+ [vg_cv_inner=3Dno])])
if test "$vg_cv_inner" =3D yes; then
AC_DEFINE([ENABLE_INNER], 1, [configured to run as an inner Valgrind=
])
VALT_LOAD_ADDRESS=3D$valt_load_address_inner
@@ -170,6 +171,33 @@
VALT_LOAD_ADDRESS=3D$valt_load_address_normal
fi
=20
+# Sometimes it's convenient to subvert the bi-arch build system and
+# just have a single build even though the underlying platform is
+# capable of both. Hence handle --enable-only64bit and
+# --enable-only32bit. Complain if both are issued :-)
+
+# Check if a 64-bit only build has been requested
+AC_CACHE_CHECK([for a 64-bit only build], vg_cv_only64bit,
+ [AC_ARG_ENABLE(only64bit,=20
+ [ --enable-only64bit do a 64-bit only build],
+ [vg_cv_only64bit=3D$enableval],
+ [vg_cv_only64bit=3Dno])])
+
+# Check if a 32-bit only build has been requested
+AC_CACHE_CHECK([for a 32-bit only build], vg_cv_only32bit,
+ [AC_ARG_ENABLE(only32bit,=20
+ [ --enable-only32bit do a 32-bit only build],
+ [vg_cv_only32bit=3D$enableval],
+ [vg_cv_only32bit=3Dno])])
+
+# Stay sane
+if test x$vg_cv_only64bit =3D xyes -a x$vg_cv_only32bit =3D xyes; then
+ AC_MSG_ERROR(
+ [Nonsensical: both --enable-only64bit and --enable-only32bit.])
+fi
+
+
+
AC_MSG_CHECKING([for a supported OS])
AC_SUBST(VG_OS)
=20
@@ -234,8 +262,16 @@
AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
amd64-linux)
- VG_PLATFORM_PRI=3D"AMD64_LINUX"
- VG_PLATFORM_SEC=3D"X86_LINUX"
+ if test x$vg_cv_only64bit =3D xyes; then
+ VG_PLATFORM_PRI=3D"AMD64_LINUX"
+ VG_PLATFORM_SEC=3D""
+ elif test x$vg_cv_only32bit =3D xyes; then
+ VG_PLATFORM_PRI=3D"X86_LINUX"
+ VG_PLATFORM_SEC=3D""
+ else
+ VG_PLATFORM_PRI=3D"AMD64_LINUX"
+ VG_PLATFORM_SEC=3D"X86_LINUX"
+ fi
AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
ppc32-linux)
@@ -244,8 +280,16 @@
AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
ppc64-linux)
- VG_PLATFORM_PRI=3D"PPC64_LINUX"
- VG_PLATFORM_SEC=3D"PPC32_LINUX"
+ if test x$vg_cv_only64bit =3D xyes; then
+ VG_PLATFORM_PRI=3D"PPC64_LINUX"
+ VG_PLATFORM_SEC=3D""
+ elif test x$vg_cv_only32bit =3D xyes; then
+ VG_PLATFORM_PRI=3D"PPC32_LINUX"
+ VG_PLATFORM_SEC=3D""
+ else
+ VG_PLATFORM_PRI=3D"PPC64_LINUX"
+ VG_PLATFORM_SEC=3D"PPC32_LINUX"
+ fi
AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
*)
Modified: trunk/docs/xml/manual-core.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/xml/manual-core.xml 2006-01-28 17:08:23 UTC (rev 5599)
+++ trunk/docs/xml/manual-core.xml 2006-01-28 18:39:09 UTC (rev 5600)
@@ -1569,7 +1569,7 @@
with <computeroutput>make regtest</computeroutput>.
</para>
=20
-<para>There are three options (in addition to the usual
+<para>There are five options (in addition to the usual
<option>--prefix=3D</option> which affect how Valgrind is built:
<itemizedlist>
=20
@@ -1585,8 +1585,8 @@
<listitem>
<para><option>--enable-tls</option></para>
<para>TLS (Thread Local Storage) is a relatively new mechanism which
- requires compiler, linker and kernel support. Valgrind
- automatically test if TLS is supported and enable this option.
+ requires compiler, linker and kernel support. Valgrind tries to
+ automatically test if TLS is supported and if so enables this option=
.
Sometimes it cannot test for TLS, so this option allows you to
override the automatic test.</para>
</listitem>
@@ -1598,6 +1598,20 @@
the root of the source tree.
</para>
</listitem>
+
+ <listitem>
+ <para><option>--enable-only64bit</option></para>
+ <para><option>--enable-only32bit</option></para>
+ <para>On 64-bit
+ platforms (amd64-linux, ppc64-linux), Valgrind is by default built
+ in such a way that both 32-bit and 64-bit executables can be run.
+ Sometimes this cleverness is a problem for a variety of reasons.
+ These two flags allow for single-target builds in this situation.
+ If you issue both, the configure script will complain. Note they
+ are ignored on 32-bit-only platforms (x86-linux, ppc32-linux).
+ </para>
+ </listitem>
+
</itemizedlist>
</para>
=20
|
|
From: <sv...@va...> - 2006-01-28 17:08:29
|
Author: sewardj
Date: 2006-01-28 17:08:23 +0000 (Sat, 28 Jan 2006)
New Revision: 5599
Log:
Check lsw/stsw insns in 64-bit mode.
Added:
trunk/none/tests/ppc64/lsw.c
trunk/none/tests/ppc64/lsw.stderr.exp
trunk/none/tests/ppc64/lsw.stdout.exp
trunk/none/tests/ppc64/lsw.vgtest
Modified:
trunk/none/tests/ppc64/Makefile.am
Modified: trunk/none/tests/ppc64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/ppc64/Makefile.am 2006-01-27 21:52:39 UTC (rev 5598)
+++ trunk/none/tests/ppc64/Makefile.am 2006-01-28 17:08:23 UTC (rev 5599)
@@ -4,10 +4,11 @@
EXTRA_DIST =3D $(noinst_SCRIPTS) \
jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \
jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
- jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest
+ jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \
+ lsw.stderr.exp lsw.stdout.exp lsw.vgtest
=20
check_PROGRAMS =3D \
- jm-insns
+ jm-insns lsw
=20
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude \
@FLAG_M64@
Added: trunk/none/tests/ppc64/lsw.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc64/lsw.c (rev 0)
+++ trunk/none/tests/ppc64/lsw.c 2006-01-28 17:08:23 UTC (rev 5599)
@@ -0,0 +1,102 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Apparently the "b" register constraint is like "r" except that it
+ disallows the use of r0, which means it is safe to use in places
+ where the appearance of r0 would cause a problem due to it being
+ read as zero. */
+
+static void announce ( char* str )
+{
+ printf("------ %s ------\n", str);
+}
+
+int main ( void )
+{
+ int i;
+ char* a1 =3D malloc(100);
+ char* a2 =3D malloc(100);
+ strcpy(a1,"here is a stringHERE IS A STRING");
+
+ announce("lswi n =3D=3D 8 (fe special cased)");
+ asm volatile("li 5,0\n\t"
+ "lswi 3,%0, 8\n\t"=20
+ "stw 3,0(%1)\n\t"
+ "stw 4,4(%1)\n\t"
+ "stw 5,8(%1)\n\t"
+ : : "b"(a1), "b"(a2) : "r3", "r4", "r5",=20
+ "cc", "memory" );
+ printf("%s\n", a2);
+ for (i =3D 0; i < 12; i++)
+ printf("%d =3D 0x%2x\n", i, a2[i]);
+ printf("\n");
+
+
+ announce("lswi n /=3D 8");
+ asm volatile("lswi 3,%0, 9\n\t"=20
+ "stw 3,0(%1)\n\t"
+ "stw 4,4(%1)\n\t"
+ "stw 5,8(%1)\n\t"
+ : : "b"(a1), "b"(a2) : "r3", "r4", "r5",=20
+ "cc", "memory" );
+ printf("%s\n", a2);
+ for (i =3D 0; i < 12; i++)
+ printf("%d =3D 0x%2x\n", i, a2[i]);
+ printf("\n");
+
+
+ announce("lswx");
+ free(a2);
+ a2 =3D malloc(100);
+ asm volatile("li 8, 11\n\t"
+ "mtxer 8\n\t"
+ "lswx 3,%0,%2\n\t"=20
+ "stw 3,0(%1)\n\t"
+ "stw 4,4(%1)\n\t"
+ "stw 5,8(%1)\n\t"
+ : : "b"(a1), "b"(a2), "b"(16) : "r3", "r4", "r5", "r8",=20
+ "cc", "memory" );
+ printf("%s\n", a2);
+ for (i =3D 0; i < 12; i++)
+ printf("%d =3D 0x%2x\n", i, a2[i]);
+ printf("\n");
+
+
+ announce("stswi n =3D=3D 8 (fe special cased)");
+ free(a2);
+ a2 =3D calloc(100,1);
+ asm volatile("lswi 3,%0, 19\n\t"
+ "stswi 3,%1, 8\n"
+ : : "b"(a1), "b"(a2) : "r3","r4","r5","r6","r7",
+ "cc", "memory" );
+ printf("%s\n", a2);
+ printf("\n");
+
+
+ announce("stswi n /=3D 8");
+ free(a2);
+ a2 =3D calloc(100,1);
+ asm volatile("lswi 3,%0, 19\n\t"
+ "stswi 3,%1, 17\n"
+ : : "b"(a1), "b"(a2) : "r3","r4","r5","r6","r7",
+ "cc", "memory" );
+ printf("%s\n", a2);
+ printf("\n");
+
+
+ announce("stswx");
+ free(a2);
+ a2 =3D calloc(100,1);
+ asm volatile("li 8, 11\n\t"
+ "mtxer 8\n\t"
+ "lswx 3,%0,%2\n\t"=20
+ "stswx 3,%1,%2\n\t"=20
+ : : "b"(a1), "b"(a2), "b"(16) : "r3", "r4", "r5", "r8",=20
+ "cc", "memory" );
+ printf("%s\n", a2+16);
+ printf("\n");
+
+ return 0;
+}
Added: trunk/none/tests/ppc64/lsw.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc64/lsw.stderr.exp (rev 0)
+++ trunk/none/tests/ppc64/lsw.stderr.exp 2006-01-28 17:08:23 UTC (rev 55=
99)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/ppc64/lsw.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc64/lsw.stdout.exp (rev 0)
+++ trunk/none/tests/ppc64/lsw.stdout.exp 2006-01-28 17:08:23 UTC (rev 55=
99)
@@ -0,0 +1,54 @@
+------ lswi n =3D=3D 8 (fe special cased) ------
+here is=20
+0 =3D 0x68
+1 =3D 0x65
+2 =3D 0x72
+3 =3D 0x65
+4 =3D 0x20
+5 =3D 0x69
+6 =3D 0x73
+7 =3D 0x20
+8 =3D 0x 0
+9 =3D 0x 0
+10 =3D 0x 0
+11 =3D 0x 0
+
+------ lswi n /=3D 8 ------
+here is a
+0 =3D 0x68
+1 =3D 0x65
+2 =3D 0x72
+3 =3D 0x65
+4 =3D 0x20
+5 =3D 0x69
+6 =3D 0x73
+7 =3D 0x20
+8 =3D 0x61
+9 =3D 0x 0
+10 =3D 0x 0
+11 =3D 0x 0
+
+------ lswx ------
+HERE IS A S
+0 =3D 0x48
+1 =3D 0x45
+2 =3D 0x52
+3 =3D 0x45
+4 =3D 0x20
+5 =3D 0x49
+6 =3D 0x53
+7 =3D 0x20
+8 =3D 0x41
+9 =3D 0x20
+10 =3D 0x53
+11 =3D 0x 0
+
+------ stswi n =3D=3D 8 (fe special cased) ------
+here is=20
+
+------ stswi n /=3D 8 ------
+here is a stringH
+
+------ stswx ------
+HERE IS A S
+
Added: trunk/none/tests/ppc64/lsw.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/ppc64/lsw.vgtest (rev 0)
+++ trunk/none/tests/ppc64/lsw.vgtest 2006-01-28 17:08:23 UTC (rev 5599)
@@ -0,0 +1 @@
+prog: lsw
|
|
From: <sv...@va...> - 2006-01-28 17:07:27
|
Author: sewardj
Date: 2006-01-28 17:07:19 +0000 (Sat, 28 Jan 2006)
New Revision: 1558
Log:
Make lsw work in 64-bit mode.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/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-ppc/toIR.c 2006-01-27 22:05:55 UTC (rev 1557)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-28 17:07:19 UTC (rev 1558)
@@ -3955,16 +3955,26 @@
}
/* rD |=3D (8Uto32(*(EA+i))) << shift */
vassert(shift =3D=3D 0 || shift =3D=3D 8 || shift =3D=3D 16 || shi=
ft =3D=3D 24);
- putIReg( rD,=20
- mkSzWiden32(ty,=20
- binop(Iop_Or32,=20
- mkSzNarrow32(ty, getIReg(rD)),
- binop(Iop_Shl32,=20
- unop(Iop_8Uto32,=20
- loadBE(Ity_I8,=20
- binop(Iop_Add32, e_EA, mkU32(i)))),=20
- mkU8(toUChar(shift)))),
- /*Signed*/False) );=20
+ putIReg(=20
+ rD,=20
+ mkSzWiden32(
+ ty,=20
+ binop(
+ Iop_Or32,=20
+ mkSzNarrow32(ty, getIReg(rD)),
+ binop(
+ Iop_Shl32,=20
+ unop(
+ Iop_8Uto32,=20
+ loadBE(Ity_I8,=20
+ binop(mkSzOp(ty,Iop_Add8), e_EA, mkSzImm(ty,=
i)))
+ ),=20
+ mkU8(toUChar(shift))
+ )
+ ),
+ /*Signed*/False
+ )=20
+ );=20
shift -=3D 8;
}
}
@@ -4035,7 +4045,7 @@
registers to be loaded. It should. */
DIP("lswi r%u,r%u,%d\n", rD_addr, rA_addr, NumBytes);
assign( t_EA, ea_rAor0(rA_addr) );
- if (!mode64 && NumBytes =3D=3D 8) {
+ if (NumBytes =3D=3D 8 && !mode64) {
/* Special case hack */
/* rD =3D Mem[EA]; (rD+1)%32 =3D Mem[EA+4] */
putIReg( rD_addr, =20
@@ -4071,7 +4081,7 @@
case 0x2D5: // stswi (Store String Word Immediate, PPC32 p528)
DIP("stswi r%u,r%u,%d\n", rS_addr, rA_addr, NumBytes);
assign( t_EA, ea_rAor0(rA_addr) );
- if (NumBytes =3D=3D 8) {
+ if (NumBytes =3D=3D 8 && !mode64) {
/* Special case hack */
/* Mem[EA] =3D rD; Mem[EA+4] =3D (rD+1)%32 */
storeBE( mkexpr(t_EA),=20
|
|
From: <js...@ac...> - 2006-01-28 10:34:29
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-01-28 05:00:01 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 188 tests, 10 stderr failures, 2 stdout failures =================
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/mempool (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/sigaltstack (stderr)
memcheck/tests/stack_changes (stdout)
memcheck/tests/stack_changes (stderr)
memcheck/tests/xml1 (stderr)
none/tests/faultstatus (stderr)
none/tests/mremap (stderr)
none/tests/ppc32/jm-fp (stdout)
none/tests/ppc32/jm-fp (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_ppc32_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_ppc32_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_ppc32_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" -c -o libcoregrind_ppc32_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function 'vgPlain_machine_get_hwcaps':
m_machine.c:392: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:392: error: 'VexSubArchPPC32_I' undeclared (first use in this function)
m_machine.c:392: error: (Each undeclared identifier is reported only once
m_machine.c:392: error: for each function it appears in.)
m_machine.c:395: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:395: error: 'VexSubArchPPC32_FI' undeclared (first use in this function)
m_machine.c:398: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:398: error: 'VexSubArchPPC32_VFI' undeclared (first use in this function)
make[3]: *** [libcoregrind_ppc32_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/sewardj/Nightly/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 05:02:34 2006
--- new.short Sat Jan 28 05:12:34 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_ppc32_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_ppc32_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_ppc32_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" -c -o libcoregrind_ppc32_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function 'vgPlain_machine_get_hwcaps':
- m_machine.c:392: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:392: error: 'VexSubArchPPC32_I' undeclared (first use in this function)
- m_machine.c:392: error: (Each undeclared identifier is reported only once
- m_machine.c:392: error: for each function it appears in.)
- m_machine.c:395: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:395: error: 'VexSubArchPPC32_FI' undeclared (first use in this function)
- m_machine.c:398: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:398: error: 'VexSubArchPPC32_VFI' undeclared (first use in this function)
- make[3]: *** [libcoregrind_ppc32_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/home/sewardj/Nightly/valgrind'
- make: *** [all] Error 2
--- 3,22 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 188 tests, 10 stderr failures, 2 stdout failures =================
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/mempool (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/sigaltstack (stderr)
! memcheck/tests/stack_changes (stdout)
! memcheck/tests/stack_changes (stderr)
! memcheck/tests/xml1 (stderr)
! none/tests/faultstatus (stderr)
! none/tests/mremap (stderr)
! none/tests/ppc32/jm-fp (stdout)
! none/tests/ppc32/jm-fp (stderr)
|
|
From: <js...@ac...> - 2006-01-28 04:01:12
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-28 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2006-01-28 03:49:49
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-28 04:40:00 CET
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 191 tests, 6 stderr failures, 1 stdout failure =================
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/leakotron (stdout)
memcheck/tests/pointer-trace (stderr)
none/tests/faultstatus (stderr)
none/tests/fdleak_fcntl (stderr)
none/tests/mremap (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -MT libcoregrind_ppc32_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_ppc32_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -MT libcoregrind_ppc32_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" -c -o libcoregrind_ppc32_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function `vgPlain_machine_get_hwcaps':
m_machine.c:392: error: structure has no member named `subarch'
m_machine.c:392: error: `VexSubArchPPC32_I' undeclared (first use in this function)
m_machine.c:392: error: (Each undeclared identifier is reported only once
m_machine.c:392: error: for each function it appears in.)
m_machine.c:395: error: structure has no member named `subarch'
m_machine.c:395: error: `VexSubArchPPC32_FI' undeclared (first use in this function)
m_machine.c:398: error: structure has no member named `subarch'
m_machine.c:398: error: `VexSubArchPPC32_VFI' undeclared (first use in this function)
make[3]: *** [libcoregrind_ppc32_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/sewardj/Nightly/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 04:41:23 2006
--- new.short Sat Jan 28 04:49:45 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -MT libcoregrind_ppc32_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_ppc32_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/ppc32 -I../coregrind/linux -I../coregrind/ppc32-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"ppc32-linux\"" -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVG_LIBDIR="\"/home/sewardj/Nightly/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -MT libcoregrind_ppc32_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" -c -o libcoregrind_ppc32_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo" ".deps/libcoregrind_ppc32_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_ppc32_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function `vgPlain_machine_get_hwcaps':
- m_machine.c:392: error: structure has no member named `subarch'
- m_machine.c:392: error: `VexSubArchPPC32_I' undeclared (first use in this function)
- m_machine.c:392: error: (Each undeclared identifier is reported only once
- m_machine.c:392: error: for each function it appears in.)
- m_machine.c:395: error: structure has no member named `subarch'
- m_machine.c:395: error: `VexSubArchPPC32_FI' undeclared (first use in this function)
- m_machine.c:398: error: structure has no member named `subarch'
- m_machine.c:398: error: `VexSubArchPPC32_VFI' undeclared (first use in this function)
- make[3]: *** [libcoregrind_ppc32_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/home/sewardj/Nightly/valgrind'
- make: *** [all] Error 2
--- 3,17 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 191 tests, 6 stderr failures, 1 stdout failure =================
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/leakotron (stdout)
! memcheck/tests/pointer-trace (stderr)
! none/tests/faultstatus (stderr)
! none/tests/fdleak_fcntl (stderr)
! none/tests/mremap (stderr)
|
|
From: Tom H. <to...@co...> - 2006-01-28 03:38:43
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-28 03:30:06 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 223 tests, 8 stderr failures, 1 stdout failure =================
memcheck/tests/leak-tree (stderr)
memcheck/tests/mempool (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/stack_switch (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/sse1_memory (stdout)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.17086/Inst/lib/valgrind"\" -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.17086/Inst/lib/valgrind"\" -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function 'vgPlain_machine_get_hwcaps':
m_machine.c:312: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:312: error: 'VexSubArchX86_sse2' undeclared (first use in this function)
m_machine.c:312: error: (Each undeclared identifier is reported only once
m_machine.c:312: error: for each function it appears in.)
m_machine.c:319: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:319: error: 'VexSubArchX86_sse1' undeclared (first use in this function)
m_machine.c:325: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:325: error: 'VexSubArchX86_sse0' undeclared (first use in this function)
make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.17086/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.17086/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.17086/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 03:31:36 2006
--- new.short Sat Jan 28 03:38:35 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.17086/Inst/lib/valgrind"\" -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.17086/Inst/lib/valgrind"\" -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function 'vgPlain_machine_get_hwcaps':
- m_machine.c:312: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:312: error: 'VexSubArchX86_sse2' undeclared (first use in this function)
- m_machine.c:312: error: (Each undeclared identifier is reported only once
- m_machine.c:312: error: for each function it appears in.)
- m_machine.c:319: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:319: error: 'VexSubArchX86_sse1' undeclared (first use in this function)
- m_machine.c:325: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:325: error: 'VexSubArchX86_sse0' undeclared (first use in this function)
- make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.17086/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.17086/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.17086/valgrind'
- make: *** [all] Error 2
--- 3,19 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 223 tests, 8 stderr failures, 1 stdout failure =================
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/mempool (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/stack_switch (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/sse1_memory (stdout)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
|
|
From: Tom H. <th...@cy...> - 2006-01-28 03:25:29
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-01-28 03:15:03 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 222 tests, 21 stderr failures, 1 stdout failure =================
memcheck/tests/addressable (stderr)
memcheck/tests/badjump (stderr)
memcheck/tests/describe-block (stderr)
memcheck/tests/erringfds (stderr)
memcheck/tests/leak-0 (stderr)
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-regroot (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/match-overrun (stderr)
memcheck/tests/mempool (stderr)
memcheck/tests/partial_load_dflt (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/partiallydefinedeq (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/sigkill (stderr)
memcheck/tests/stack_changes (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/sse1_memory (stdout)
memcheck/tests/xml1 (stderr)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
-c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; \
else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; \
fi
m_machine.c: In function `vgPlain_machine_get_hwcaps':
m_machine.c:312: structure has no member named `subarch'
m_machine.c:312: `VexSubArchX86_sse2' undeclared (first use in this function)
m_machine.c:312: (Each undeclared identifier is reported only once
m_machine.c:312: for each function it appears in.)
m_machine.c:319: structure has no member named `subarch'
m_machine.c:319: `VexSubArchX86_sse1' undeclared (first use in this function)
m_machine.c:325: structure has no member named `subarch'
m_machine.c:325: `VexSubArchX86_sse0' undeclared (first use in this function)
make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.26127/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.26127/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.26127/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 03:17:28 2006
--- new.short Sat Jan 28 03:25:23 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; \
- else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; \
- fi
- m_machine.c: In function `vgPlain_machine_get_hwcaps':
- m_machine.c:312: structure has no member named `subarch'
- m_machine.c:312: `VexSubArchX86_sse2' undeclared (first use in this function)
- m_machine.c:312: (Each undeclared identifier is reported only once
- m_machine.c:312: for each function it appears in.)
- m_machine.c:319: structure has no member named `subarch'
- m_machine.c:319: `VexSubArchX86_sse1' undeclared (first use in this function)
- m_machine.c:325: structure has no member named `subarch'
- m_machine.c:325: `VexSubArchX86_sse0' undeclared (first use in this function)
- make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.26127/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.26127/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.26127/valgrind'
- make: *** [all] Error 2
--- 3,32 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 222 tests, 21 stderr failures, 1 stdout failure =================
! memcheck/tests/addressable (stderr)
! memcheck/tests/badjump (stderr)
! memcheck/tests/describe-block (stderr)
! memcheck/tests/erringfds (stderr)
! memcheck/tests/leak-0 (stderr)
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-regroot (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/match-overrun (stderr)
! memcheck/tests/mempool (stderr)
! memcheck/tests/partial_load_dflt (stderr)
! memcheck/tests/partial_load_ok (stderr)
! memcheck/tests/partiallydefinedeq (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/sigkill (stderr)
! memcheck/tests/stack_changes (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/sse1_memory (stdout)
! memcheck/tests/xml1 (stderr)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
|
|
From: Tom H. <th...@cy...> - 2006-01-28 03:19:47
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-01-28 03:10:03 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 242 tests, 5 stderr failures, 1 stdout failure =================
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/sse1_memory (stdout)
none/tests/amd64/faultstatus (stderr)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.14207/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.14207/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function 'vgPlain_machine_get_hwcaps':
m_machine.c:312: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:312: error: 'VexSubArchX86_sse2' undeclared (first use in this function)
m_machine.c:312: error: (Each undeclared identifier is reported only once
m_machine.c:312: error: for each function it appears in.)
m_machine.c:319: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:319: error: 'VexSubArchX86_sse1' undeclared (first use in this function)
m_machine.c:325: error: 'VexArchInfo' has no member named 'subarch'
m_machine.c:325: error: 'VexSubArchX86_sse0' undeclared (first use in this function)
make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.14207/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.14207/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.14207/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 03:12:44 2006
--- new.short Sat Jan 28 03:19:41 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.14207/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.14207/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function 'vgPlain_machine_get_hwcaps':
- m_machine.c:312: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:312: error: 'VexSubArchX86_sse2' undeclared (first use in this function)
- m_machine.c:312: error: (Each undeclared identifier is reported only once
- m_machine.c:312: error: for each function it appears in.)
- m_machine.c:319: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:319: error: 'VexSubArchX86_sse1' undeclared (first use in this function)
- m_machine.c:325: error: 'VexArchInfo' has no member named 'subarch'
- m_machine.c:325: error: 'VexSubArchX86_sse0' undeclared (first use in this function)
- make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.14207/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.14207/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.14207/valgrind'
- make: *** [all] Error 2
--- 3,16 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 242 tests, 5 stderr failures, 1 stdout failure =================
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/sse1_memory (stdout)
! none/tests/amd64/faultstatus (stderr)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
|
|
From: Tom H. <th...@cy...> - 2006-01-28 03:19:40
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-01-28 03:00:02 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 242 tests, 7 stderr failures, 2 stdout failures =================
memcheck/tests/stack_switch (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/sse1_memory (stdout)
none/tests/amd64/faultstatus (stderr)
none/tests/fdleak_fcntl (stderr)
none/tests/tls (stdout)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23443/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23443/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function `vgPlain_machine_get_hwcaps':
m_machine.c:312: error: structure has no member named `subarch'
m_machine.c:312: error: `VexSubArchX86_sse2' undeclared (first use in this function)
m_machine.c:312: error: (Each undeclared identifier is reported only once
m_machine.c:312: error: for each function it appears in.)
m_machine.c:319: error: structure has no member named `subarch'
m_machine.c:319: error: `VexSubArchX86_sse1' undeclared (first use in this function)
m_machine.c:325: error: structure has no member named `subarch'
m_machine.c:325: error: `VexSubArchX86_sse0' undeclared (first use in this function)
make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.23443/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.23443/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.23443/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 03:02:20 2006
--- new.short Sat Jan 28 03:19:34 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23443/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23443/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function `vgPlain_machine_get_hwcaps':
- m_machine.c:312: error: structure has no member named `subarch'
- m_machine.c:312: error: `VexSubArchX86_sse2' undeclared (first use in this function)
- m_machine.c:312: error: (Each undeclared identifier is reported only once
- m_machine.c:312: error: for each function it appears in.)
- m_machine.c:319: error: structure has no member named `subarch'
- m_machine.c:319: error: `VexSubArchX86_sse1' undeclared (first use in this function)
- m_machine.c:325: error: structure has no member named `subarch'
- m_machine.c:325: error: `VexSubArchX86_sse0' undeclared (first use in this function)
- make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.23443/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.23443/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.23443/valgrind'
- make: *** [all] Error 2
--- 3,19 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 242 tests, 7 stderr failures, 2 stdout failures =================
! memcheck/tests/stack_switch (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/sse1_memory (stdout)
! none/tests/amd64/faultstatus (stderr)
! none/tests/fdleak_fcntl (stderr)
! none/tests/tls (stdout)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
|
|
From: Tom H. <th...@cy...> - 2006-01-28 03:15:49
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-01-28 03:05:08 GMT
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 242 tests, 6 stderr failures, 1 stdout failure =================
memcheck/tests/stack_switch (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/sse1_memory (stdout)
none/tests/amd64/faultstatus (stderr)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.13373/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.13373/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
m_machine.c: In function `vgPlain_machine_get_hwcaps':
m_machine.c:312: error: structure has no member named `subarch'
m_machine.c:312: error: `VexSubArchX86_sse2' undeclared (first use in this function)
m_machine.c:312: error: (Each undeclared identifier is reported only once
m_machine.c:312: error: for each function it appears in.)
m_machine.c:319: error: structure has no member named `subarch'
m_machine.c:319: error: `VexSubArchX86_sse1' undeclared (first use in this function)
m_machine.c:325: error: structure has no member named `subarch'
m_machine.c:325: error: `VexSubArchX86_sse0' undeclared (first use in this function)
make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.13373/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.13373/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.13373/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 28 03:08:16 2006
--- new.short Sat Jan 28 03:15:40 2006
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.13373/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_libcsignal.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" -c -o libcoregrind_x86_linux_a-m_libcsignal.o `test -f 'm_libcsignal.c' || echo './'`m_libcsignal.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo" ".deps/libcoregrind_x86_linux_a-m_libcsignal.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_libcsignal.Tpo"; exit 1; fi
- if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/x86 -I../coregrind/linux -I../coregrind/x86-linux -I../include -I../VEX/pub -DVG_PLATFORM="\"x86-linux\"" -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.13373/Inst/lib/valgrind"\" -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -Wdeclaration-after-statement -MT libcoregrind_x86_linux_a-m_machine.o -MD -MP -MF ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" -c -o libcoregrind_x86_linux_a-m_machine.o `test -f 'm_machine.c' || echo './'`m_machine.c; \
- then mv -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo" ".deps/libcoregrind_x86_linux_a-m_machine.Po"; else rm -f ".deps/libcoregrind_x86_linux_a-m_machine.Tpo"; exit 1; fi
- m_machine.c: In function `vgPlain_machine_get_hwcaps':
- m_machine.c:312: error: structure has no member named `subarch'
- m_machine.c:312: error: `VexSubArchX86_sse2' undeclared (first use in this function)
- m_machine.c:312: error: (Each undeclared identifier is reported only once
- m_machine.c:312: error: for each function it appears in.)
- m_machine.c:319: error: structure has no member named `subarch'
- m_machine.c:319: error: `VexSubArchX86_sse1' undeclared (first use in this function)
- m_machine.c:325: error: structure has no member named `subarch'
- m_machine.c:325: error: `VexSubArchX86_sse0' undeclared (first use in this function)
- make[3]: *** [libcoregrind_x86_linux_a-m_machine.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.13373/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.13373/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.13373/valgrind'
- make: *** [all] Error 2
--- 3,17 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 242 tests, 6 stderr failures, 1 stdout failure =================
! memcheck/tests/stack_switch (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/sse1_memory (stdout)
! none/tests/amd64/faultstatus (stderr)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
|
|
From: <sv...@va...> - 2006-01-27 22:05:59
|
Author: sewardj
Date: 2006-01-27 22:05:55 +0000 (Fri, 27 Jan 2006)
New Revision: 1557
Log:
Un-break ppc64 following recent hw-capabilities hackery. (sigh)
Modified:
trunk/priv/main/vex_main.c
Modified: trunk/priv/main/vex_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/priv/main/vex_main.c 2006-01-27 21:52:19 UTC (rev 1556)
+++ trunk/priv/main/vex_main.c 2006-01-27 22:05:55 UTC (rev 1557)
@@ -398,9 +398,10 @@
offB_TILEN =3D offsetof(VexGuestPPC64State,guest_TILEN);
vassert(are_valid_hwcaps(VexArchPPC64, vta->archinfo_guest.hwca=
ps));
vassert(0 =3D=3D sizeof(VexGuestPPC64State) % 16);
- vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TISTART ) =3D=3D=
8);
- vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TILEN ) =3D=3D=
8);
- vassert(sizeof( ((VexGuestPPC64State*)0)->guest_NRADDR ) =3D=3D=
8);
+ vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TISTART ) =3D=
=3D 8);
+ vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TILEN ) =3D=
=3D 8);
+ vassert(sizeof( ((VexGuestPPC64State*)0)->guest_NRADDR ) =3D=
=3D 8);
+ vassert(sizeof( ((VexGuestPPC64State*)0)->guest_NRADDR_GPR2) =3D=
=3D 8);
break;
=20
default:
@@ -757,9 +758,9 @@
{
/* Monotonic with complications. Basically V > baseline(=3D=3DF),
but once you have F then you can have FX or GX too. */
- const UInt V =3D VEX_HWCAPS_PPC32_V;
- const UInt FX =3D VEX_HWCAPS_PPC32_FX;
- const UInt GX =3D VEX_HWCAPS_PPC32_GX;
+ const UInt V =3D VEX_HWCAPS_PPC64_V;
+ const UInt FX =3D VEX_HWCAPS_PPC64_FX;
+ const UInt GX =3D VEX_HWCAPS_PPC64_GX;
UInt c =3D hwcaps;
if (c =3D=3D 0) return "ppc64-int-flt";
if (c =3D=3D FX) return "ppc64-int-flt-FX";
@@ -782,11 +783,11 @@
static HChar* show_hwcaps ( VexArch arch, UInt hwcaps )
{
switch (arch) {
- case VexArchX86: return show_hwcaps_x86(hwcaps);
+ case VexArchX86: return show_hwcaps_x86(hwcaps);
case VexArchAMD64: return show_hwcaps_amd64(hwcaps);
case VexArchPPC32: return show_hwcaps_ppc32(hwcaps);
case VexArchPPC64: return show_hwcaps_ppc64(hwcaps);
- case VexArchARM: return show_hwcaps_arm(hwcaps);
+ case VexArchARM: return show_hwcaps_arm(hwcaps);
default: return NULL;
}
}
|
|
From: <sv...@va...> - 2006-01-27 21:52:44
|
Author: sewardj
Date: 2006-01-27 21:52:39 +0000 (Fri, 27 Jan 2006)
New Revision: 5598
Log:
Un-break ppc32 following recent hw-capabilities hackery.
Modified:
trunk/coregrind/m_machine.c
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 2006-01-27 21:23:23 UTC (rev 5597)
+++ trunk/coregrind/m_machine.c 2006-01-27 21:52:39 UTC (rev 5598)
@@ -341,7 +341,7 @@
vki_sigset_t saved_set, tmp_set;
struct vki_sigaction saved_act, tmp_act;
=20
- volatile Bool have_fp, have_vmx;
+ volatile Bool have_F, have_V, have_FX, have_GX;
=20
VG_(sigemptyset)(&tmp_set);
VG_(sigaddset)(&tmp_set, VKI_SIGILL);
@@ -391,16 +391,15 @@
if (__builtin_setjmp(env_sigill)) {
have_GX =3D False;
} else {
- __asm__ __volatile__("fsqrte 0,0");
+ __asm__ __volatile__("frsqrte 0,0");
}
=20
VG_(sigaction)(VKI_SIGILL, &saved_act, NULL);
VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
-
- if (0)
+ /*
VG_(printf)("F %d V %d FX %d GX %d\n",=20
(Int)have_F, (Int)have_V, (Int)have_FX, (Int)have_GX=
);
-
+ */
/* Make FP a prerequisite for VMX (bogusly so), and for FX and GX. =
*/
if (have_V && !have_F)
have_V =3D False;
@@ -430,7 +429,7 @@
vki_sigset_t saved_set, tmp_set;
struct vki_sigaction saved_act, tmp_act;
=20
- volatile Bool have_fp, have_vmx;
+ volatile Bool have_F, have_V, have_FX, have_GX;
=20
VG_(sigemptyset)(&tmp_set);
VG_(sigaddset)(&tmp_set, VKI_SIGILL);
@@ -480,16 +479,16 @@
if (__builtin_setjmp(env_sigill)) {
have_GX =3D False;
} else {
- __asm__ __volatile__("fsqrte 0,0");
+ __asm__ __volatile__("frsqrte 0,0");
}
=20
VG_(sigaction)(VKI_SIGILL, &saved_act, NULL);
VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
-
+ /*
if (0)
VG_(printf)("F %d V %d FX %d GX %d\n",=20
(Int)have_F, (Int)have_V, (Int)have_FX, (Int)have_GX=
);
-
+ */
/* on ppc64, if we don't even have FP, just give up. */
if (!have_F)
return False;
|
|
From: <sv...@va...> - 2006-01-27 21:52:23
|
Author: sewardj
Date: 2006-01-27 21:52:19 +0000 (Fri, 27 Jan 2006)
New Revision: 1556
Log:
Unbreak ppc32 following recent hw-capabilities hackery.
Modified:
trunk/priv/guest-ppc/toIR.c
trunk/priv/host-ppc/isel.c
Modified: trunk/priv/guest-ppc/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-ppc/toIR.c 2006-01-27 21:20:15 UTC (rev 1555)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-27 21:52:19 UTC (rev 1556)
@@ -9103,12 +9103,12 @@
vex_printf("disInstr(ppc): declined to decode an AltiVec insn.\n")=
;
goto decode_failure;
decode_noFX:
- vassert(!allow_V);
+ vassert(!allow_FX);
vex_printf("disInstr(ppc): "
"declined to decode an GeneralPurpose-Optional insn.\n"=
);
goto decode_failure;
decode_noGX:
- vassert(!allow_V);
+ vassert(!allow_GX);
vex_printf("disInstr(ppc): "
"declined to decode a Graphics-Optional insn.\n");
goto decode_failure;
@@ -9181,12 +9181,12 @@
mask32 =3D VEX_HWCAPS_PPC32_F | VEX_HWCAPS_PPC32_V
| VEX_HWCAPS_PPC32_FX | VEX_HWCAPS_PPC32_GX;
=20
- is32 =3D (hwcaps_guest & ~mask32) > 0;
+ is32 =3D (hwcaps_guest & mask32) > 0;
=20
mask64 =3D VEX_HWCAPS_PPC64_V
| VEX_HWCAPS_PPC64_FX | VEX_HWCAPS_PPC64_GX;
=20
- is64 =3D (hwcaps_guest & ~mask64) > 0;
+ is64 =3D (hwcaps_guest & mask64) > 0;
=20
if (is32 && !is64)
mode64 =3D False;
Modified: trunk/priv/host-ppc/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-ppc/isel.c 2006-01-27 21:20:15 UTC (rev 1555)
+++ trunk/priv/host-ppc/isel.c 2006-01-27 21:52:19 UTC (rev 1556)
@@ -3654,12 +3654,12 @@
mask32 =3D VEX_HWCAPS_PPC32_F | VEX_HWCAPS_PPC32_V
| VEX_HWCAPS_PPC32_FX | VEX_HWCAPS_PPC32_GX;
=20
- is32 =3D (hwcaps_host & ~mask32) > 0;
+ is32 =3D (hwcaps_host & mask32) > 0;
=20
mask64 =3D VEX_HWCAPS_PPC64_V
| VEX_HWCAPS_PPC64_FX | VEX_HWCAPS_PPC64_GX;
=20
- is64 =3D (hwcaps_host & ~mask64) > 0;
+ is64 =3D (hwcaps_host & mask64) > 0;
=20
if (is32 && !is64)
mode64 =3D False;
|
|
From: <sv...@va...> - 2006-01-27 21:23:27
|
Author: sewardj
Date: 2006-01-27 21:23:23 +0000 (Fri, 27 Jan 2006)
New Revision: 5597
Log:
Track vex r1555 (Change the way Vex represents architecture variants
into something more flexible.)
Modified:
trunk/coregrind/m_machine.c
trunk/coregrind/m_main.c
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 2006-01-27 15:11:31 UTC (rev 5596)
+++ trunk/coregrind/m_machine.c 2006-01-27 21:23:23 UTC (rev 5597)
@@ -309,28 +309,29 @@
=20
if (have_sse2 && have_sse1) {
va =3D VexArchX86;
- vai.subarch =3D VexSubArchX86_sse2;
+ vai.hwcaps =3D VEX_HWCAPS_X86_SSE1;
+ vai.hwcaps |=3D VEX_HWCAPS_X86_SSE2;
VG_(machine_x86_have_mxcsr) =3D 1;
return True;
}
=20
if (have_sse1) {
va =3D VexArchX86;
- vai.subarch =3D VexSubArchX86_sse1;
+ vai.hwcaps =3D VEX_HWCAPS_X86_SSE1;
VG_(machine_x86_have_mxcsr) =3D 1;
return True;
}
=20
- va =3D VexArchX86;
- vai.subarch =3D VexSubArchX86_sse0;
+ va =3D VexArchX86;
+ vai.hwcaps =3D 0; /*baseline - no sse at all*/
VG_(machine_x86_have_mxcsr) =3D 0;
return True;
}
=20
#elif defined(VGA_amd64)
vg_assert(VG_(has_cpuid)());
- va =3D VexArchAMD64;
- vai.subarch =3D VexSubArch_NONE;
+ va =3D VexArchAMD64;
+ vai.hwcaps =3D 0; /*baseline - SSE2 */
return True;
=20
#elif defined(VGA_ppc32)
@@ -353,53 +354,71 @@
tmp_act.sa_flags &=3D ~VKI_SA_RESETHAND;
tmp_act.sa_flags &=3D ~VKI_SA_SIGINFO;
=20
+ /* standard FP insns */
+ have_F =3D True;
tmp_act.ksa_handler =3D handler_sigill;
VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
-
- have_fp =3D True;
if (__builtin_setjmp(env_sigill)) {
- have_fp =3D False;
+ have_F =3D False;
} else {
__asm__ __volatile__("fmr 0,0");
}
=20
+ /* Altivec insns */
+ have_V =3D True;
tmp_act.ksa_handler =3D handler_sigill;
VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
-
- have_vmx =3D True;
if (__builtin_setjmp(env_sigill)) {
- have_vmx =3D False;
+ have_V =3D False;
} else {
__asm__ __volatile__("vor 0,0,0");
}
=20
+ /* General-Purpose optional (fsqrt, fsqrts) */
+ have_FX =3D True;
+ tmp_act.ksa_handler =3D handler_sigill;
+ VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
+ if (__builtin_setjmp(env_sigill)) {
+ have_FX =3D False;
+ } else {
+ __asm__ __volatile__("fsqrt 0,0");
+ }
+
+ /* Graphics optional (stfiwx, fres, frsqrte, fsel) */
+ have_GX =3D True;
+ tmp_act.ksa_handler =3D handler_sigill;
+ VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
+ if (__builtin_setjmp(env_sigill)) {
+ have_GX =3D False;
+ } else {
+ __asm__ __volatile__("fsqrte 0,0");
+ }
+
VG_(sigaction)(VKI_SIGILL, &saved_act, NULL);
VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
=20
- /* VG_(printf)("FP %d VMX %d\n", (Int)have_fp, (Int)have_vmx); */
+ if (0)
+ VG_(printf)("F %d V %d FX %d GX %d\n",=20
+ (Int)have_F, (Int)have_V, (Int)have_FX, (Int)have_GX=
);
=20
- /* We can only support 3 cases, not 4 (vmx but no fp). So make
- fp a prerequisite for vmx. */
- if (have_vmx && !have_fp)
- have_vmx =3D False;
+ /* Make FP a prerequisite for VMX (bogusly so), and for FX and GX. =
*/
+ if (have_V && !have_F)
+ have_V =3D False;
+ if (have_FX && !have_F)
+ have_FX =3D False;
+ if (have_GX && !have_F)
+ have_GX =3D False;
=20
- VG_(machine_ppc32_has_FP) =3D have_fp ? 1 : 0;
- VG_(machine_ppc32_has_VMX) =3D have_vmx ? 1 : 0;
+ VG_(machine_ppc32_has_FP) =3D have_F ? 1 : 0;
+ VG_(machine_ppc32_has_VMX) =3D have_V ? 1 : 0;
=20
va =3D VexArchPPC32;
=20
- if (have_fp =3D=3D False && have_vmx =3D=3D False) {
- vai.subarch =3D VexSubArchPPC32_I;
- }
- else if (have_fp =3D=3D True && have_vmx =3D=3D False) {
- vai.subarch =3D VexSubArchPPC32_FI;
- }
- else if (have_fp =3D=3D True && have_vmx =3D=3D True) {
- vai.subarch =3D VexSubArchPPC32_VFI;
- } else {
- /* this can't happen. */
- vg_assert2(0, "VG_(machine_get_hwcaps)(ppc32)");
- }
+ vai.hwcaps =3D 0;
+ if (have_F) vai.hwcaps |=3D VEX_HWCAPS_PPC32_F;
+ if (have_V) vai.hwcaps |=3D VEX_HWCAPS_PPC32_V;
+ if (have_FX) vai.hwcaps |=3D VEX_HWCAPS_PPC32_FX;
+ if (have_GX) vai.hwcaps |=3D VEX_HWCAPS_PPC32_GX;
=20
/* But we're not done yet: VG_(machine_ppc32_set_clszB) must be
called before we're ready to go. */
@@ -407,10 +426,11 @@
}
=20
#elif defined(VGA_ppc64)
- { vki_sigset_t saved_set, tmp_set;
+ { /* Same idiocy as for ppc32 - arse around with SIGILLs. */
+ vki_sigset_t saved_set, tmp_set;
struct vki_sigaction saved_act, tmp_act;
=20
- volatile Bool have_vmx;
+ volatile Bool have_fp, have_vmx;
=20
VG_(sigemptyset)(&tmp_set);
VG_(sigaddset)(&tmp_set, VKI_SIGILL);
@@ -423,26 +443,66 @@
tmp_act.sa_flags &=3D ~VKI_SA_RESETHAND;
tmp_act.sa_flags &=3D ~VKI_SA_SIGINFO;
=20
+ /* standard FP insns */
+ have_F =3D True;
tmp_act.ksa_handler =3D handler_sigill;
VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
+ if (__builtin_setjmp(env_sigill)) {
+ have_F =3D False;
+ } else {
+ __asm__ __volatile__("fmr 0,0");
+ }
=20
- have_vmx =3D True;
+ /* Altivec insns */
+ have_V =3D True;
+ tmp_act.ksa_handler =3D handler_sigill;
+ VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
if (__builtin_setjmp(env_sigill)) {
- have_vmx =3D False;
+ have_V =3D False;
} else {
__asm__ __volatile__("vor 0,0,0");
}
=20
+ /* General-Purpose optional (fsqrt, fsqrts) */
+ have_FX =3D True;
+ tmp_act.ksa_handler =3D handler_sigill;
+ VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
+ if (__builtin_setjmp(env_sigill)) {
+ have_FX =3D False;
+ } else {
+ __asm__ __volatile__("fsqrt 0,0");
+ }
+
+ /* Graphics optional (stfiwx, fres, frsqrte, fsel) */
+ have_GX =3D True;
+ tmp_act.ksa_handler =3D handler_sigill;
+ VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);
+ if (__builtin_setjmp(env_sigill)) {
+ have_GX =3D False;
+ } else {
+ __asm__ __volatile__("fsqrte 0,0");
+ }
+
VG_(sigaction)(VKI_SIGILL, &saved_act, NULL);
VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
=20
- /* VG_(printf)("VMX %d\n", (Int)have_vmx); */
+ if (0)
+ VG_(printf)("F %d V %d FX %d GX %d\n",=20
+ (Int)have_F, (Int)have_V, (Int)have_FX, (Int)have_GX=
);
=20
- VG_(machine_ppc64_has_VMX) =3D have_vmx ? 1 : 0;
+ /* on ppc64, if we don't even have FP, just give up. */
+ if (!have_F)
+ return False;
=20
+ VG_(machine_ppc64_has_VMX) =3D have_V ? 1 : 0;
+
va =3D VexArchPPC64;
- vai.subarch =3D have_vmx ? VexSubArchPPC64_VFI : VexSubArchPPC64_FI=
;
=20
+ vai.hwcaps =3D 0;
+ if (have_V) vai.hwcaps |=3D VEX_HWCAPS_PPC64_V;
+ if (have_FX) vai.hwcaps |=3D VEX_HWCAPS_PPC64_FX;
+ if (have_GX) vai.hwcaps |=3D VEX_HWCAPS_PPC64_GX;
+
/* But we're not done yet: VG_(machine_ppc64_set_clszB) must be
called before we're ready to go. */
return True;
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 2006-01-27 15:11:31 UTC (rev 5596)
+++ trunk/coregrind/m_main.c 2006-01-27 21:23:23 UTC (rev 5597)
@@ -1646,9 +1646,12 @@
}
=20
VG_(machine_get_VexArchInfo)( &vex_arch, &vex_archinfo );
- VG_(message)(Vg_DebugMsg, "Arch and subarch: %s, %s",
- LibVEX_ppVexArch ( vex_arch ),
- LibVEX_ppVexSubArch( vex_archinfo.subarc=
h ) );
+ VG_(message)(
+ Vg_DebugMsg,=20
+ "Arch and hwcaps: %s, %s",
+ LibVEX_ppVexArch ( vex_arch ),
+ LibVEX_ppVexHwCaps ( vex_arch, vex_archinfo.hwcaps )
+ );
VG_(message)(Vg_DebugMsg, "Valgrind library directory: %s", VG_(li=
bdir));
}
}
@@ -2080,9 +2083,11 @@
VG_(exit)(1);
}
VG_(machine_get_VexArchInfo)( &vex_arch, &vex_archinfo );
- VG_(debugLog)(1, "main", "... arch =3D %s, subarch =3D %s\n",
- LibVEX_ppVexArch ( vex_arch ),
- LibVEX_ppVexSubArch( vex_archinfo.subarch ) );
+ VG_(debugLog)(
+ 1, "main", "... arch =3D %s, hwcaps =3D %s\n",
+ LibVEX_ppVexArch ( vex_arch ),
+ LibVEX_ppVexHwCaps ( vex_arch, vex_archinfo.hwcaps )=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
|
|
From: <sv...@va...> - 2006-01-27 21:20:25
|
Author: sewardj
Date: 2006-01-27 21:20:15 +0000 (Fri, 27 Jan 2006)
New Revision: 1555
Log:
Change the way Vex represents architecture variants into something
more flexible. Prior to this change, the type VexSubArch effectively
imposed a total ordering on subarchitecture capabilities, which was
overly restrictive. This change moves to effectively using a bit-set,
allowing some features (instruction groups) to be supported or not
supported independently of each other.
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/guest-arm/toIR.c
trunk/priv/guest-ppc/toIR.c
trunk/priv/guest-x86/toIR.c
trunk/priv/host-amd64/isel.c
trunk/priv/host-ppc/isel.c
trunk/priv/host-x86/hdefs.c
trunk/priv/host-x86/hdefs.h
trunk/priv/host-x86/isel.c
trunk/priv/main/vex_main.c
trunk/pub/libvex.h
trunk/test_main.c
Modified: trunk/priv/guest-amd64/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-amd64/toIR.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/guest-amd64/toIR.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -13231,14 +13231,13 @@
HChar* fName =3D NULL;
void* fAddr =3D NULL;
if (haveF2orF3(pfx)) goto decode_failure;
- switch (archinfo->subarch) {
- case VexSubArch_NONE:
- fName =3D "amd64g_dirtyhelper_CPUID";
- fAddr =3D &amd64g_dirtyhelper_CPUID;=20
- break;
- default:
- vpanic("disInstr(amd64)(cpuid)");
+ if (archinfo->hwcaps =3D=3D 0/*baseline, =3D=3D SSE2*/) {
+ fName =3D "amd64g_dirtyhelper_CPUID";
+ fAddr =3D &amd64g_dirtyhelper_CPUID;=20
}
+ else
+ vpanic("disInstr(amd64)(cpuid)");
+
vassert(fName); vassert(fAddr);
d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
fName, fAddr, mkIRExprVec_0() );
Modified: trunk/priv/guest-arm/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-arm/toIR.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/guest-arm/toIR.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -194,7 +194,7 @@
vassert(vex_control.guest_chase_thresh >=3D 0);
vassert(vex_control.guest_chase_thresh < vex_control.guest_max_insns)=
;
=20
- vassert(archinfo_guest->subarch =3D=3D VexSubArchARM_v4);
+ vassert(archinfo_guest->hwcaps =3D=3D 0);
=20
/* Start a new, empty extent. */
vge->n_used =3D 1;
Modified: trunk/priv/guest-ppc/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-ppc/toIR.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -5610,6 +5610,7 @@
break;
=20
case 0x3D7: // stfiwx (Store Float as Int, Indexed, PPC32 p517)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
DIP("stfiwx fr%u,r%u,r%u\n", frS_addr, rA_addr, rB_addr);
assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
storeBE( mkexpr(EA),
@@ -5692,6 +5693,7 @@
break;
=20
case 0x16: // fsqrts (Floating SqRt (Single-Precision), PPC32 p428=
)
+ // NOTE: POWERPC OPTIONAL, "General-Purpose Group" (PPC32_FX)
if (frA_addr !=3D 0 || frC_addr !=3D 0) {
vex_printf("dis_fp_arith(ppc)(instr,fsqrts)\n");
return False;
@@ -5702,6 +5704,7 @@
break;
=20
case 0x18: // fres (Floating Reciprocal Estimate Single, PPC32 p42=
1)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
if (frA_addr !=3D 0 || frC_addr !=3D 0) {
vex_printf("dis_fp_arith(ppc)(instr,fres)\n");
return False;
@@ -5761,6 +5764,7 @@
break;
=20
case 0x16: // fsqrt (Floating SqRt (Double-Precision), PPC32 p427)
+ // NOTE: POWERPC OPTIONAL, "General-Purpose Group" (PPC32_FX)
if (frA_addr !=3D 0 || frC_addr !=3D 0) {
vex_printf("dis_fp_arith(ppc)(instr,fsqrt)\n");
return False;
@@ -5771,6 +5775,7 @@
break;
=20
case 0x17: { // fsel (Floating Select, PPC32 p426)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
IRTemp cc =3D newTemp(Ity_I32);
IRTemp cc_b0 =3D newTemp(Ity_I32);
=20
@@ -5805,6 +5810,7 @@
break;
=20
case 0x1A: // frsqrte (Floating Recip SqRt Est., PPC32 p424)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
if (frA_addr !=3D 0 || frC_addr !=3D 0) {
vex_printf("dis_fp_arith(ppc)(instr,frsqrte)\n");
return False;
@@ -8401,18 +8407,28 @@
DisResult dres;
UInt theInstr;
IRType ty =3D mode64 ? Ity_I64 : Ity_I32;
+ Bool allow_F =3D False;
+ Bool allow_V =3D False;
+ Bool allow_FX =3D False;
+ Bool allow_GX =3D False;
+ UInt hwcaps =3D archinfo->hwcaps;
+ Long delta;
=20
/* What insn variants are we supporting today? */
- Bool allow_FP =3D archinfo->subarch =3D=3D VexSubArchPPC32_FI ||
- archinfo->subarch =3D=3D VexSubArchPPC32_VFI ||
- archinfo->subarch =3D=3D VexSubArchPPC64_FI ||
- archinfo->subarch =3D=3D VexSubArchPPC64_VFI;
+ if (mode64) {
+ allow_F =3D True;
+ allow_V =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC64_V));
+ allow_FX =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC64_FX));
+ allow_GX =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC64_GX));
+ } else {
+ allow_F =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC32_F));
+ allow_V =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC32_V));
+ allow_FX =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC32_FX));
+ allow_GX =3D (0 !=3D (hwcaps & VEX_HWCAPS_PPC32_GX));
+ }
=20
- Bool allow_VMX =3D archinfo->subarch =3D=3D VexSubArchPPC32_VFI ||
- archinfo->subarch =3D=3D VexSubArchPPC64_VFI;
-
/* The running delta */
- Long delta =3D (Long)mkSzAddr(ty, (ULong)delta64);
+ delta =3D (Long)mkSzAddr(ty, (ULong)delta64);
=20
/* Set result defaults. */
dres.whatNext =3D Dis_Continue;
@@ -8424,7 +8440,7 @@
and have done. */
theInstr =3D getUIntBigendianly( (UChar*)(&guest_code[delta]) );
=20
-// vex_printf("insn: 0x%x\n", theInstr);
+ if (0) vex_printf("insn: 0x%x\n", theInstr);
=20
DIP("\t0x%llx: ", (ULong)guest_CIA_curr_instr);
=20
@@ -8579,14 +8595,14 @@
/* Floating Point Load Instructions */
case 0x30: case 0x31: case 0x32: // lfs, lfsu, lfd
case 0x33: // lfdu
- if (!allow_FP) goto decode_noFP;
+ if (!allow_F) goto decode_noF;
if (dis_fp_load( theInstr )) goto decode_success;
goto decode_failure;
=20
/* Floating Point Store Instructions */
case 0x34: case 0x35: case 0x36: // stfsx, stfsux, stfdx
case 0x37: // stfdux
- if (!allow_FP) goto decode_noFP;
+ if (!allow_F) goto decode_noF;
if (dis_fp_store( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8597,16 +8613,23 @@
goto decode_failure;
=20
case 0x3B:
- if (!allow_FP) goto decode_noFP;
-
+ if (!allow_F) goto decode_noF;
opc2 =3D IFIELD(theInstr, 1, 5);
switch (opc2) {
/* Floating Point Arith Instructions */
case 0x12: case 0x14: case 0x15: // fdivs, fsubs, fadds
- case 0x16: case 0x18: case 0x19: // fsqrts, fres, fmuls
+ case 0x19: // fmuls
if (dis_fp_arith(theInstr)) goto decode_success;
goto decode_failure;
- =20
+ case 0x16: // fsqrts
+ if (!allow_FX) goto decode_noFX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
+ case 0x18: // fres
+ if (!allow_GX) goto decode_noGX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
+
/* Floating Point Mult-Add Instructions */
case 0x1C: case 0x1D: case 0x1E: // fmsubs, fmadds, fnmsubs
case 0x1F: // fnmadds
@@ -8625,18 +8648,25 @@
goto decode_failure;
=20
case 0x3F:
- if (!allow_FP) goto decode_noFP;
+ if (!allow_F) goto decode_noF;
/* Instrs using opc[1:5] never overlap instrs using opc[1:10],
so we can simply fall through the first switch statement */
=20
opc2 =3D IFIELD(theInstr, 1, 5);
switch (opc2) {
/* Floating Point Arith Instructions */
- case 0x12: case 0x14: case 0x15: // fdiv, fsub, fadd
- case 0x16: case 0x17: case 0x19: // fsqrt, fsel, fmul
- case 0x1A: // frsqrte
+ case 0x12: case 0x14: case 0x15: // fdiv, fsub, fadd
+ case 0x19: // fmul
if (dis_fp_arith(theInstr)) goto decode_success;
goto decode_failure;
+ case 0x16: // fsqrt
+ if (!allow_FX) goto decode_noFX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
+ case 0x17: case 0x1A: // fsel, frsqrte
+ if (!allow_GX) goto decode_noGX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
=20
/* Floating Point Mult-Add Instructions */ =20
case 0x1C: case 0x1D: case 0x1E: // fmsub, fmadd, fnmsub
@@ -8868,23 +8898,27 @@
/* Floating Point Load Instructions */
case 0x217: case 0x237: case 0x257: // lfsx, lfsux, lfdx
case 0x277: // lfdux
- if (!allow_FP) goto decode_noFP;
+ if (!allow_F) goto decode_noF;
if (dis_fp_load( theInstr )) goto decode_success;
goto decode_failure;
=20
/* Floating Point Store Instructions */
case 0x297: case 0x2B7: case 0x2D7: // stfs, stfsu, stfd
- case 0x2F7: case 0x3D7: // stfdu, stfiwx
- if (!allow_FP) goto decode_noFP;
+ case 0x2F7: // stfdu, stfiwx
+ if (!allow_F) goto decode_noF;
if (dis_fp_store( theInstr )) goto decode_success;
goto decode_failure;
+ case 0x3D7: // stfiwx
+ if (!allow_F) goto decode_noF;
+ if (!allow_GX) goto decode_noGX;
+ if (dis_fp_store( theInstr )) goto decode_success;
+ goto decode_failure;
=20
-
/* AltiVec instructions */
=20
/* AV Cache Control - Data streams */
case 0x156: case 0x176: case 0x336: // dst, dstst, dss
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_datastream( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8892,14 +8926,14 @@
case 0x006: case 0x026: // lvsl, lvsr
case 0x007: case 0x027: case 0x047: // lvebx, lvehx, lvewx
case 0x067: case 0x167: // lvx, lvxl
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_load( theInstr )) goto decode_success;
goto decode_failure;
=20
/* AV Store */
case 0x087: case 0x0A7: case 0x0C7: // stvebx, stvehx, stvewx
case 0x0E7: case 0x1E7: // stvx, stvxl
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_store( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8918,7 +8952,7 @@
case 0x20: case 0x21: case 0x22: // vmhaddshs, vmhraddshs, vmladdu=
hm
case 0x24: case 0x25: case 0x26: // vmsumubm, vmsummbm, vmsumuhm
case 0x27: case 0x28: case 0x29: // vmsumuhs, vmsumshm, vmsumshs
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_multarith( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8926,13 +8960,13 @@
case 0x2A: // vsel
case 0x2B: // vperm
case 0x2C: // vsldoi
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_permute( theInstr )) goto decode_success;
goto decode_failure;
=20
/* AV Floating Point Mult-Add/Sub */
case 0x2E: case 0x2F: // vmaddfp, vnmsubfp
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_fp_arith( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8963,7 +8997,7 @@
case 0x308: case 0x348: // vmulesb, vmulesh
case 0x608: case 0x708: case 0x648: // vsum4ubs, vsum4sbs, vsum4sh=
s
case 0x688: case 0x788: // vsum2sws, vsumsws
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_arith( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8974,20 +9008,20 @@
case 0x304: case 0x344: case 0x384: // vsrab, vsrah, vsraw
case 0x1C4: case 0x2C4: // vsl, vsr
case 0x40C: case 0x44C: // vslo, vsro
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_shift( theInstr )) goto decode_success;
goto decode_failure;
=20
/* AV Logic */
case 0x404: case 0x444: case 0x484: // vand, vandc, vor
case 0x4C4: case 0x504: // vxor, vnor
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_logic( theInstr )) goto decode_success;
goto decode_failure;
=20
/* AV Processor Control */
case 0x604: case 0x644: // mfvscr, mtvscr
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_procctl( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -8996,7 +9030,7 @@
case 0x10A: case 0x14A: case 0x18A: // vrefp, vrsqrtefp, vexptefp
case 0x1CA: // vlogefp
case 0x40A: case 0x44A: // vmaxfp, vminfp
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_fp_arith( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -9005,7 +9039,7 @@
case 0x2CA: // vrfim
case 0x30A: case 0x34A: case 0x38A: // vcfux, vcfsx, vctuxs
case 0x3CA: // vctsxs
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_fp_convert( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -9014,7 +9048,7 @@
case 0x10C: case 0x14C: case 0x18C: // vmrglb, vmrglh, vmrglw
case 0x20C: case 0x24C: case 0x28C: // vspltb, vsplth, vspltw
case 0x30C: case 0x34C: case 0x38C: // vspltisb, vspltish, vspltis=
w
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_permute( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -9026,7 +9060,7 @@
case 0x20E: case 0x24E: case 0x28E: // vupkhsb, vupkhsh, vupklsb
case 0x2CE: // vupklsh
case 0x30E: case 0x34E: case 0x3CE: // vpkpx, vupkhpx, vupklpx
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_pack( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -9041,14 +9075,14 @@
case 0x006: case 0x046: case 0x086: // vcmpequb, vcmpequh, vcmpequ=
w
case 0x206: case 0x246: case 0x286: // vcmpgtub, vcmpgtuh, vcmpgtu=
w
case 0x306: case 0x346: case 0x386: // vcmpgtsb, vcmpgtsh, vcmpgts=
w
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_cmp( theInstr )) goto decode_success;
goto decode_failure;
=20
/* AV Floating Point Compare */
case 0x0C6: case 0x1C6: case 0x2C6: // vcmpeqfp, vcmpgefp, vcmpgtf=
p
case 0x3C6: // vcmpbfp
- if (!allow_VMX) goto decode_noVMX;
+ if (!allow_V) goto decode_noV;
if (dis_av_fp_cmp( theInstr )) goto decode_success;
goto decode_failure;
=20
@@ -9058,15 +9092,26 @@
break;
=20
default:
- decode_noFP:
- vassert(!allow_FP);
- vex_printf("disInstr(ppc): Floating Point insns disabled for this =
arch.\n");
goto decode_failure;
=20
- decode_noVMX:
- vassert(!allow_VMX);
- vex_printf("disInstr(ppc): AltiVec insns disabled for this arch.\n=
");
+ decode_noF:
+ vassert(!allow_F);
+ vex_printf("disInstr(ppc): declined to decode an FP insn.\n");
goto decode_failure;
+ decode_noV:
+ vassert(!allow_V);
+ vex_printf("disInstr(ppc): declined to decode an AltiVec insn.\n")=
;
+ goto decode_failure;
+ decode_noFX:
+ vassert(!allow_V);
+ vex_printf("disInstr(ppc): "
+ "declined to decode an GeneralPurpose-Optional insn.\n"=
);
+ goto decode_failure;
+ decode_noGX:
+ vassert(!allow_V);
+ vex_printf("disInstr(ppc): "
+ "declined to decode a Graphics-Optional insn.\n");
+ goto decode_failure;
=20
decode_failure:
/* All decode failures end up here. */
@@ -9125,23 +9170,32 @@
{
IRType ty;
DisResult dres;
- VexSubArch gsa =3D archinfo->subarch;
+ Bool is32, is64;
+ UInt mask32, mask64;
+ UInt hwcaps_guest =3D archinfo->hwcaps;
=20
+ /* global -- ick */
+ mode64 =3D False;
+
/* Figure out whether we're being ppc32 or ppc64 today. */
- switch (gsa) {
- case VexSubArchPPC32_VFI:
- case VexSubArchPPC32_FI:
- case VexSubArchPPC32_I:
- mode64 =3D False;
- break;
- case VexSubArchPPC64_VFI:
- case VexSubArchPPC64_FI:
- mode64 =3D True;
- break;
- default:
- vpanic("disInstr_PPC(): illegal subarch");
- }
+ mask32 =3D VEX_HWCAPS_PPC32_F | VEX_HWCAPS_PPC32_V
+ | VEX_HWCAPS_PPC32_FX | VEX_HWCAPS_PPC32_GX;
=20
+ is32 =3D (hwcaps_guest & ~mask32) > 0;
+
+ mask64 =3D VEX_HWCAPS_PPC64_V
+ | VEX_HWCAPS_PPC64_FX | VEX_HWCAPS_PPC64_GX;
+
+ is64 =3D (hwcaps_guest & ~mask64) > 0;
+
+ if (is32 && !is64)
+ mode64 =3D False;
+ else if (is64 && !is32)
+ mode64 =3D True;
+ else
+ vpanic("distInstr_PPC: illegal subarch");
+
+
ty =3D mode64 ? Ity_I64 : Ity_I32;
=20
/* Set globals (see top of this file) */
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 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/guest-x86/toIR.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -7253,7 +7253,7 @@
=20
/* Skip parts of the decoder which don't apply given the stated
guest subarchitecture. */
- if (archinfo->subarch =3D=3D VexSubArchX86_sse0)
+ if (archinfo->hwcaps =3D=3D 0/*baseline, no sse at all*/)
goto after_sse_decoders;
=20
/* Otherwise we must be doing sse1 or sse2, so we can at least try
@@ -8274,9 +8274,8 @@
=20
/* Skip parts of the decoder which don't apply given the stated
guest subarchitecture. */
- if (archinfo->subarch =3D=3D VexSubArchX86_sse0=20
- || archinfo->subarch =3D=3D VexSubArchX86_sse1)
- goto after_sse_decoders;
+ if (0 =3D=3D (archinfo->hwcaps & VEX_HWCAPS_X86_SSE2))
+ goto after_sse_decoders; /* no SSE2 capabilities */
=20
insn =3D (UChar*)&guest_code[delta];
=20
@@ -10459,10 +10458,12 @@
=20
/* Skip parts of the decoder which don't apply given the stated
guest subarchitecture. */
- if (archinfo->subarch =3D=3D VexSubArchX86_sse0=20
- || archinfo->subarch =3D=3D VexSubArchX86_sse1
- /* || archinfo->subarch =3D=3D VexSubArchX86_sse2 */)
- goto after_sse_decoders;
+ /* if (0 =3D=3D (archinfo->hwcaps & VEX_HWCAPS_X86_SSE3)) */
+ /* In fact this is highly bogus; we accept SSE3 insns even on a
+ SSE2-only guest since they turn into IR which can be re-emitted
+ successfully on an SSE2 host. */
+ if (0 =3D=3D (archinfo->hwcaps & VEX_HWCAPS_X86_SSE2))
+ goto after_sse_decoders; /* no SSE3 capabilities */
=20
insn =3D (UChar*)&guest_code[delta];
=20
@@ -12148,22 +12149,22 @@
IRDirty* d =3D NULL;
HChar* fName =3D NULL;
void* fAddr =3D NULL;
- switch (archinfo->subarch) {
- case VexSubArchX86_sse0:
- fName =3D "x86g_dirtyhelper_CPUID_sse0";
- fAddr =3D &x86g_dirtyhelper_CPUID_sse0;=20
- break;
- case VexSubArchX86_sse1:
- fName =3D "x86g_dirtyhelper_CPUID_sse1";
- fAddr =3D &x86g_dirtyhelper_CPUID_sse1;=20
- break;
- case VexSubArchX86_sse2:
- fName =3D "x86g_dirtyhelper_CPUID_sse2";
- fAddr =3D &x86g_dirtyhelper_CPUID_sse2;=20
- break;
- default:
- vpanic("disInstr(x86)(cpuid)");
- }
+ if (archinfo->hwcaps & VEX_HWCAPS_X86_SSE2) {
+ fName =3D "x86g_dirtyhelper_CPUID_sse2";
+ fAddr =3D &x86g_dirtyhelper_CPUID_sse2;=20
+ }=20
+ else
+ if (archinfo->hwcaps & VEX_HWCAPS_X86_SSE1) {
+ fName =3D "x86g_dirtyhelper_CPUID_sse1";
+ fAddr =3D &x86g_dirtyhelper_CPUID_sse1;=20
+ }=20
+ else
+ if (archinfo->hwcaps =3D=3D 0/*no SSE*/) {
+ fName =3D "x86g_dirtyhelper_CPUID_sse0";
+ fAddr =3D &x86g_dirtyhelper_CPUID_sse0;=20
+ } else
+ vpanic("disInstr(x86)(cpuid)");
+
vassert(fName); vassert(fAddr);
d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
fName, fAddr, mkIRExprVec_0() );
Modified: trunk/priv/host-amd64/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-amd64/isel.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/host-amd64/isel.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -145,7 +145,8 @@
=20
Int vreg_ctr;
=20
- VexSubArch subarch;
+ /* Currently (27 Jan 06) unused */
+ UInt hwcaps;
}
ISelEnv;
=20
@@ -3494,7 +3495,7 @@
=20
vec_fail:
vex_printf("iselVecExpr (amd64, subarch =3D %s): can't reduce\n",
- LibVEX_ppVexSubArch(env->subarch));
+ LibVEX_ppVexHwCaps(VexArchAMD64, env->hwcaps));
ppIRExpr(e);
vpanic("iselVecExpr_wrk");
}
@@ -3784,13 +3785,13 @@
=20
HInstrArray* iselBB_AMD64 ( IRBB* bb, VexArchInfo* archinfo_host )
{
- Int i, j;
- HReg hreg, hregHI;
- ISelEnv* env;
- VexSubArch subarch_host =3D archinfo_host->subarch;
+ Int i, j;
+ HReg hreg, hregHI;
+ ISelEnv* env;
+ UInt hwcaps_host =3D archinfo_host->hwcaps;
=20
/* sanity ... */
- vassert(subarch_host =3D=3D VexSubArch_NONE);
+ vassert(0 =3D=3D (hwcaps_host & ~(VEX_HWCAPS_AMD64_SSE3)));
=20
/* Make up an initial environment to use. */
env =3D LibVEX_Alloc(sizeof(ISelEnv));
@@ -3809,7 +3810,7 @@
env->vregmapHI =3D LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
=20
/* and finally ... */
- env->subarch =3D subarch_host;
+ env->hwcaps =3D hwcaps_host;
=20
/* For each IR temporary, allocate a suitably-kinded virtual
register. */
Modified: trunk/priv/host-ppc/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-ppc/isel.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/host-ppc/isel.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -206,7 +206,8 @@
=20
Int vreg_ctr;
=20
- VexSubArch subarch;
+ /* 27 Jan 06: Not currently used, but should be */
+ UInt hwcaps;
=20
Bool mode64;
}
@@ -3350,7 +3351,8 @@
} /* if (e->tag =3D=3D Iex_Binop) */
=20
vex_printf("iselVecExpr(ppc) (subarch =3D %s): can't reduce\n",
- LibVEX_ppVexSubArch(env->subarch));
+ LibVEX_ppVexHwCaps(mode64 ? VexArchPPC64 : VexArchPPC32,
+ env->hwcaps));
ppIRExpr(e);
vpanic("iselVecExpr_wrk(ppc)");
}
@@ -3640,26 +3642,31 @@
=20
HInstrArray* iselBB_PPC ( IRBB* bb, VexArchInfo* archinfo_host )
{
- Int i, j;
- HReg hreg, hregHI;
- ISelEnv* env;
- VexSubArch subarch_host =3D archinfo_host->subarch;
- Bool mode64;
+ Int i, j;
+ HReg hreg, hregHI;
+ ISelEnv* env;
+ UInt hwcaps_host =3D archinfo_host->hwcaps;
+ Bool mode64 =3D False;
+ Bool is32, is64;
+ UInt mask32, mask64;
=20
/* Figure out whether we're being ppc32 or ppc64 today. */
- switch (subarch_host) {
- case VexSubArchPPC32_VFI:
- case VexSubArchPPC32_FI:
- case VexSubArchPPC32_I:
+ mask32 =3D VEX_HWCAPS_PPC32_F | VEX_HWCAPS_PPC32_V
+ | VEX_HWCAPS_PPC32_FX | VEX_HWCAPS_PPC32_GX;
+
+ is32 =3D (hwcaps_host & ~mask32) > 0;
+
+ mask64 =3D VEX_HWCAPS_PPC64_V
+ | VEX_HWCAPS_PPC64_FX | VEX_HWCAPS_PPC64_GX;
+
+ is64 =3D (hwcaps_host & ~mask64) > 0;
+
+ if (is32 && !is64)
mode64 =3D False;
- break;
- case VexSubArchPPC64_VFI:
- case VexSubArchPPC64_FI:
+ else if (is64 && !is32)
mode64 =3D True;
- break;
- default:
+ else
vpanic("iselBB_PPC: illegal subarch");
- }
=20
/* Make up an initial environment to use. */
env =3D LibVEX_Alloc(sizeof(ISelEnv));
@@ -3681,7 +3688,7 @@
env->vregmapHI =3D LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
=20
/* and finally ... */
- env->subarch =3D subarch_host;
+ env->hwcaps =3D hwcaps_host;
=20
/* For each IR temporary, allocate a suitably-kinded virtual
register. */
Modified: trunk/priv/host-x86/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-x86/hdefs.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/host-x86/hdefs.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -703,14 +703,13 @@
i->Xin.Bsfr32.dst =3D dst;
return i;
}
-X86Instr* X86Instr_MFence ( VexSubArch subarch )
+X86Instr* X86Instr_MFence ( UInt hwcaps )
{
- X86Instr* i =3D LibVEX_Alloc(sizeof(X86Instr));
- i->tag =3D Xin_MFence;
- i->Xin.MFence.subarch =3D subarch;
- vassert(subarch =3D=3D VexSubArchX86_sse0
- || subarch =3D=3D VexSubArchX86_sse1
- || subarch =3D=3D VexSubArchX86_sse2);
+ X86Instr* i =3D LibVEX_Alloc(sizeof(X86Instr));
+ i->tag =3D Xin_MFence;
+ i->Xin.MFence.hwcaps =3D hwcaps;
+ vassert(0 =3D=3D (hwcaps & ~(VEX_HWCAPS_X86_SSE1|VEX_HWCAPS_X86_SSE2
+ |VEX_HWCAPS_X86_SSE3)));
return i;
}
=20
@@ -988,7 +987,7 @@
return;
case Xin_MFence:
vex_printf("mfence(%s)",
- LibVEX_ppVexSubArch(i->Xin.MFence.subarch));
+ LibVEX_ppVexHwCaps(VexArchX86,i->Xin.MFence.hwcaps))=
;
return;
case Xin_FpUnary:
vex_printf("g%sD ", showX86FpOp(i->Xin.FpUnary.op));
@@ -2340,26 +2339,28 @@
case Xin_MFence:
/* see comment in hdefs.h re this insn */
if (0) vex_printf("EMIT FENCE\n");
- switch (i->Xin.MFence.subarch) {
- case VexSubArchX86_sse0:
- /* lock addl $0,0(%esp) */
- *p++ =3D 0xF0; *p++ =3D 0x83; *p++ =3D 0x44;=20
- *p++ =3D 0x24; *p++ =3D 0x00; *p++ =3D 0x00;
- goto done;
- case VexSubArchX86_sse1:
- /* sfence */
- *p++ =3D 0x0F; *p++ =3D 0xAE; *p++ =3D 0xF8;
- /* lock addl $0,0(%esp) */
- *p++ =3D 0xF0; *p++ =3D 0x83; *p++ =3D 0x44;=20
- *p++ =3D 0x24; *p++ =3D 0x00; *p++ =3D 0x00;
- goto done;
- case VexSubArchX86_sse2:
- /* mfence */
- *p++ =3D 0x0F; *p++ =3D 0xAE; *p++ =3D 0xF0;
- goto done;
- default:=20
- vpanic("emit_X86Instr:mfence:subarch");
+ if (i->Xin.MFence.hwcaps & (VEX_HWCAPS_X86_SSE3
+ |VEX_HWCAPS_X86_SSE2)) {
+ /* mfence */
+ *p++ =3D 0x0F; *p++ =3D 0xAE; *p++ =3D 0xF0;
+ goto done;
}
+ if (i->Xin.MFence.hwcaps & VEX_HWCAPS_X86_SSE1) {
+ /* sfence */
+ *p++ =3D 0x0F; *p++ =3D 0xAE; *p++ =3D 0xF8;
+ /* lock addl $0,0(%esp) */
+ *p++ =3D 0xF0; *p++ =3D 0x83; *p++ =3D 0x44;=20
+ *p++ =3D 0x24; *p++ =3D 0x00; *p++ =3D 0x00;
+ goto done;
+ }
+ if (i->Xin.MFence.hwcaps =3D=3D 0/*baseline, no SSE*/) {
+ /* lock addl $0,0(%esp) */
+ *p++ =3D 0xF0; *p++ =3D 0x83; *p++ =3D 0x44;=20
+ *p++ =3D 0x24; *p++ =3D 0x00; *p++ =3D 0x00;
+ goto done;
+ }
+ vpanic("emit_X86Instr:mfence:hwcaps");
+ /*NOTREACHED*/
break;
=20
case Xin_Store:
Modified: trunk/priv/host-x86/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-x86/hdefs.h 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/host-x86/hdefs.h 2006-01-27 21:20:15 UTC (rev 1555)
@@ -491,10 +491,10 @@
much as possible before continuing. On SSE2 we emit a
real "mfence", on SSE1 "sfence ; lock addl $0,0(%esp)" and
on SSE0 "lock addl $0,0(%esp)". This insn therefore
- carries the subarch so the assembler knows what to
+ carries the host's hwcaps so the assembler knows what to
emit. */
struct {
- VexSubArch subarch;
+ UInt hwcaps;
} MFence;
=20
/* X86 Floating point (fake 3-operand, "flat reg file" insns) *=
/
@@ -629,7 +629,7 @@
extern X86Instr* X86Instr_Store ( UChar sz, HReg src, X86AMode* dst =
);
extern X86Instr* X86Instr_Set32 ( X86CondCode cond, HReg dst );
extern X86Instr* X86Instr_Bsfr32 ( Bool isFwds, HReg src, HReg dst );
-extern X86Instr* X86Instr_MFence ( VexSubArch );
+extern X86Instr* X86Instr_MFence ( UInt hwcaps );
=20
extern X86Instr* X86Instr_FpUnary ( X86FpOp op, HReg src, HReg dst );
extern X86Instr* X86Instr_FpBinary ( X86FpOp op, HReg srcL, HReg srcR, =
HReg dst );
Modified: trunk/priv/host-x86/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-x86/isel.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/host-x86/isel.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -158,7 +158,7 @@
=20
Int vreg_ctr;
=20
- VexSubArch subarch;
+ UInt hwcaps;
}
ISelEnv;
=20
@@ -2773,20 +2773,18 @@
static HReg iselVecExpr_wrk ( ISelEnv* env, IRExpr* e )
{
=20
-# define REQUIRE_SSE1 \
- do { if (env->subarch =3D=3D VexSubArchX86_sse0) \
- goto vec_fail; \
+# define REQUIRE_SSE1 \
+ do { if (env->hwcaps =3D=3D 0/*baseline, no sse*/) \
+ goto vec_fail; \
} while (0)
=20
-# define REQUIRE_SSE2 \
- do { if (env->subarch =3D=3D VexSubArchX86_sse0 \
- || env->subarch =3D=3D VexSubArchX86_sse1) \
- goto vec_fail; \
+# define REQUIRE_SSE2 \
+ do { if (0 =3D=3D (env->hwcaps & VEX_HWCAPS_X86_SSE2)) \
+ goto vec_fail; \
} while (0)
=20
-# define SSE2_OR_ABOVE \
- (env->subarch !=3D VexSubArchX86_sse0 \
- && env->subarch !=3D VexSubArchX86_sse1)
+# define SSE2_OR_ABOVE \
+ (env->hwcaps & VEX_HWCAPS_X86_SSE2)
=20
MatchInfo mi;
Bool arg1isEReg =3D False;
@@ -3271,8 +3269,8 @@
}
=20
vec_fail:
- vex_printf("iselVecExpr (subarch =3D %s): can't reduce\n",
- LibVEX_ppVexSubArch(env->subarch));
+ vex_printf("iselVecExpr (hwcaps =3D %s): can't reduce\n",
+ LibVEX_ppVexHwCaps(VexArchX86,env->hwcaps));
ppIRExpr(e);
vpanic("iselVecExpr_wrk");
=20
@@ -3522,7 +3520,7 @@
=20
/* --------- MEM FENCE --------- */
case Ist_MFence:
- addInstr(env, X86Instr_MFence(env->subarch));
+ addInstr(env, X86Instr_MFence(env->hwcaps));
return;
=20
/* --------- INSTR MARK --------- */
@@ -3582,15 +3580,15 @@
=20
HInstrArray* iselBB_X86 ( IRBB* bb, VexArchInfo* archinfo_host )
{
- Int i, j;
- HReg hreg, hregHI;
- ISelEnv* env;
- VexSubArch subarch_host =3D archinfo_host->subarch;
+ Int i, j;
+ HReg hreg, hregHI;
+ ISelEnv* env;
+ UInt hwcaps_host =3D archinfo_host->hwcaps;
=20
/* sanity ... */
- vassert(subarch_host =3D=3D VexSubArchX86_sse0
- || subarch_host =3D=3D VexSubArchX86_sse1
- || subarch_host =3D=3D VexSubArchX86_sse2);
+ vassert(0 =3D=3D (hwcaps_host & ~(VEX_HWCAPS_X86_SSE1
+ |VEX_HWCAPS_X86_SSE2
+ |VEX_HWCAPS_X86_SSE3)));
=20
/* Make up an initial environment to use. */
env =3D LibVEX_Alloc(sizeof(ISelEnv));
@@ -3609,7 +3607,7 @@
env->vregmapHI =3D LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
=20
/* and finally ... */
- env->subarch =3D subarch_host;
+ env->hwcaps =3D hwcaps_host;
=20
/* For each IR temporary, allocate a suitably-kinded virtual
register. */
Modified: trunk/priv/main/vex_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/priv/main/vex_main.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/priv/main/vex_main.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -70,6 +70,12 @@
=20
/* This file contains the top level interface to the library. */
=20
+/* --------- fwds ... --------- */
+
+static Bool are_valid_hwcaps ( VexArch arch, UInt hwcaps );
+static HChar* show_hwcaps ( VexArch arch, UInt hwcaps );
+
+
/* --------- Initialise the library. --------- */
=20
/* Exported to library client. */
@@ -253,9 +259,7 @@
emit =3D (Int(*)(UChar*,Int,HInstr*,Bool,void*)) emit_X8=
6Instr;
host_is_bigendian =3D False;
host_word_type =3D Ity_I32;
- vassert(vta->archinfo_host.subarch =3D=3D VexSubArchX86_sse0
- || vta->archinfo_host.subarch =3D=3D VexSubArchX86_sse1
- || vta->archinfo_host.subarch =3D=3D VexSubArchX86_sse2=
);
+ vassert(are_valid_hwcaps(VexArchX86, vta->archinfo_host.hwcaps)=
);
vassert(vta->dispatch !=3D NULL); /* jump-to-dispatcher scheme =
*/
break;
=20
@@ -274,7 +278,7 @@
emit =3D (Int(*)(UChar*,Int,HInstr*,Bool,void*)) emit_AM=
D64Instr;
host_is_bigendian =3D False;
host_word_type =3D Ity_I64;
- vassert(vta->archinfo_host.subarch =3D=3D VexSubArch_NONE);
+ vassert(are_valid_hwcaps(VexArchAMD64, vta->archinfo_host.hwcap=
s));
vassert(vta->dispatch !=3D NULL); /* jump-to-dispatcher scheme =
*/
break;
=20
@@ -293,9 +297,7 @@
emit =3D (Int(*)(UChar*,Int,HInstr*,Bool,void*)) emit_PP=
CInstr;
host_is_bigendian =3D True;
host_word_type =3D Ity_I32;
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_I
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_F=
I
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_V=
FI);
+ vassert(are_valid_hwcaps(VexArchPPC32, vta->archinfo_host.hwcap=
s));
vassert(vta->dispatch =3D=3D NULL); /* return-to-dispatcher sch=
eme */
break;
=20
@@ -314,8 +316,7 @@
emit =3D (Int(*)(UChar*,Int,HInstr*,Bool,void*)) emit_PP=
CInstr;
host_is_bigendian =3D True;
host_word_type =3D Ity_I64;
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchPPC64_FI
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC64_V=
FI);
+ vassert(are_valid_hwcaps(VexArchPPC64, vta->archinfo_host.hwcap=
s));
vassert(vta->dispatch =3D=3D NULL); /* return-to-dispatcher sch=
eme */
break;
=20
@@ -335,9 +336,7 @@
guest_layout =3D &x86guest_layout;
offB_TISTART =3D offsetof(VexGuestX86State,guest_TISTART);
offB_TILEN =3D offsetof(VexGuestX86State,guest_TILEN);
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchX86_sse0
- || vta->archinfo_guest.subarch =3D=3D VexSubArchX86_sse=
1
- || vta->archinfo_guest.subarch =3D=3D VexSubArchX86_sse=
2);
+ vassert(are_valid_hwcaps(VexArchX86, vta->archinfo_guest.hwcaps=
));
vassert(0 =3D=3D sizeof(VexGuestX86State) % 8);
vassert(sizeof( ((VexGuestX86State*)0)->guest_TISTART) =3D=3D 4=
);
vassert(sizeof( ((VexGuestX86State*)0)->guest_TILEN ) =3D=3D 4=
);
@@ -353,7 +352,7 @@
guest_layout =3D &amd64guest_layout;
offB_TISTART =3D offsetof(VexGuestAMD64State,guest_TISTART)=
;
offB_TILEN =3D offsetof(VexGuestAMD64State,guest_TILEN);
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArch_NONE);
+ vassert(are_valid_hwcaps(VexArchAMD64, vta->archinfo_guest.hwca=
ps));
vassert(0 =3D=3D sizeof(VexGuestAMD64State) % 8);
vassert(sizeof( ((VexGuestAMD64State*)0)->guest_TISTART ) =3D=3D=
8);
vassert(sizeof( ((VexGuestAMD64State*)0)->guest_TILEN ) =3D=3D=
8);
@@ -369,7 +368,7 @@
guest_layout =3D &armGuest_layout;
offB_TISTART =3D 0; /* hack ... arm has bitrot */
offB_TILEN =3D 0; /* hack ... arm has bitrot */
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchARM_v4);
+ vassert(are_valid_hwcaps(VexArchARM, vta->archinfo_guest.hwcaps=
));
break;
=20
case VexArchPPC32:
@@ -381,9 +380,7 @@
guest_layout =3D &ppc32Guest_layout;
offB_TISTART =3D offsetof(VexGuestPPC32State,guest_TISTART)=
;
offB_TILEN =3D offsetof(VexGuestPPC32State,guest_TILEN);
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_I
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_F=
I
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC32_V=
FI);
+ vassert(are_valid_hwcaps(VexArchPPC32, vta->archinfo_guest.hwca=
ps));
vassert(0 =3D=3D sizeof(VexGuestPPC32State) % 8);
vassert(sizeof( ((VexGuestPPC32State*)0)->guest_TISTART ) =3D=3D=
4);
vassert(sizeof( ((VexGuestPPC32State*)0)->guest_TILEN ) =3D=3D=
4);
@@ -399,8 +396,7 @@
guest_layout =3D &ppc64Guest_layout;
offB_TISTART =3D offsetof(VexGuestPPC64State,guest_TISTART)=
;
offB_TILEN =3D offsetof(VexGuestPPC64State,guest_TILEN);
- vassert(vta->archinfo_guest.subarch =3D=3D VexSubArchPPC64_FI
- || vta->archinfo_guest.subarch =3D=3D VexSubArchPPC64_V=
FI);
+ vassert(are_valid_hwcaps(VexArchPPC64, vta->archinfo_guest.hwca=
ps));
vassert(0 =3D=3D sizeof(VexGuestPPC64State) % 16);
vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TISTART ) =3D=3D=
8);
vassert(sizeof( ((VexGuestPPC64State*)0)->guest_TILEN ) =3D=3D=
8);
@@ -416,7 +412,7 @@
/* doesn't necessarily have to be true, but if it isn't it means
we are simulating one flavour of an architecture a different
flavour of the same architecture, which is pretty strange. */
- vassert(vta->archinfo_guest.subarch =3D=3D vta->archinfo_host.suba=
rch);
+ vassert(vta->archinfo_guest.hwcaps =3D=3D vta->archinfo_host.hwcap=
s);
}
=20
vexAllocSanityCheck();
@@ -675,7 +671,7 @@
}
}
=20
-/* --------- Arch/Subarch stuff. --------- */
+/* ------------------ Arch/HwCaps stuff. ------------------ */
=20
const HChar* LibVEX_ppVexArch ( VexArch arch )
{
@@ -690,32 +686,117 @@
}
}
=20
-const HChar* LibVEX_ppVexSubArch ( VexSubArch subarch )
+const HChar* LibVEX_ppVexHwCaps ( VexArch arch, UInt hwcaps )
{
- switch (subarch) {
- case VexSubArch_INVALID: return "INVALID";
- case VexSubArch_NONE: return "NONE";
- case VexSubArchX86_sse0: return "x86-sse0";
- case VexSubArchX86_sse1: return "x86-sse1";
- case VexSubArchX86_sse2: return "x86-sse2";
- case VexSubArchARM_v4: return "arm-v4";
- case VexSubArchPPC32_I: return "ppc32-int-only";
- case VexSubArchPPC32_FI: return "ppc32-int-and-fp";
- case VexSubArchPPC32_VFI: return "ppc32-int-fp-and-AV";
- case VexSubArchPPC64_FI: return "ppc64-int-and-fp";
- case VexSubArchPPC64_VFI: return "ppc64-int-fp-and-AV";
- default: return "VexSubArch???";
- }
+ HChar* str =3D show_hwcaps(arch,hwcaps);
+ return str ? str : "INVALID";
}
=20
+
+
/* Write default settings info *vai. */
void LibVEX_default_VexArchInfo ( /*OUT*/VexArchInfo* vai )
{
- vai->subarch =3D VexSubArch_INVALID;
+ vai->hwcaps =3D 0;
vai->ppc_cache_line_szB =3D 0;
}
=20
=20
+/* Return a string showing the hwcaps in a nice way. The string will
+ be NULL for invalid combinations of flags, so these functions also
+ serve as a way to validate hwcaps values. */
+
+static HChar* show_hwcaps_x86 ( UInt hwcaps )=20
+{
+ /* Monotonic, SSE3 > SSE2 > SSE1 > baseline. */
+ if (hwcaps =3D=3D 0)
+ return "x86-sse0";
+ if (hwcaps =3D=3D VEX_HWCAPS_X86_SSE1)
+ return "x86-sse1";
+ if (hwcaps =3D=3D (VEX_HWCAPS_X86_SSE1 | VEX_HWCAPS_X86_SSE2))
+ return "x86-sse1-sse2";
+ if (hwcaps =3D=3D (VEX_HWCAPS_X86_SSE1=20
+ | VEX_HWCAPS_X86_SSE2 | VEX_HWCAPS_X86_SSE3))
+ return "x86-sse1-sse2-sse3";
+
+ return False;
+}
+
+static HChar* show_hwcaps_amd64 ( UInt hwcaps )
+{
+ /* Monotonic, SSE3 > baseline. */
+ if (hwcaps =3D=3D 0)
+ return "amd64-sse2";
+ if (hwcaps =3D=3D VEX_HWCAPS_AMD64_SSE3)
+ return "amd64-sse3";
+ return False;
+}
+
+static HChar* show_hwcaps_ppc32 ( UInt hwcaps )
+{
+ /* Monotonic with complications. Basically V > F > baseline,
+ but once you have F then you can have FX or GX too. */
+ const UInt F =3D VEX_HWCAPS_PPC32_F;
+ const UInt V =3D VEX_HWCAPS_PPC32_V;
+ const UInt FX =3D VEX_HWCAPS_PPC32_FX;
+ const UInt GX =3D VEX_HWCAPS_PPC32_GX;
+ UInt c =3D hwcaps;
+ if (c =3D=3D 0) return "ppc32-int";
+ if (c =3D=3D F) return "ppc32-int-flt";
+ if (c =3D=3D (F|FX)) return "ppc32-int-flt-FX";
+ if (c =3D=3D (F|GX)) return "ppc32-int-flt-GX";
+ if (c =3D=3D (F|FX|GX)) return "ppc32-int-flt-FX-GX";
+ if (c =3D=3D (F|V)) return "ppc32-int-flt-vmx";
+ if (c =3D=3D (F|V|FX)) return "ppc32-int-flt-vmx-FX";
+ if (c =3D=3D (F|V|GX)) return "ppc32-int-flt-vmx-GX";
+ if (c =3D=3D (F|V|FX|GX)) return "ppc32-int-flt-vmx-FX-GX";
+ return NULL;
+}
+
+static HChar* show_hwcaps_ppc64 ( UInt hwcaps )
+{
+ /* Monotonic with complications. Basically V > baseline(=3D=3DF),
+ but once you have F then you can have FX or GX too. */
+ const UInt V =3D VEX_HWCAPS_PPC32_V;
+ const UInt FX =3D VEX_HWCAPS_PPC32_FX;
+ const UInt GX =3D VEX_HWCAPS_PPC32_GX;
+ UInt c =3D hwcaps;
+ if (c =3D=3D 0) return "ppc64-int-flt";
+ if (c =3D=3D FX) return "ppc64-int-flt-FX";
+ if (c =3D=3D GX) return "ppc64-int-flt-GX";
+ if (c =3D=3D (FX|GX)) return "ppc64-int-flt-FX-GX";
+ if (c =3D=3D V) return "ppc64-int-flt-vmx";
+ if (c =3D=3D (V|FX)) return "ppc64-int-flt-vmx-FX";
+ if (c =3D=3D (V|GX)) return "ppc64-int-flt-vmx-GX";
+ if (c =3D=3D (V|FX|GX)) return "ppc64-int-flt-vmx-FX-GX";
+ return NULL;
+}
+
+static HChar* show_hwcaps_arm ( UInt hwcaps )
+{
+ if (hwcaps =3D=3D 0) return "arm-baseline";
+ return NULL;
+}
+
+/* ---- */
+static HChar* show_hwcaps ( VexArch arch, UInt hwcaps )
+{
+ switch (arch) {
+ case VexArchX86: return show_hwcaps_x86(hwcaps);
+ case VexArchAMD64: return show_hwcaps_amd64(hwcaps);
+ case VexArchPPC32: return show_hwcaps_ppc32(hwcaps);
+ case VexArchPPC64: return show_hwcaps_ppc64(hwcaps);
+ case VexArchARM: return show_hwcaps_arm(hwcaps);
+ default: return NULL;
+ }
+}
+
+static Bool are_valid_hwcaps ( VexArch arch, UInt hwcaps )
+{
+ return show_hwcaps(arch,hwcaps) !=3D NULL;
+}
+
+
/*---------------------------------------------------------------*/
/*--- end main/vex_main.c ---*/
/*---------------------------------------------------------------*/
Modified: trunk/pub/libvex.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/pub/libvex.h 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/pub/libvex.h 2006-01-27 21:20:15 UTC (rev 1555)
@@ -71,26 +71,42 @@
}
VexArch;
=20
-typedef
- enum {
- VexSubArch_INVALID,
- VexSubArch_NONE, /* Arch has no variants */
- VexSubArchX86_sse0, /* no SSE state; or SSE state but no insns=
*/
- VexSubArchX86_sse1, /* SSE1 support (Pentium III) */
- VexSubArchX86_sse2, /* SSE2 support (Pentium 4) */
- VexSubArchARM_v4, /* ARM version 4 */
- VexSubArchPPC32_I, /* 32-bit PowerPC, no FP, no Altivec */
- VexSubArchPPC32_FI, /* 32-bit PowerPC, with FP but no Altivec =
*/
- VexSubArchPPC32_VFI, /* 32-bit PowerPC, with FP and Altivec */
- VexSubArchPPC64_FI, /* 64-bit PowerPC, with FP but no Altivec =
*/
- VexSubArchPPC64_VFI /* 64-bit PowerPC, with FP and Altivec */
- }
- VexSubArch;
=20
+/* For a given architecture, these specify extra capabilities beyond
+ the minimum supported (baseline) capabilities. They may be OR'd
+ together, although some combinations don't make sense. (eg, SSE2
+ but not SSE1). LibVEX_Translate will check for nonsensical
+ combinations. */
+
+/* x86: baseline capability is Pentium-1 (FPU, MMX, but no SSE) */
+#define VEX_HWCAPS_X86_SSE1 (1<<1) /* SSE1 support (Pentium III) */
+#define VEX_HWCAPS_X86_SSE2 (1<<2) /* SSE2 support (Pentium 4) */
+#define VEX_HWCAPS_X86_SSE3 (1<<3) /* SSE3 support (>=3D Prescott) */
+
+/* amd64: baseline capability is SSE2 */
+#define VEX_HWCAPS_AMD64_SSE3 (1<<4) /* SSE3 support */
+
+/* ppc32: baseline capability is integer only */
+#define VEX_HWCAPS_PPC32_F (1<<5) /* basic (non-optional) FP */
+#define VEX_HWCAPS_PPC32_V (1<<6) /* Altivec (VMX) */
+#define VEX_HWCAPS_PPC32_FX (1<<7) /* FP extns (fsqrt, fsqrts) */
+#define VEX_HWCAPS_PPC32_GX (1<<8) /* Graphics extns
+ (fres,frsqrte,fsel,stfiwx) */
+
+/* ppc64: baseline capability is integer and basic FP insns */
+#define VEX_HWCAPS_PPC64_V (1<<9) /* Altivec (VMX) */
+#define VEX_HWCAPS_PPC64_FX (1<<10) /* FP extns (fsqrt, fsqrts) */
+#define VEX_HWCAPS_PPC64_GX (1<<11) /* Graphics extns
+ (fres,frsqrte,fsel,stfiwx) */
+
+/* arm: baseline capability is ARMv4 */
+/* No extra capabilities */
+
+
/* These return statically allocated strings. */
=20
extern const HChar* LibVEX_ppVexArch ( VexArch );
-extern const HChar* LibVEX_ppVexSubArch ( VexSubArch );
+extern const HChar* LibVEX_ppVexHwCaps ( VexArch, UInt );
=20
=20
/* This struct is a bit of a hack, but is needed to carry misc
@@ -100,7 +116,7 @@
typedef
struct {
/* This is the only mandatory field. */
- VexSubArch subarch;
+ UInt hwcaps;
/* PPC32/PPC64 only: size of cache line */
Int ppc_cache_line_szB;
}
Modified: trunk/test_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/test_main.c 2006-01-27 16:05:49 UTC (rev 1554)
+++ trunk/test_main.c 2006-01-27 21:20:15 UTC (rev 1555)
@@ -124,14 +124,15 @@
origbuf[i] =3D (UChar)u;
}
=20
+ /* FIXME: put sensible values into the .hwcaps fields */
LibVEX_default_VexArchInfo(&vai_x86);
- vai_x86.subarch =3D VexSubArchX86_sse1;
+ vai_x86.hwcaps =3D 0;
=20
LibVEX_default_VexArchInfo(&vai_amd64);
- vai_amd64.subarch =3D VexSubArch_NONE;
+ vai_amd64.hwcaps =3D 0;
=20
LibVEX_default_VexArchInfo(&vai_ppc32);
- vai_ppc32.subarch =3D VexSubArchPPC32_VFI;
+ vai_ppc32.hwcaps =3D 0;
vai_ppc32.ppc_cache_line_szB =3D 128;
=20
/* ----- Set up args for LibVEX_Translate ----- */
|
|
From: <sv...@va...> - 2006-01-27 16:05:56
|
Author: sewardj
Date: 2006-01-27 16:05:49 +0000 (Fri, 27 Jan 2006)
New Revision: 1554
Log:
Re-enable stfiwx.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/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-ppc/toIR.c 2006-01-27 15:09:35 UTC (rev 1553)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-27 16:05:49 UTC (rev 1554)
@@ -90,7 +90,7 @@
=20
/* "Special" instructions.
=20
- This instruction decoder can decode three special instructions
+ This instruction decoder can decode four special instructions
which mean nothing natively (are no-ops as far as regs/mem are
concerned) but have meaning for supporting Valgrind. A special
instruction is flagged by a 16-byte preamble:
@@ -5609,12 +5609,12 @@
putIReg( rA_addr, mkexpr(EA) );
break;
=20
-//zz case 0x3D7: // stfiwx (Store Float as Int, Indexed, PPC32 p517)
-//zz DIP("stfiwx fr%u,r%u,r%u\n", frS_addr, rA_addr, rB_addr);
-//zz assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
-//zz storeBE( mkexpr(EA),
-//zz unop(Iop_64to32, unop(Iop_ReinterpF64asI64, mkexpr(fr=
S))) );
-//zz break;
+ case 0x3D7: // stfiwx (Store Float as Int, Indexed, PPC32 p517)
+ DIP("stfiwx fr%u,r%u,r%u\n", frS_addr, rA_addr, rB_addr);
+ assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
+ storeBE( mkexpr(EA),
+ unop(Iop_64to32, unop(Iop_ReinterpF64asI64, mkexpr(frS=
))) );
+ break;
=20
default:
vex_printf("dis_fp_store(ppc)(opc2)\n");
|