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
(36) |
2
(30) |
|
3
(17) |
4
(21) |
5
(18) |
6
(14) |
7
(23) |
8
(12) |
9
(11) |
|
10
(11) |
11
(12) |
12
(11) |
13
(12) |
14
(11) |
15
(11) |
16
(15) |
|
17
(12) |
18
(15) |
19
(15) |
20
(25) |
21
(26) |
22
(21) |
23
(18) |
|
24
(25) |
25
(28) |
26
(27) |
27
(32) |
28
(13) |
29
(12) |
30
(10) |
|
From: Paul M. <pa...@sa...> - 2005-04-07 22:56:47
|
A preliminary version of my port of Valgrind-2.4.0 to 32-bit PowerPC is now available at: http://ozlabs.org/~paulus/valgrind-2.4.0-ppc-050407.tar.bz2 The memcheck, addrcheck and corecheck tools are working (I haven't tried the others) and it runs large, threaded programs successfully (mozilla and ksnake, anyway). It does produce a *lot* of errors - clearly we need some decent suppression files, or maybe there are still bugs in my port. At this point I'd welcome some help. If anyone wants to try it out and figure out what is behind the errors it is reporting (i.e. whether they are real errors in the client program/libraries, bugs in valgrind-ppc, or just things that are too hard for valgrind to follow, like glibc's unbearably clever str* functions), that would be helpful. (BTW, I am currently using the futex variant of the run semaphore, which means it will only run on a 2.6 kernel, or on RHEL3. It should be possible to switch back to using the pipe variant by changing the definition of FUTEX_SEMA in coregrind/linux/core_os.h back to 0.) Paul. |
|
From: Paul M. <pa...@sa...> - 2005-04-07 22:56:47
|
Jeremy Fitzhardinge writes: > No, that's not right. VG_(sceduler_init) calls registers > sched_fork_cleanup as a child atfork handler. sched_fork_cleanup, among > other things, reinitializes the semaphore with a new pipe so the process Ahhh... thank you, that's what I was missing. > has its own. Perhaps your fork() syscall handler isn't calling > VG_(do_atfork_*)? No, it was something else, even more embarrassing (I had PLATFORM_SET_SYSCALL_RESULT evaluating its second argument more than once, and that was VG_(do_syscall)(__NR_fork) in one place... :) Thanks, Paul. |
|
From: <sv...@va...> - 2005-04-07 22:30:33
|
Author: paulus Date: 2005-04-07 23:30:26 +0100 (Thu, 07 Apr 2005) New Revision: 105 Modified: trunk/downloads/pmk/pmk.html Log: Put in pointer to 050407 preliminary release of valgrind-2.4.0-ppc. Modified: trunk/downloads/pmk/pmk.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/downloads/pmk/pmk.html 2005-04-02 11:13:52 UTC (rev 104) +++ trunk/downloads/pmk/pmk.html 2005-04-07 22:30:26 UTC (rev 105) @@ -13,4 +13,11 @@ valgrind-2.3.0.CVS-ppc-041217 (tar.bz2)</a> [920kB].</p> </ul> =20 -<p>A port of the Valgrind 2.4.0 release is currently under development.<= /p> +<p>A port of the Valgrind 2.4.0 release is currently under +development. A preliminary version (as of 7 April 2005) is here: +<a href=3D"http://ozlabs.org/~paulus/valgrind-2.4.0-ppc-050407.tar.bz2"> +valgrind-2.4.0-ppc-050407 (tar.bz2)</a> [1087kB]. It runs programs +quite well, even large threaded programs such as Mozilla, but finds +very large numbers of errors. If you are feeling adventurous, try it, +and let me (paulus at valgrind.org) know how it goes. +</p> |
|
From: Jeremy F. <je...@go...> - 2005-04-07 17:43:29
|
Paul Mackerras wrote:
>I'm getting assertion failures in sema_down and sema_up in
>coregrind/linux/sema.c in valgrind-2.4.0. Since core_os.h defines
>FUTEX_SEMA to 0, we are using the pipe-based semaphores, not the
>futex-based ones. (Why? do the futex-based ones not work?)
>
>
We still need to support 2.4, and the pipe code works well enough for
both 2.4 and 2.6 (I couldn't measure a performance difference).
>Looking at sema_up/down, I can't see how it can possibly work
>correctly in the presence of fork(). If the client does a fork(), we
>do a fork() too, while holding the semaphore. The parent and all its
>descendents end up using the same pipe (assuming they don't do an
>execv*), and after a fork, both parent and child will think they hold
>the token and are entitled to do an up. Consequently we can end up
>with lots of tokens in the pipe (and I see that happening).
>
>
No, that's not right. VG_(sceduler_init) calls registers
sched_fork_cleanup as a child atfork handler. sched_fork_cleanup, among
other things, reinitializes the semaphore with a new pipe so the process
has its own. Perhaps your fork() syscall handler isn't calling
VG_(do_atfork_*)?
J
|
|
From: <sv...@va...> - 2005-04-07 17:39:11
|
Author: sewardj Date: 2005-04-07 18:39:08 +0100 (Thu, 07 Apr 2005) New Revision: 3527 Modified: trunk/none/tests/x86/insn_sse2.stdout.exp Log: Update expected output. Modified: trunk/none/tests/x86/insn_sse2.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/x86/insn_sse2.stdout.exp 2005-04-07 17:32:20 UTC (re= v 3526) +++ trunk/none/tests/x86/insn_sse2.stdout.exp 2005-04-07 17:39:08 UTC (re= v 3527) @@ -215,6 +215,21 @@ pslld_3 ... ok pslldq_1 ... ok pslldq_2 ... ok +pslldq_3 ... ok +pslldq_4 ... ok +pslldq_5 ... ok +pslldq_6 ... ok +pslldq_7 ... ok +pslldq_8 ... ok +pslldq_9 ... ok +pslldq_10 ... ok +pslldq_11 ... ok +pslldq_12 ... ok +pslldq_13 ... ok +pslldq_14 ... ok +pslldq_15 ... ok +pslldq_16 ... ok +pslldq_17 ... ok psllq_1 ... ok psllq_2 ... ok psllq_3 ... ok @@ -232,6 +247,21 @@ psrld_3 ... ok psrldq_1 ... ok psrldq_2 ... ok +psrldq_3 ... ok +psrldq_4 ... ok +psrldq_5 ... ok +psrldq_6 ... ok +psrldq_7 ... ok +psrldq_8 ... ok +psrldq_9 ... ok +psrldq_10 ... ok +psrldq_11 ... ok +psrldq_12 ... ok +psrldq_13 ... ok +psrldq_14 ... ok +psrldq_15 ... ok +psrldq_16 ... ok +psrldq_17 ... ok psrlq_1 ... ok psrlq_2 ... ok psrlq_3 ... ok |
|
From: <sv...@va...> - 2005-04-07 17:32:25
|
Author: sewardj Date: 2005-04-07 18:32:20 +0100 (Thu, 07 Apr 2005) New Revision: 3526 Modified: trunk/none/tests/x86/insn_sse2.def Log: Add exhaustive tests for pslldq/psrldq. Modified: trunk/none/tests/x86/insn_sse2.def =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/x86/insn_sse2.def 2005-04-07 02:24:23 UTC (rev 3525) +++ trunk/none/tests/x86/insn_sse2.def 2005-04-07 17:32:20 UTC (rev 3526) @@ -215,8 +215,23 @@ pslld imm8[4] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D> 1= .ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0] pslld xmm.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D= > 1.ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0] pslld m128.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D= > 1.ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0] -pslldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[0= xccddeeff00000000,0x445566778899aabb] -pslldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[0= xccddeeff00000000,0x445566778899aabb] +pslldq imm8[0] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x8899aabbccddeeff,0x0011223344556677] +pslldq imm8[1] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x99aabbccddeeff00,0x1122334455667788] +pslldq imm8[2] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xaabbccddeeff0000,0x2233445566778899] +pslldq imm8[3] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xbbccddeeff000000,0x33445566778899aa] +pslldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xccddeeff00000000,0x445566778899aabb] +pslldq imm8[5] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xddeeff0000000000,0x5566778899aabbcc] +pslldq imm8[6] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xeeff000000000000,0x66778899aabbccdd] +pslldq imm8[7] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0xff00000000000000,0x778899aabbccddee] +pslldq imm8[8] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0x8899aabbccddeeff] +pslldq imm8[9] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0x99aabbccddeeff00] +pslldq imm8[10] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xaabbccddeeff0000] +pslldq imm8[11] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xbbccddeeff000000] +pslldq imm8[12] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xccddeeff00000000] +pslldq imm8[13] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xddeeff0000000000] +pslldq imm8[14] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xeeff000000000000] +pslldq imm8[15] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0xff00000000000000] +pslldq imm8[16] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[= 0x0000000000000000,0x0000000000000000] psllq imm8[4] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.uq[0x= 123456789abcdef0,0x123456789abcdef0] psllq xmm.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.u= q[0x123456789abcdef0,0x123456789abcdef0] psllq m128.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.= uq[0x123456789abcdef0,0x123456789abcdef0] @@ -232,8 +247,23 @@ psrld imm8[4] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D> 1= .ud[0x00123456,0x089abcde,0x00123456,0x089abcde] psrld xmm.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D= > 1.ud[0x00123456,0x089abcde,0x00123456,0x089abcde] psrld m128.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] =3D= > 1.ud[0x00123456,0x089abcde,0x00123456,0x089abcde] -psrldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[0= x445566778899aabb,0x0000000000112233] -psrldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] =3D> 1.uq[0= x445566778899aabb,0x0000000000112233] +psrldq imm8[0] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x8899aabbccddeeff,0x9911223344556677] +psrldq imm8[1] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x778899aabbccddee,0x0099112233445566] +psrldq imm8[2] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x66778899aabbccdd,0x0000991122334455] +psrldq imm8[3] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x5566778899aabbcc,0x0000009911223344] +psrldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x445566778899aabb,0x0000000099112233] +psrldq imm8[5] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x33445566778899aa,0x0000000000991122] +psrldq imm8[6] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x2233445566778899,0x0000000000009911] +psrldq imm8[7] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x1122334455667788,0x0000000000000099] +psrldq imm8[8] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x9911223344556677,0x0000000000000000] +psrldq imm8[9] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0099112233445566,0x0000000000000000] +psrldq imm8[10] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000991122334455,0x0000000000000000] +psrldq imm8[11] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000009911223344,0x0000000000000000] +psrldq imm8[12] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000000099112233,0x0000000000000000] +psrldq imm8[13] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000000000991122,0x0000000000000000] +psrldq imm8[14] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000000000009911,0x0000000000000000] +psrldq imm8[15] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000000000000099,0x0000000000000000] +psrldq imm8[16] xmm.uq[0x8899aabbccddeeff,0x9911223344556677] =3D> 1.uq[= 0x0000000000000000,0x0000000000000000] psrlq imm8[4] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.uq[0x= 00123456789abcde,0x00123456789abcde] psrlq xmm.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.u= q[0x00123456789abcde,0x00123456789abcde] psrlq m128.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] =3D> 1.= uq[0x00123456789abcde,0x00123456789abcde] |
|
From: <sv...@va...> - 2005-04-07 17:31:35
|
Author: sewardj
Date: 2005-04-07 18:31:27 +0100 (Thu, 07 Apr 2005)
New Revision: 1130
Modified:
trunk/priv/guest-x86/toIR.c
Log:
Complete implementation of pslldq/psrldq. Also some whitespace changes.
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-04-07 02:03:52 UTC (rev 1129)
+++ trunk/priv/guest-x86/toIR.c 2005-04-07 17:31:27 UTC (rev 1130)
@@ -1656,7 +1656,7 @@
return disAMode_copy2tmp(
handleSegOverride(sorb, mkU32(d)));
}
-
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -1697,6 +1697,7 @@
getIReg(4,index_r), mkU8(scale))),
mkU32(d))));
}
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -1737,6 +1738,7 @@
getIReg(4,index_r), mkU8(scale))),
mkU32(d))));
}
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -2657,7 +2659,8 @@
case 7: /* BTC */
assign( t2m, binop(Iop_Xor32, mkU32(mask), mkexpr(t2)) );
break;
- default:=20
+ default:=20
+ /*NOTREACHED*/ /*the previous switch guards this*/
vassert(0);
}
=20
@@ -5300,6 +5303,7 @@
)
);
} else {
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -5345,17 +5349,18 @@
}
=20
if (shl || shr) {
- assign( e1, amt >=3D size=20
- ? mkU64(0)
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >=3D size=20
+ ? mkU64(0)
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else=20
if (sar) {
- assign( e1, amt >=3D size=20
- ? binop(op, mkexpr(e0), mkU8(size-1))
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >=3D size=20
+ ? binop(op, mkexpr(e0), mkU8(size-1))
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else {
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -6896,6 +6901,7 @@
)
);
} else {
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -6939,17 +6945,18 @@
}
=20
if (shl || shr) {
- assign( e1, amt >=3D size=20
- ? mkV128(0x0000)
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >=3D size=20
+ ? mkV128(0x0000)
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else=20
if (sar) {
- assign( e1, amt >=3D size=20
- ? binop(op, mkexpr(e0), mkU8(size-1))
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >=3D size=20
+ ? binop(op, mkexpr(e0), mkU8(size-1))
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else {
+ /*NOTREACHED*/
vassert(0);
}
=20
@@ -7905,7 +7912,7 @@
case 1: assign(t5, mkexpr(t1)); break;
case 2: assign(t5, mkexpr(t2)); break;
case 3: assign(t5, mkexpr(t3)); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putIReg(4, gregOfRM(modrm), unop(Iop_16Uto32, mkexpr(t5)));
DIP("pextrw $%d,%s,%s\n",
@@ -7956,7 +7963,7 @@
case 1: assign(t6, mk64from16s(t3,t2,t4,t0)); break;
case 2: assign(t6, mk64from16s(t3,t4,t1,t0)); break;
case 3: assign(t6, mk64from16s(t4,t2,t1,t0)); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putMMXReg(gregOfRM(modrm), mkexpr(t6));
goto decode_success;
@@ -8052,7 +8059,7 @@
case 1: hintstr =3D "t0"; break;
case 2: hintstr =3D "t1"; break;
case 3: hintstr =3D "t2"; break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
=20
DIP("prefetch%s %s\n", hintstr, dis_buf);
@@ -9647,7 +9654,7 @@
case 5: assign(t4, unop(Iop_32HIto16, mkexpr(t2))); break;
case 6: assign(t4, unop(Iop_32to16, mkexpr(t3))); break;
case 7: assign(t4, unop(Iop_32HIto16, mkexpr(t3))); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putIReg(4, gregOfRM(modrm), unop(Iop_16Uto32, mkexpr(t4)));
DIP("pextrw $%d,%s,%s\n",
@@ -9999,7 +10006,6 @@
lo64r =3D newTemp(Ity_I64);
=20
if (imm >=3D 16) {
- vassert(0); /* awaiting test case */
putXMMReg(reg, mkV128(0x0000));
goto decode_success;
}
@@ -10008,13 +10014,17 @@
assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
=20
+ if (imm =3D=3D 0) {
+ assign( lo64r, mkexpr(lo64) );
+ assign( hi64r, mkexpr(hi64) );
+ }
+ else
if (imm =3D=3D 8) {
assign( lo64r, mkU64(0) );
assign( hi64r, mkexpr(lo64) );
}
else
if (imm > 8) {
- vassert(0); /* awaiting test case */
assign( lo64r, mkU64(0) );
assign( hi64r, binop( Iop_Shl64,=20
mkexpr(lo64),
@@ -10126,7 +10136,6 @@
lo64r =3D newTemp(Ity_I64);
=20
if (imm >=3D 16) {
- vassert(0); /* awaiting test case */
putXMMReg(reg, mkV128(0x0000));
goto decode_success;
}
@@ -10135,13 +10144,17 @@
assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
=20
+ if (imm =3D=3D 0) {
+ assign( lo64r, mkexpr(lo64) );
+ assign( hi64r, mkexpr(hi64) );
+ }
+ else
if (imm =3D=3D 8) {
assign( hi64r, mkU64(0) );
assign( lo64r, mkexpr(hi64) );
}
else=20
if (imm > 8) {
- vassert(0); /* awaiting test case */
assign( hi64r, mkU64(0) );
assign( lo64r, binop( Iop_Shr64,=20
mkexpr(hi64),
|
|
From: Julian S. <js...@ac...> - 2005-04-07 12:02:42
|
> I'm getting assertion failures in sema_down and sema_up in > coregrind/linux/sema.c in valgrind-2.4.0. Since core_os.h defines > FUTEX_SEMA to 0, we are using the pipe-based semaphores, not the > futex-based ones. (Why? do the futex-based ones not work?) I think the intention was to support 2.4 kernels, and only have one implementation to have to validate (2.4 kernels don't do futex, right?) > Looking at sema_up/down, > [...] > What was the intention here? How was this supposed to work? I don't know. Jeremy? > This is on PPC, but this problem isn't PPC-specific AFAICS. It's a bit strange that it seems to work ok as-is on both x86 and amd64. J |
|
From: <js...@ac...> - 2005-04-07 03:05:07
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-04-07 03:50:01 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_mmx: valgrind ./insn_mmx insn_mmxext: (skipping, prereq failed: ../../../tests/cputest x86-mmxext) insn_sse: valgrind ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 201 tests, 5 stderr failures, 0 stdout failures ================= memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/writev (stderr) corecheck/tests/fdleak_fcntl (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2005-04-07 02:36:58
|
Nightly build on dunsmere ( athlon, Fedora Core 3 ) started at 2005-04-07 03:30:02 BST 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 == 185 tests, 78 stderr failures, 2 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/metadata (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/overlap (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_fork (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/scalar_vfork (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) memcheck/tests/x86/fpeflags (stderr) memcheck/tests/x86/pushfpopf (stderr) memcheck/tests/x86/tronical (stderr) memcheck/tests/zeropage (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-04-07 02:30:54
|
Nightly build on audi ( i686, Red Hat 9 ) started at 2005-04-07 03:25:01 BST 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 == 184 tests, 3 stderr failures, 0 stdout failures ================= memcheck/tests/scalar (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-04-07 02:25:54
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-04-07 03:20:01 BST 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 == 183 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2005-04-07 02:24:26
|
Author: sewardj
Date: 2005-04-07 03:24:23 +0100 (Thu, 07 Apr 2005)
New Revision: 3525
Modified:
trunk/coregrind/ume.c
Log:
Reword error messages in a not-quite-so-terse way.
Modified: trunk/coregrind/ume.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/ume.c 2005-04-07 02:23:50 UTC (rev 3524)
+++ trunk/coregrind/ume.c 2005-04-07 02:24:23 UTC (rev 3525)
@@ -152,36 +152,38 @@
e->fd =3D fd;
=20
if (pread(fd, &e->e, sizeof(e->e), 0) !=3D sizeof(e->e)) {
- fprintf(stderr, "valgrind: %s: can't read elf header: %s\n",=20
+ fprintf(stderr, "valgrind: %s: can't read ELF header: %s\n",=20
filename, strerror(errno));
return NULL;
}
=20
if (memcmp(&e->e.e_ident[0], ELFMAG, SELFMAG) !=3D 0) {
- fprintf(stderr, "valgrind: %s: bad ELF magic\n", filename);
+ fprintf(stderr, "valgrind: %s: bad ELF magic number\n", filename);
return NULL;
}
if (e->e.e_ident[EI_CLASS] !=3D VGA_ELF_CLASS) {
- fprintf(stderr, "valgrind: wrong executable class (eg. 32-bit inst=
ead\n"
- "valgrind: of 64-bit)\n");
+ fprintf(stderr,=20
+ "valgrind: wrong ELF executable class "
+ "(eg. 32-bit instead of 64-bit)\n");
return NULL;
}
if (e->e.e_ident[EI_DATA] !=3D VGA_ELF_ENDIANNESS) {
- fprintf(stderr, "valgrind: wrong endian-ness\n");
+ fprintf(stderr, "valgrind: executable has wrong endian-ness\n");
return NULL;
}
if (!(e->e.e_type =3D=3D ET_EXEC || e->e.e_type =3D=3D ET_DYN)) {
- fprintf(stderr, "valgrind: need executable\n");
+ fprintf(stderr, "valgrind: this is not an executable\n");
return NULL;
}
=20
if (e->e.e_machine !=3D VGA_ELF_MACHINE) {
- fprintf(stderr, "valgrind: wrong architecture\n");
+ fprintf(stderr, "valgrind: executable is not for "
+ "this architecture\n");
return NULL;
}
=20
if (e->e.e_phentsize !=3D sizeof(ESZ(Phdr))) {
- fprintf(stderr, "valgrind: sizeof Phdr wrong\n");
+ fprintf(stderr, "valgrind: sizeof ELF Phdr wrong\n");
return NULL;
}
=20
|
|
From: <sv...@va...> - 2005-04-07 02:23:54
|
Author: sewardj
Date: 2005-04-07 03:23:50 +0100 (Thu, 07 Apr 2005)
New Revision: 3524
Modified:
trunk/coregrind/amd64-linux/syscalls.c
Log:
Even more syscalls.
Modified: trunk/coregrind/amd64-linux/syscalls.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/amd64-linux/syscalls.c 2005-04-05 21:06:56 UTC (rev 3=
523)
+++ trunk/coregrind/amd64-linux/syscalls.c 2005-04-07 02:23:50 UTC (rev 3=
524)
@@ -987,9 +987,9 @@
PLAXY(__NR_msgctl, sys_msgctl), // 71=20
GENXY(__NR_fcntl, sys_fcntl), // 72=20
// (__NR_flock, sys_flock), // 73=20
- // (__NR_fsync, sys_fsync), // 74=20
+ GENX_(__NR_fsync, sys_fsync), // 74=20
=20
- // (__NR_fdatasync, sys_fdatasync), // 75=20
+ GENX_(__NR_fdatasync, sys_fdatasync), // 75=20
// (__NR_truncate, sys_truncate), // 76=20
GENX_(__NR_ftruncate, sys_ftruncate), // 77=20
GENXY(__NR_getdents, sys_getdents), // 78=20
@@ -1008,9 +1008,9 @@
GENX_(__NR_readlink, sys_readlink), // 89=20
=20
GENX_(__NR_chmod, sys_chmod), // 90=20
- // (__NR_fchmod, sys_fchmod), // 91=20
+ GENX_(__NR_fchmod, sys_fchmod), // 91=20
GENX_(__NR_chown, sys_chown), // 92=20
- // (__NR_fchown, sys_fchown), // 93=20
+ GENX_(__NR_fchown, sys_fchown), // 93=20
// (__NR_lchown, sys_lchown), // 94=20
=20
GENX_(__NR_umask, sys_umask), // 95=20
|
|
From: Tom H. <th...@cy...> - 2005-04-07 02:20:37
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-04-07 03:15:01 BST 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 == 183 tests, 17 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (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/pointer-trace (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/vgtest_ume (stderr) addrcheck/tests/leak-0 (stderr) addrcheck/tests/leak-cycle (stderr) addrcheck/tests/leak-regroot (stderr) addrcheck/tests/leak-tree (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-04-07 02:14:00
|
Nightly build on honda ( x86_64, Fedora Core 3 ) started at 2005-04-07 03:10:04 BST 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 == 165 tests, 82 stderr failures, 23 stdout failures ================= memcheck/tests/addressable (stdout) memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stdout) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stdout) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stdout) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stdout) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stdout) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stdout) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stdout) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stdout) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/metadata (stdout) memcheck/tests/metadata (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/overlap (stdout) memcheck/tests/overlap (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stdout) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_fork (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/scalar_vfork (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stdout) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/threadederrno (stdout) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stdout) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stdout) addrcheck/tests/addressable (stdout) addrcheck/tests/addressable (stderr) addrcheck/tests/badrw (stderr) addrcheck/tests/fprw (stderr) addrcheck/tests/leak-0 (stderr) addrcheck/tests/leak-cycle (stderr) addrcheck/tests/leak-regroot (stderr) addrcheck/tests/leak-tree (stderr) addrcheck/tests/overlap (stdout) addrcheck/tests/overlap (stderr) addrcheck/tests/toobig-allocs (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/yield (stdout) |
|
From: Tom H. <th...@cy...> - 2005-04-07 02:13:42
|
Nightly build on standard ( i686, Red Hat 7.2 ) started at 2005-04-07 03:10:04 BST 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 == 183 tests, 175 stderr failures, 68 stdout failures ================= memcheck/tests/addressable (stdout) memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stdout) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stdout) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stdout) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stdout) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stdout) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stdout) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stdout) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stdout) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/metadata (stdout) memcheck/tests/metadata (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/overlap (stdout) memcheck/tests/overlap (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stdout) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_fork (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/scalar_vfork (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stdout) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/threadederrno (stdout) memcheck/tests/threadederrno (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stdout) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) memcheck/tests/x86/fpeflags (stderr) memcheck/tests/x86/pushfpopf (stdout) memcheck/tests/x86/pushfpopf (stderr) memcheck/tests/x86/tronical (stderr) memcheck/tests/zeropage (stdout) memcheck/tests/zeropage (stderr) addrcheck/tests/addressable (stdout) addrcheck/tests/addressable (stderr) addrcheck/tests/badrw (stderr) addrcheck/tests/fprw (stderr) addrcheck/tests/leak-0 (stderr) addrcheck/tests/leak-cycle (stderr) addrcheck/tests/leak-regroot (stderr) addrcheck/tests/leak-tree (stderr) addrcheck/tests/overlap (stdout) addrcheck/tests/overlap (stderr) addrcheck/tests/toobig-allocs (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stdout) cachegrind/tests/dlclose (stderr) cachegrind/tests/x86/fpu-28-108 (stderr) corecheck/tests/as_mmap (stderr) corecheck/tests/as_shm (stdout) corecheck/tests/as_shm (stderr) corecheck/tests/erringfds (stdout) corecheck/tests/erringfds (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stdout) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) corecheck/tests/pth_atfork1 (stdout) corecheck/tests/pth_atfork1 (stderr) corecheck/tests/pth_cancel1 (stdout) corecheck/tests/pth_cancel1 (stderr) corecheck/tests/pth_cancel2 (stderr) corecheck/tests/pth_cvsimple (stdout) corecheck/tests/pth_cvsimple (stderr) corecheck/tests/pth_empty (stderr) corecheck/tests/pth_exit (stderr) corecheck/tests/pth_exit2 (stderr) corecheck/tests/pth_mutexspeed (stdout) corecheck/tests/pth_mutexspeed (stderr) corecheck/tests/pth_once (stdout) corecheck/tests/pth_once (stderr) corecheck/tests/pth_rwlock (stderr) corecheck/tests/res_search (stdout) corecheck/tests/res_search (stderr) corecheck/tests/sigkill (stderr) corecheck/tests/vgprintf (stdout) corecheck/tests/vgprintf (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) lackey/tests/true (stderr) none/tests/args (stdout) none/tests/args (stderr) none/tests/async-sigs (stdout) none/tests/async-sigs (stderr) none/tests/bitfield1 (stderr) none/tests/blockfault (stderr) none/tests/closeall (stderr) none/tests/coolo_sigaction (stdout) none/tests/coolo_sigaction (stderr) none/tests/coolo_strlen (stderr) none/tests/discard (stdout) none/tests/discard (stderr) none/tests/exec-sigmask (stderr) none/tests/execve (stderr) none/tests/faultstatus (stderr) none/tests/fcntl_setown (stderr) none/tests/floored (stdout) none/tests/floored (stderr) none/tests/fork (stdout) none/tests/fork (stderr) none/tests/fucomip (stderr) none/tests/gxx304 (stderr) none/tests/manythreads (stdout) none/tests/manythreads (stderr) none/tests/map_unaligned (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) none/tests/mq (stderr) none/tests/mremap (stderr) none/tests/munmap_exe (stderr) none/tests/pending (stdout) none/tests/pending (stderr) none/tests/pth_blockedsig (stdout) none/tests/pth_blockedsig (stderr) none/tests/pth_stackalign (stdout) none/tests/pth_stackalign (stderr) none/tests/rcrl (stdout) none/tests/rcrl (stderr) none/tests/readline1 (stdout) none/tests/readline1 (stderr) none/tests/resolv (stdout) none/tests/resolv (stderr) none/tests/rlimit_nofile (stderr) none/tests/sem (stderr) none/tests/semlimit (stderr) none/tests/sha1_test (stderr) none/tests/shortpush (stderr) none/tests/shorts (stderr) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/smc1 (stdout) none/tests/smc1 (stderr) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/system (stderr) none/tests/thread-exits (stdout) none/tests/thread-exits (stderr) none/tests/threaded-fork (stdout) none/tests/threaded-fork (stderr) none/tests/x86/badseg (stdout) none/tests/x86/badseg (stderr) none/tests/x86/bt_everything (stdout) none/tests/x86/bt_everything (stderr) none/tests/x86/bt_literal (stdout) none/tests/x86/bt_literal (stderr) none/tests/x86/cpuid (stdout) none/tests/x86/cpuid (stderr) none/tests/x86/fpu_lazy_eflags (stdout) none/tests/x86/fpu_lazy_eflags (stderr) none/tests/x86/getseg (stdout) none/tests/x86/getseg (stderr) none/tests/x86/insn_basic (stdout) none/tests/x86/insn_basic (stderr) none/tests/x86/insn_cmov (stdout) none/tests/x86/insn_cmov (stderr) none/tests/x86/insn_fpu (stdout) none/tests/x86/insn_fpu (stderr) none/tests/x86/insn_mmx (stdout) none/tests/x86/insn_mmx (stderr) none/tests/x86/insn_mmxext (stdout) none/tests/x86/insn_mmxext (stderr) none/tests/x86/insn_sse (stdout) none/tests/x86/insn_sse (stderr) none/tests/x86/int (stderr) none/tests/x86/pushpopseg (stdout) none/tests/x86/pushpopseg (stderr) none/tests/x86/seg_override (stdout) none/tests/x86/seg_override (stderr) none/tests/x86/sigcontext (stdout) none/tests/x86/sigcontext (stderr) none/tests/yield (stdout) none/tests/yield (stderr) |
|
From: <sv...@va...> - 2005-04-07 02:04:05
|
Author: sewardj
Date: 2005-04-07 03:03:52 +0100 (Thu, 07 Apr 2005)
New Revision: 1129
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/isel.c
Log:
Handle bsr{w,l,q} and allow bsfq.
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 2005-04-07 02:02:23 UTC (rev 1128)
+++ trunk/priv/guest-amd64/toIR.c 2005-04-07 02:03:52 UTC (rev 1129)
@@ -3330,6 +3330,7 @@
switch (sz) {
case 2: src_val &=3D 15; break;
case 4: src_val &=3D 31; break;
+ case 8: src_val &=3D 63; break;
default: *decode_OK =3D False; return delta;
}
=20
@@ -12863,9 +12864,10 @@
if (haveF2orF3(pfx)) goto decode_failure;
delta =3D dis_bs_E_G ( pfx, sz, delta, True );
break;
-//.. case 0xBD: /* BSR Gv,Ev */
-//.. delta =3D dis_bs_E_G ( sorb, sz, delta, False );
-//.. break;
+ case 0xBD: /* BSR Gv,Ev */
+ if (haveF2orF3(pfx)) goto decode_failure;
+ delta =3D dis_bs_E_G ( pfx, sz, delta, False );
+ break;
=20
/* =3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- BSWAP -=3D-=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D-=3D */
=20
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 2005-04-07 02:02:23 UTC (rev 1128)
+++ trunk/priv/host-amd64/isel.c 2005-04-07 02:03:52 UTC (rev 1129)
@@ -1300,21 +1300,21 @@
addInstr(env, AMD64Instr_Bsfr64(True,src,dst));
return dst;
}
-//.. case Iop_Clz32: {
-//.. /* Count leading zeroes. Do 'bsrl' to establish the in=
dex
-//.. of the highest set bit, and subtract that value from
-//.. 31. */
-//.. HReg tmp =3D newVRegI(env);
-//.. HReg dst =3D newVRegI(env);
-//.. HReg src =3D iselIntExpr_R(env, e->Iex.Unop.arg);
-//.. addInstr(env, X86Instr_Bsfr32(False,src,tmp));
-//.. addInstr(env, X86Instr_Alu32R(Xalu_MOV,=20
-//.. X86RMI_Imm(31), dst));
-//.. addInstr(env, X86Instr_Alu32R(Xalu_SUB,
-//.. X86RMI_Reg(tmp), dst));
-//.. return dst;
-//.. }
-//..=20
+ case Iop_Clz64: {
+ /* Count leading zeroes. Do 'bsrq' to establish the index
+ of the highest set bit, and subtract that value from
+ 63. */
+ HReg tmp =3D newVRegI(env);
+ HReg dst =3D newVRegI(env);
+ HReg src =3D iselIntExpr_R(env, e->Iex.Unop.arg);
+ addInstr(env, AMD64Instr_Bsfr64(False,src,tmp));
+ addInstr(env, AMD64Instr_Alu64R(Aalu_MOV,=20
+ AMD64RMI_Imm(63), dst));
+ addInstr(env, AMD64Instr_Alu64R(Aalu_SUB,
+ AMD64RMI_Reg(tmp), dst));
+ return dst;
+ }
+
//.. case Iop_128to32: {
//.. HReg dst =3D newVRegI(env);
//.. HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
|
|
From: Tom H. <th...@cy...> - 2005-04-07 02:03:01
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-04-07 03:00:03 BST 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 == 165 tests, 82 stderr failures, 23 stdout failures ================= memcheck/tests/addressable (stdout) memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stdout) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stdout) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stdout) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stdout) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stdout) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stdout) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stdout) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stdout) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/metadata (stdout) memcheck/tests/metadata (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/overlap (stdout) memcheck/tests/overlap (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stdout) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_fork (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/scalar_vfork (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stdout) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/threadederrno (stdout) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stdout) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stdout) addrcheck/tests/addressable (stdout) addrcheck/tests/addressable (stderr) addrcheck/tests/badrw (stderr) addrcheck/tests/fprw (stderr) addrcheck/tests/leak-0 (stderr) addrcheck/tests/leak-cycle (stderr) addrcheck/tests/leak-regroot (stderr) addrcheck/tests/leak-tree (stderr) addrcheck/tests/overlap (stdout) addrcheck/tests/overlap (stderr) addrcheck/tests/toobig-allocs (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/yield (stdout) |
|
From: <sv...@va...> - 2005-04-07 02:02:35
|
Author: sewardj
Date: 2005-04-07 03:02:23 +0100 (Thu, 07 Apr 2005)
New Revision: 1128
Modified:
trunk/priv/host-amd64/hdefs.h
Log:
Fix comment.
Modified: trunk/priv/host-amd64/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-amd64/hdefs.h 2005-04-07 02:01:23 UTC (rev 1127)
+++ trunk/priv/host-amd64/hdefs.h 2005-04-07 02:02:23 UTC (rev 1128)
@@ -369,7 +369,7 @@
Ain_MovZLQ, /* reg-reg move, zeroing out top half */
Ain_LoadEX, /* mov{s,z}{b,w,l}q from mem to reg */
Ain_Store, /* store 32/16/8 bit value in memory */
- Ain_Set64, /* convert condition code to 32-bit value */
+ Ain_Set64, /* convert condition code to 64-bit value */
Ain_Bsfr64, /* 64-bit bsf/bsr */
Ain_MFence, /* mem fence */
//..=20
|
|
From: <sv...@va...> - 2005-04-07 02:01:36
|
Author: sewardj
Date: 2005-04-07 03:01:23 +0100 (Thu, 07 Apr 2005)
New Revision: 1127
Modified:
trunk/priv/host-amd64/hdefs.c
Log:
Fix a nasty assembler bug, in the handling of Set64, arising from
confusion over whether we were looking at a complete integer register
number or just the lower 3 bits of it. Rename functions pertaining to
messing with integer register numbers in an attempt to stop this
happening in future.
Modified: trunk/priv/host-amd64/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-amd64/hdefs.c 2005-04-07 01:56:21 UTC (rev 1126)
+++ trunk/priv/host-amd64/hdefs.c 2005-04-07 02:01:23 UTC (rev 1127)
@@ -1811,7 +1811,7 @@
/* --------- The amd64 assembler (bleh.) --------- */
=20
/* Produce the low three bits of an integer register number. */
-static UChar iregNo ( HReg r )
+static UChar iregBits210 ( HReg r )
{
UInt n;
vassert(hregClass(r) =3D=3D HRcInt64);
@@ -1832,7 +1832,19 @@
return toUChar((n >> 3) & 1);
}
=20
+/* Produce a complete 4-bit integer register number. */
+static UChar iregBits3210 ( HReg r )
+{
+ UInt n;
+ vassert(hregClass(r) =3D=3D HRcInt64);
+ vassert(!hregIsVirtual(r));
+ n =3D hregNumber(r);
+ vassert(n <=3D 15);
+ return toUChar(n);
+}
=20
+
+
//.. static UInt fregNo ( HReg r )
//.. {
//.. UInt n;
@@ -1936,28 +1948,31 @@
&& am->Aam.IR.reg !=3D hregAMD64_R12()=20
&& am->Aam.IR.reg !=3D hregAMD64_R13()=20
) {
- *p++ =3D mkModRegRM(0, iregNo(greg), iregNo(am->Aam.IR.reg));
+ *p++ =3D mkModRegRM(0, iregBits210(greg),=20
+ iregBits210(am->Aam.IR.reg));
return p;
}
if (fits8bits(am->Aam.IR.imm)
&& am->Aam.IR.reg !=3D hregAMD64_RSP()
&& am->Aam.IR.reg !=3D hregAMD64_R12()
) {
- *p++ =3D mkModRegRM(1, iregNo(greg), iregNo(am->Aam.IR.reg));
+ *p++ =3D mkModRegRM(1, iregBits210(greg),=20
+ iregBits210(am->Aam.IR.reg));
*p++ =3D toUChar(am->Aam.IR.imm & 0xFF);
return p;
}
if (am->Aam.IR.reg !=3D hregAMD64_RSP()
&& am->Aam.IR.reg !=3D hregAMD64_R12()
) {
- *p++ =3D mkModRegRM(2, iregNo(greg), iregNo(am->Aam.IR.reg));
+ *p++ =3D mkModRegRM(2, iregBits210(greg),=20
+ iregBits210(am->Aam.IR.reg));
p =3D emit32(p, am->Aam.IR.imm);
return p;
}
if ((am->Aam.IR.reg =3D=3D hregAMD64_RSP()
|| am->Aam.IR.reg =3D=3D hregAMD64_R12())
&& fits8bits(am->Aam.IR.imm)) {
- *p++ =3D mkModRegRM(1, iregNo(greg), 4);
+ *p++ =3D mkModRegRM(1, iregBits210(greg), 4);
*p++ =3D 0x24;
*p++ =3D toUChar(am->Aam.IR.imm & 0xFF);
return p;
@@ -1965,7 +1980,7 @@
if (/* (am->Aam.IR.reg =3D=3D hregAMD64_RSP()
|| wait for test case for RSP case */
am->Aam.IR.reg =3D=3D hregAMD64_R12()) {
- *p++ =3D mkModRegRM(2, iregNo(greg), 4);
+ *p++ =3D mkModRegRM(2, iregBits210(greg), 4);
*p++ =3D 0x24;
p =3D emit32(p, am->Aam.IR.imm);
return p;
@@ -1977,14 +1992,14 @@
if (am->tag =3D=3D Aam_IRRS) {
if (fits8bits(am->Aam.IRRS.imm)
&& am->Aam.IRRS.index !=3D hregAMD64_RSP()) {
- *p++ =3D mkModRegRM(1, iregNo(greg), 4);
+ *p++ =3D mkModRegRM(1, iregBits210(greg), 4);
*p++ =3D mkSIB(am->Aam.IRRS.shift, am->Aam.IRRS.index,=20
am->Aam.IRRS.base);
*p++ =3D toUChar(am->Aam.IRRS.imm & 0xFF);
return p;
}
if (am->Aam.IRRS.index !=3D hregAMD64_RSP()) {
- *p++ =3D mkModRegRM(2, iregNo(greg), 4);
+ *p++ =3D mkModRegRM(2, iregBits210(greg), 4);
*p++ =3D mkSIB(am->Aam.IRRS.shift, am->Aam.IRRS.index,
am->Aam.IRRS.base);
p =3D emit32(p, am->Aam.IRRS.imm);
@@ -2002,7 +2017,7 @@
/* Emit a mod-reg-rm byte when the rm bit denotes a reg. */
static UChar* doAMode_R ( UChar* p, HReg greg, HReg ereg )=20
{
- *p++ =3D mkModRegRM(3, iregNo(greg), iregNo(ereg));
+ *p++ =3D mkModRegRM(3, iregBits210(greg), iregBits210(ereg));
return p;
}
=20
@@ -2167,7 +2182,7 @@
=20
case Ain_Imm64:
*p++ =3D toUChar(0x48 + (1 & iregBit3(i->Ain.Imm64.dst)));
- *p++ =3D toUChar(0xB8 + iregNo(i->Ain.Imm64.dst));
+ *p++ =3D toUChar(0xB8 + iregBits210(i->Ain.Imm64.dst));
p =3D emit64(p, i->Ain.Imm64.imm64);
goto done;
=20
@@ -2178,7 +2193,7 @@
case Armi_Imm:
*p++ =3D toUChar(0x48 + (1 & iregBit3(i->Ain.Alu64R.dst))=
);
*p++ =3D 0xC7;
- *p++ =3D toUChar(0xC0 + iregNo(i->Ain.Alu64R.dst));
+ *p++ =3D toUChar(0xC0 + iregBits210(i->Ain.Alu64R.dst));
p =3D emit32(p, i->Ain.Alu64R.src->Armi.Imm.imm32);
goto done;
case Armi_Reg:
@@ -2513,7 +2528,7 @@
goto done;
case Armi_Reg:
*p++ =3D toUChar(0x40 + (1 & iregBit3(i->Ain.Push.src->Armi.=
Reg.reg)));
- *p++ =3D toUChar(0x50 + iregNo(i->Ain.Push.src->Armi.Reg.reg=
));
+ *p++ =3D toUChar(0x50 + iregBits210(i->Ain.Push.src->Armi.Re=
g.reg));
goto done;
default:=20
goto bad;
@@ -2677,8 +2692,7 @@
of the destination should be forced to zero, but doing 'xorq
%r,%r' kills the flag(s) we are about to read. Sigh. So
start off my moving $0 into the dest. */
-
- reg =3D iregNo(i->Ain.Set64.dst);
+ reg =3D iregBits3210(i->Ain.Set64.dst);
vassert(reg < 16);
=20
/* movq $0, %dst */
@@ -2932,7 +2946,7 @@
*p++ =3D 0x9C;
/* popq %dst */
*p++ =3D toUChar(0x40 + (1 & iregBit3(i->Ain.SseUComIS.dst)));
- *p++ =3D toUChar(0x58 + iregNo(i->Ain.SseUComIS.dst));
+ *p++ =3D toUChar(0x58 + iregBits210(i->Ain.SseUComIS.dst));
goto done;
=20
case Ain_SseSI2SF:
|
|
From: <sv...@va...> - 2005-04-07 01:56:26
|
Author: sewardj
Date: 2005-04-07 02:56:21 +0100 (Thu, 07 Apr 2005)
New Revision: 1126
Modified:
trunk/test/test-amd64.c
Log:
Reinstate tests for bsf{w,l} and bsr{w,l}.
Modified: trunk/test/test-amd64.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/test-amd64.c 2005-04-06 20:01:56 UTC (rev 1125)
+++ trunk/test/test-amd64.c 2005-04-07 01:56:21 UTC (rev 1126)
@@ -1683,7 +1683,7 @@
func();
}
#endif
- // test_bsx(); REINSTATE64
+ test_bsx(); //REINSTATE64
test_mul();
test_jcc();
// test_floats(); REINSTATE64
|
|
From: Paul M. <pa...@sa...> - 2005-04-07 00:44:31
|
I'm getting assertion failures in sema_down and sema_up in coregrind/linux/sema.c in valgrind-2.4.0. Since core_os.h defines FUTEX_SEMA to 0, we are using the pipe-based semaphores, not the futex-based ones. (Why? do the futex-based ones not work?) Looking at sema_up/down, I can't see how it can possibly work correctly in the presence of fork(). If the client does a fork(), we do a fork() too, while holding the semaphore. The parent and all its descendents end up using the same pipe (assuming they don't do an execv*), and after a fork, both parent and child will think they hold the token and are entitled to do an up. Consequently we can end up with lots of tokens in the pipe (and I see that happening). What was the intention here? How was this supposed to work? This is on PPC, but this problem isn't PPC-specific AFAICS. Paul. |