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
(2) |
2
(7) |
3
(1) |
4
(9) |
5
|
|
6
(7) |
7
(10) |
8
(23) |
9
(19) |
10
(21) |
11
(14) |
12
(15) |
|
13
(11) |
14
(7) |
15
(20) |
16
(21) |
17
(20) |
18
(20) |
19
(19) |
|
20
(24) |
21
(22) |
22
(19) |
23
(17) |
24
(26) |
25
(15) |
26
(16) |
|
27
(8) |
28
(10) |
29
(24) |
30
(21) |
31
(19) |
|
|
|
From: <sv...@va...> - 2013-01-29 22:14:14
|
sewardj 2013-01-29 22:14:01 +0000 (Tue, 29 Jan 2013)
New Revision: 13279
Log:
test_reservation(), test_double_pair_instrs(): Fix broken inline assembly
causing segfaults with gcc-4.7. The inline assembly still isn't right,
but it's better than it was before.
Modified files:
trunk/memcheck/tests/ppc32/power_ISA2_05.c
trunk/memcheck/tests/ppc64/power_ISA2_05.c
Modified: trunk/memcheck/tests/ppc32/power_ISA2_05.c (+7 -7)
===================================================================
--- trunk/memcheck/tests/ppc32/power_ISA2_05.c 2013-01-29 21:14:46 +00:00 (rev 13278)
+++ trunk/memcheck/tests/ppc32/power_ISA2_05.c 2013-01-29 22:14:01 +00:00 (rev 13279)
@@ -103,8 +103,8 @@
FRT2 = -1.0;
base = (unsigned long) &dbl_pair;
offset = (unsigned long) &dbl_pair[1] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("lfdpx 10, 20, 21");
__asm__ volatile ("fmr %0, 10":"=f" (FRT1));
__asm__ volatile ("fmr %0, 11":"=f" (FRT2));
@@ -115,8 +115,8 @@
FRT2 = -16.1024;
base = (unsigned long) &dbl_pair;
offset = (unsigned long) &dbl_pair[2] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("fmr %0, 10":"=f" (FRT1));
__asm__ volatile ("fmr %0, 11":"=f" (FRT2));
__asm__ volatile ("stfdpx 10, 20, 21");
@@ -168,14 +168,14 @@
base = (unsigned long) &arr;
offset = (unsigned long) &arr[1] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("lwarx %0, 20, 21, 1":"=r" (RT));
printf("lwarx => %x\n", RT);
#ifdef __powerpc64__
offset = (unsigned long) &arr[1] - base;
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("ldarx %0, 20, 21, 1":"=r" (RT));
printf("ldarx => %x\n", RT);
#endif
Modified: trunk/memcheck/tests/ppc64/power_ISA2_05.c (+7 -7)
===================================================================
--- trunk/memcheck/tests/ppc64/power_ISA2_05.c 2013-01-29 21:14:46 +00:00 (rev 13278)
+++ trunk/memcheck/tests/ppc64/power_ISA2_05.c 2013-01-29 22:14:01 +00:00 (rev 13279)
@@ -101,8 +101,8 @@
FRT2 = -1.0;
base = (unsigned long) &dbl_pair;
offset = (unsigned long) &dbl_pair[1] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("lfdpx 10, 20, 21");
__asm__ volatile ("fmr %0, 10":"=f" (FRT1));
__asm__ volatile ("fmr %0, 11":"=f" (FRT2));
@@ -113,8 +113,8 @@
FRT2 = -16.1024;
base = (unsigned long) &dbl_pair;
offset = (unsigned long) &dbl_pair[2] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("fmr %0, 10":"=f" (FRT1));
__asm__ volatile ("fmr %0, 11":"=f" (FRT2));
__asm__ volatile ("stfdpx 10, 20, 21");
@@ -166,14 +166,14 @@
base = (unsigned long) &arr;
offset = (unsigned long) &arr[1] - base;
- __asm__ volatile ("or 20, 0, %0"::"r" (base));
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 20, %0, 0"::"r" (base));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("lwarx %0, 20, 21, 1":"=r" (RT));
printf("lwarx => %x\n", RT);
#ifdef __powerpc64__
offset = (unsigned long) &arr[1] - base;
- __asm__ volatile ("or 21, 0, %0"::"r" (offset));
+ __asm__ volatile ("ori 21, %0, 0"::"r" (offset));
__asm__ volatile ("ldarx %0, 20, 21, 1":"=r" (RT));
printf("ldarx => %x\n", RT);
#endif
|
|
From: <sv...@va...> - 2013-01-29 21:14:57
|
sewardj 2013-01-29 21:14:46 +0000 (Tue, 29 Jan 2013)
New Revision: 13278
Log:
Increase maximum usable memory amount from 32GB to 64GB on 64-bit Linux.
Modified files:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/memcheck/mc_main.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (+1 -1)
===================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c 2013-01-29 21:13:00 +00:00 (rev 13277)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c 2013-01-29 21:14:46 +00:00 (rev 13278)
@@ -1649,7 +1649,7 @@
aspacem_minAddr = (Addr) 0x04000000; // 64M
# if VG_WORDSIZE == 8
- aspacem_maxAddr = (Addr)0x800000000 - 1; // 32G
+ aspacem_maxAddr = (Addr)0x1000000000ULL - 1; // 64G
# ifdef ENABLE_INNER
{ Addr cse = VG_PGROUNDDN( sp_at_startup ) - 1;
if (aspacem_maxAddr > cse)
Modified: trunk/memcheck/mc_main.c (+7 -7)
===================================================================
--- trunk/memcheck/mc_main.c 2013-01-29 21:13:00 +00:00 (rev 13277)
+++ trunk/memcheck/mc_main.c 2013-01-29 21:14:46 +00:00 (rev 13278)
@@ -167,10 +167,10 @@
#else
-/* Just handle the first 32G fast and the rest via auxiliary
+/* Just handle the first 64G fast and the rest via auxiliary
primaries. If you change this, Memcheck will assert at startup.
See the definition of UNALIGNED_OR_HIGH for extensive comments. */
-# define N_PRIMARY_BITS 19
+# define N_PRIMARY_BITS 20
#endif
@@ -6554,11 +6554,11 @@
tl_assert(sizeof(Addr) == 8);
tl_assert(sizeof(UWord) == 8);
tl_assert(sizeof(Word) == 8);
- tl_assert(MAX_PRIMARY_ADDRESS == 0x7FFFFFFFFULL);
- tl_assert(MASK(1) == 0xFFFFFFF800000000ULL);
- tl_assert(MASK(2) == 0xFFFFFFF800000001ULL);
- tl_assert(MASK(4) == 0xFFFFFFF800000003ULL);
- tl_assert(MASK(8) == 0xFFFFFFF800000007ULL);
+ tl_assert(MAX_PRIMARY_ADDRESS == 0xFFFFFFFFFULL);
+ tl_assert(MASK(1) == 0xFFFFFFF000000000ULL);
+ tl_assert(MASK(2) == 0xFFFFFFF000000001ULL);
+ tl_assert(MASK(4) == 0xFFFFFFF000000003ULL);
+ tl_assert(MASK(8) == 0xFFFFFFF000000007ULL);
# endif
}
|
|
From: <sv...@va...> - 2013-01-29 21:13:09
|
sewardj 2013-01-29 21:13:00 +0000 (Tue, 29 Jan 2013)
New Revision: 13277
Log:
get_otrack_shadow_offset_wrk: amd64: add a (very rare) missing case.
Modified files:
trunk/memcheck/mc_machine.c
Modified: trunk/memcheck/mc_machine.c (+1 -0)
===================================================================
--- trunk/memcheck/mc_machine.c 2013-01-29 21:11:55 +00:00 (rev 13276)
+++ trunk/memcheck/mc_machine.c 2013-01-29 21:13:00 +00:00 (rev 13277)
@@ -593,6 +593,7 @@
if (o == GOF(GS_0x60) && sz == 8) return -1; /* slot unused */
if (o == GOF(TISTART) && sz == 8) return -1; /* slot unused */
if (o == GOF(TILEN) && sz == 8) return -1; /* slot unused */
+ if (o == GOF(NRADDR) && sz == 8) return -1; /* slot unused */
/* Treat %AH, %BH, %CH, %DH as independent registers. To do this
requires finding 4 unused 32-bit slots in the second-shadow
|
|
From: <sv...@va...> - 2013-01-29 21:12:06
|
sewardj 2013-01-29 21:11:55 +0000 (Tue, 29 Jan 2013)
New Revision: 13276
Log:
Non functional change (formatting, comments) related to newly created
Iex_ITE.
Modified files:
trunk/memcheck/mc_translate.c
Modified: trunk/memcheck/mc_translate.c (+5 -5)
===================================================================
--- trunk/memcheck/mc_translate.c 2013-01-29 17:18:56 +00:00 (rev 13275)
+++ trunk/memcheck/mc_translate.c 2013-01-29 21:11:55 +00:00 (rev 13276)
@@ -4260,8 +4260,8 @@
{
IRAtom *vbitsC, *vbits0, *vbits1;
IRType ty;
- /* Given ITE(cond,iftrue,iffalse), generate
- ITE(cond,iftrue#,iffalse#) `UifU` PCast(cond#)
+ /* Given ITE(cond, iftrue, iffalse), generate
+ ITE(cond, iftrue#, iffalse#) `UifU` PCast(cond#)
That is, steer the V bits like the originals, but trash the
result if the steering value is undefined. This gives
lazy propagation. */
@@ -4270,8 +4270,8 @@
tl_assert(isOriginalAtom(mce, iffalse));
vbitsC = expr2vbits(mce, cond);
+ vbits1 = expr2vbits(mce, iftrue);
vbits0 = expr2vbits(mce, iffalse);
- vbits1 = expr2vbits(mce, iftrue);
ty = typeOfIRExpr(mce->sb->tyenv, vbits0);
return
@@ -4339,7 +4339,7 @@
case Iex_ITE:
return expr2vbits_ITE( mce, e->Iex.ITE.cond, e->Iex.ITE.iftrue,
- e->Iex.ITE.iffalse);
+ e->Iex.ITE.iffalse);
default:
VG_(printf)("\n");
@@ -6381,8 +6381,8 @@
}
case Iex_ITE: {
IRAtom* b1 = schemeE( mce, e->Iex.ITE.cond );
+ IRAtom* b3 = schemeE( mce, e->Iex.ITE.iftrue );
IRAtom* b2 = schemeE( mce, e->Iex.ITE.iffalse );
- IRAtom* b3 = schemeE( mce, e->Iex.ITE.iftrue );
return gen_maxU32( mce, b1, gen_maxU32( mce, b2, b3 ));
}
case Iex_Qop: {
|
|
From: <sv...@va...> - 2013-01-29 17:19:05
|
sewardj 2013-01-29 17:18:56 +0000 (Tue, 29 Jan 2013)
New Revision: 13275
Log:
Fix the mkLazy3 case for I32 x I8 x I128 -> I128.
Modified files:
trunk/memcheck/mc_translate.c
Modified: trunk/memcheck/mc_translate.c (+7 -5)
===================================================================
--- trunk/memcheck/mc_translate.c 2013-01-29 04:25:45 +00:00 (rev 13274)
+++ trunk/memcheck/mc_translate.c 2013-01-29 17:18:56 +00:00 (rev 13275)
@@ -1633,14 +1633,16 @@
if (t1 == Ity_I32 && t2 == Ity_I8 && t3 == Ity_I128
&& finalVty == Ity_I128) {
if (0) VG_(printf)("mkLazy3: I32 x I8 x I128 -> I128\n");
- /* Widen 1st and 2nd args to I128. Since 1st arg is typically a rounding
- mode indication which is fully defined, this should get
- folded out later. */
+ /* Use I64 as an intermediate type, which means PCasting all 3
+ args to I64 to start with. 1st arg is typically a rounding
+ mode indication which is fully defined, so we hope that it
+ will get folded out later. */
IRAtom* at1 = mkPCastTo(mce, Ity_I64, va1);
IRAtom* at2 = mkPCastTo(mce, Ity_I64, va2);
- /* Now fold in 2nd and 3rd args. */
+ IRAtom* at3 = mkPCastTo(mce, Ity_I64, va3);
+ /* Now UifU all three together. */
at = mkUifU(mce, Ity_I64, at1, at2); // UifU(PCast(va1), PCast(va2))
- at = mkUifU(mce, Ity_I128, at, va3);
+ at = mkUifU(mce, Ity_I64, at, at3); // ... `UifU` PCast(va3)
/* and PCast once again. */
at = mkPCastTo(mce, Ity_I128, at);
return at;
|
|
From: <sv...@va...> - 2013-01-29 15:42:41
|
petarj 2013-01-29 15:42:29 +0000 (Tue, 29 Jan 2013)
New Revision: 2669
Log:
Follow-up on r2664-r2668 changes for IRExpr_Mux0X and Iex_Mux0X for MIPS32.
Modified files:
trunk/priv/guest_mips_toIR.c
trunk/priv/host_mips_isel.c
Modified: trunk/priv/host_mips_isel.c (+27 -5)
===================================================================
--- trunk/priv/host_mips_isel.c 2013-01-29 03:56:06 +00:00 (rev 2668)
+++ trunk/priv/host_mips_isel.c 2013-01-29 15:42:29 +00:00 (rev 2669)
@@ -1424,7 +1424,7 @@
case Iex_ITE: {
if ((ty == Ity_I8 || ty == Ity_I16 ||
ty == Ity_I32 || ((ty == Ity_I64))) &&
- typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I8) {
+ typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
/*
* r_dst = cond && rX
* cond = not(cond)
@@ -1433,12 +1433,19 @@
*/
HReg r0 = iselWordExpr_R(env, e->Iex.ITE.iffalse);
HReg r1 = iselWordExpr_R(env, e->Iex.ITE.iftrue);
- HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond_1 = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond = newVRegI(env);
+ HReg mask = newVRegI(env);
HReg r_dst = newVRegI(env);
HReg r_tmp = newVRegI(env);
HReg r_tmp1 = newVRegI(env);
HReg r_cond_neg = newVRegI(env);
+ /* r_cond = 0 - r_cond_1 */
+ addInstr(env, MIPSInstr_LI(mask, 0x0));
+ addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
+ mask, MIPSRH_Reg(r_cond_1)));
+
addInstr(env, MIPSInstr_Alu(Malu_AND, r_tmp, r_cond, MIPSRH_Reg(r1)));
addInstr(env, MIPSInstr_Alu(Malu_NOR, r_cond_neg, r_cond,
MIPSRH_Reg(r_cond)));
@@ -1954,17 +1961,25 @@
/* 64-bit ITE */
if (e->tag == Iex_ITE) {
+ vassert(typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1);
HReg expr0Lo, expr0Hi;
HReg expr1Lo, expr1Hi;
HReg tmpHi = newVRegI(env);
HReg tmpLo = newVRegI(env);
HReg tmp1Hi = newVRegI(env);
HReg tmp1Lo = newVRegI(env);
- HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond_1 = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond = newVRegI(env);
HReg r_cond_neg = newVRegI(env);
+ HReg mask = newVRegI(env);
HReg desLo = newVRegI(env);
HReg desHi = newVRegI(env);
+ /* r_cond = 0 - r_cond_1 */
+ addInstr(env, MIPSInstr_LI(mask, 0x0));
+ addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
+ mask, MIPSRH_Reg(r_cond_1)));
+
/* expr0Hi:expr0Lo = iffalse */
/* expr1Hi:expr1Lo = iftrue */
iselInt64Expr(&expr0Hi, &expr0Lo, env, e->Iex.ITE.iffalse);
@@ -2678,11 +2693,13 @@
/* --------- MULTIPLEX --------- */
if (e->tag == Iex_ITE) {
if (ty == Ity_F64
- && typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I8) {
+ && typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse);
HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue);
- HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond_1 = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_cond = newVRegI(env);
HReg r_cond_neg = newVRegI(env);
+ HReg mask = newVRegI(env);
HReg r_dst = newVRegD(env);
HReg r_tmp_lo = newVRegI(env);
HReg r_tmp_hi = newVRegI(env);
@@ -2695,6 +2712,11 @@
HReg r_dst_lo = newVRegI(env);
HReg r_dst_hi = newVRegI(env);
+ /* r_cond = 0 - r_cond_1 */
+ addInstr(env, MIPSInstr_LI(mask, 0x0));
+ addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
+ mask, MIPSRH_Reg(r_cond_1)));
+
sub_from_sp(env, 16); // Move SP down 16 bytes
MIPSAMode *am_addr = MIPSAMode_IR(0, StackPointer(mode64));
Modified: trunk/priv/guest_mips_toIR.c (+64 -92)
===================================================================
--- trunk/priv/guest_mips_toIR.c 2013-01-29 03:56:06 +00:00 (rev 2668)
+++ trunk/priv/guest_mips_toIR.c 2013-01-29 15:42:29 +00:00 (rev 2669)
@@ -320,8 +320,7 @@
#define FP_CONDITIONAL_CODE \
t3 = newTemp(Ity_I32); \
assign(t3, binop(Iop_And32, \
- IRExpr_ITE( unop(Iop_1Uto8, \
- binop(Iop_CmpEQ32, mkU32(cc), mkU32(0))), \
+ IRExpr_ITE( binop(Iop_CmpEQ32, mkU32(cc), mkU32(0)), \
binop(Iop_Shr32, getFCSR(), mkU8(23)), \
binop(Iop_Shr32, getFCSR(), mkU8(24+cc))), \
mkU32(0x1)));
@@ -1381,13 +1380,12 @@
{
DIP("tf: %d, nd: %d\n", tf, nd);
//FcConditionalCode(bc1_cc)
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
t3 = newTemp(Ity_I1);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(bc1_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(bc1_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -1610,16 +1608,14 @@
t1 = newTemp(Ity_F64);
t2 = newTemp(Ity_F64);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
assign(t1, unop(Iop_F32toF64, getFReg(fs)));
assign(t2, unop(Iop_F32toF64, getFReg(fd)));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpNE32, mkU32(0),
- getIReg(rt))));
+ assign(t3, binop(Iop_CmpNE32, mkU32(0), getIReg(rt)));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3), mkexpr(t1), mkexpr(t2)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -1627,13 +1623,11 @@
case 0x11: // D
DIP("movn.d f%d, f%d, r%d", fd, fs, rt);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpNE32, mkU32(0),
- getIReg(rt))));
- putDReg(fd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fs), getDReg(fd)));
+ assign(t3, binop(Iop_CmpNE32, mkU32(0), getIReg(rt)));
+ putDReg(fd, IRExpr_ITE(mkexpr(t3), getDReg(fs), getDReg(fd)));
break;
default:
goto decode_failure;
@@ -1647,15 +1641,13 @@
t1 = newTemp(Ity_F64);
t2 = newTemp(Ity_F64);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
assign(t1, unop(Iop_F32toF64, getFReg(fs)));
assign(t2, unop(Iop_F32toF64, getFReg(fd)));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- getIReg(rt))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t1), mkexpr(t2)));
+ assign(t3, binop(Iop_CmpEQ32, mkU32(0), getIReg(rt)));
+ assign(t4, IRExpr_ITE(mkexpr(t3), mkexpr(t1), mkexpr(t2)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -1664,13 +1656,11 @@
case 0x11: // D
DIP("movz.d f%d, f%d, r%d", fd, fs, rt);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- getIReg(rt))));
- putDReg(fd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fs), getDReg(fd)));
+ assign(t3, binop(Iop_CmpEQ32, mkU32(0), getIReg(rt)));
+ putDReg(fd, IRExpr_ITE(mkexpr(t3), getDReg(fs), getDReg(fd)));
break;
default:
goto decode_failure;
@@ -1684,14 +1674,13 @@
{
case 0x11: // D
DIP("movt.d f%d, f%d, %d", fd, fs, mov_cc);
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -1702,17 +1691,16 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ assign(t3, binop(Iop_CmpEQ32, mkU32(1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3),
getDReg(fd), getDReg(fs)));
putDReg(fd, mkexpr(t4));
break;
case 0x10: // S
DIP("movt.s f%d, f%d, %d", fd, fs, mov_cc);
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
t5 = newTemp(Ity_F64);
t6 = newTemp(Ity_F64);
@@ -1721,9 +1709,8 @@
assign(t5, unop(Iop_F32toF64, getFReg(fs)));
assign(t6, unop(Iop_F32toF64, getFReg(fd)));
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -1734,9 +1721,8 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ assign(t3, binop(Iop_CmpEQ32, mkU32(1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3),
mkexpr(t6), mkexpr(t5)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
@@ -1752,14 +1738,13 @@
{
case 0x11: // D
DIP("movf.d f%d, f%d, %d", fd, fs, mov_cc);
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32,
- mkU32(0), mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -1770,18 +1755,17 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ assign(t3, binop(Iop_CmpEQ32, mkU32(1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3),
getDReg(fs), getDReg(fd)));
putDReg(fd, mkexpr(t4));
break;
case 0x10: // S
DIP("movf.s f%d, f%d, %d", fd, fs, mov_cc);
{
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_F64);
t5 = newTemp(Ity_F64);
t6 = newTemp(Ity_F64);
@@ -1789,9 +1773,8 @@
assign(t5, unop(Iop_F32toF64, getFReg(fs)));
assign(t6, unop(Iop_F32toF64, getFReg(fd)));
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -1802,9 +1785,8 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ assign(t3, binop(Iop_CmpEQ32, mkU32(1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3),
mkexpr(t5), mkexpr(t6)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -2657,7 +2639,7 @@
t2 = newTemp(Ity_I32);
t3 = newTemp(Ity_I64);
t4 = newTemp(Ity_I32);
- t5 = newTemp(Ity_I32);
+ t5 = newTemp(Ity_I1);
t6 = newTemp(Ity_I32);
assign(t1, getHI());
@@ -2667,10 +2649,9 @@
assign(t4, unop(Iop_64to32, mkexpr(t3))); //new lo
//if lo<lo(mul) hi = hi - 1
- assign(t5, unop(Iop_1Sto32, binop(Iop_CmpLT32U, mkexpr(t2),
- mkexpr(t4))));
+ assign(t5, binop(Iop_CmpLT32U, mkexpr(t2), mkexpr(t4)));
- assign(t6, IRExpr_ITE(unop(Iop_32to8, mkexpr(t5)),
+ assign(t6, IRExpr_ITE(mkexpr(t5),
binop(Iop_Sub32, mkexpr(t1), mkU32(0x1)),
mkexpr(t1)));
@@ -2685,7 +2666,7 @@
t2 = newTemp(Ity_I32);
t3 = newTemp(Ity_I64);
t4 = newTemp(Ity_I32);
- t5 = newTemp(Ity_I32);
+ t5 = newTemp(Ity_I1);
t6 = newTemp(Ity_I32);
assign(t1, getHI());
@@ -2695,10 +2676,9 @@
assign(t4, unop(Iop_64to32, mkexpr(t3))); //new lo
//if lo<lo(mul) hi = hi - 1
- assign(t5, unop(Iop_1Sto32, binop(Iop_CmpLT32U, mkexpr(t2),
- mkexpr(t4))));
+ assign(t5, binop(Iop_CmpLT32U, mkexpr(t2), mkexpr(t4)));
- assign(t6, IRExpr_ITE(unop(Iop_32to8, mkexpr(t5)),
+ assign(t6, IRExpr_ITE(mkexpr(t5),
binop(Iop_Sub32, mkexpr(t1), mkU32(0x1)),
mkexpr(t1)));
@@ -2709,10 +2689,9 @@
case 0x20: { /* CLZ */
DIP("clz r%d, r%d", rd, rs);
- t1 = newTemp(Ity_I32);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, getIReg(rs),
- mkU32(0))));
- putIReg(rd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ t1 = newTemp(Ity_I1);
+ assign(t1, binop(Iop_CmpEQ32, getIReg(rs), mkU32(0)));
+ putIReg(rd, IRExpr_ITE(mkexpr(t1),
mkU32(0x00000020),
unop(Iop_Clz32, getIReg(rs))));
break;
@@ -2720,10 +2699,9 @@
case 0x21: { /* CLO */
DIP("clo r%d, r%d", rd, rs);
- t1 = newTemp(Ity_I32);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, getIReg(rs),
- mkU32(0xffffffff))));
- putIReg(rd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ t1 = newTemp(Ity_I1);
+ assign(t1, binop(Iop_CmpEQ32, getIReg(rs), mkU32(0xffffffff)));
+ putIReg(rd, IRExpr_ITE(mkexpr(t1),
mkU32(0x00000020),
unop(Iop_Clz32, unop(Iop_Not32, getIReg(rs)))));
break;
@@ -2875,14 +2853,13 @@
if (tf == 0) { /* MOVF */
DIP("movf r%d, r%d, %d", rd, rs, mov_cc);
{
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_I32);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -2893,23 +2870,20 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- getIReg(rs), getIReg(rd)));
+ assign(t3, binop(Iop_CmpEQ32, mkU32(0), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3), getIReg(rs), getIReg(rd)));
putIReg(rd, mkexpr(t4));
}
} else if (tf == 1) { /* MOVT */
DIP("movt r%d, r%d, %d", rd, rs, mov_cc);
{
- t1 = newTemp(Ity_I32);
+ t1 = newTemp(Ity_I1);
t2 = newTemp(Ity_I32);
- t3 = newTemp(Ity_I32);
+ t3 = newTemp(Ity_I1);
t4 = newTemp(Ity_I32);
- assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
- mkU32(mov_cc))));
- assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ assign(t1, binop(Iop_CmpEQ32, mkU32(0), mkU32(mov_cc)));
+ assign(t2, IRExpr_ITE(mkexpr(t1),
binop(Iop_And32,
binop(Iop_Shr32, getFCSR(),
mkU8(23)),
@@ -2920,10 +2894,8 @@
mkU32(0x1))
));
- assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
- mkexpr(t2))));
- assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
- getIReg(rs), getIReg(rd)));
+ assign(t3, binop(Iop_CmpEQ32, mkU32(1), mkexpr(t2)));
+ assign(t4, IRExpr_ITE(mkexpr(t3), getIReg(rs), getIReg(rd)));
putIReg(rd, mkexpr(t4));
}
}
|
|
From: Tom H. <to...@co...> - 2013-01-29 09:04:07
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2013-01-26 04:17:39 GMT Ended at 2013-01-29 09:03:34 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 == 647 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:03:42
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-52.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2013-01-26 04:13:19 GMT Ended at 2013-01-29 09:03:19 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 == 647 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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 == 647 tests, 6 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-29 08:37:43.432431738 +0000 --- new.short 2013-01-29 09:03:19.360959511 +0000 *************** *** 8,10 **** ! == 647 tests, 6 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 647 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 12,16 **** gdbserver_tests/mcmain_pic (stderr) memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 12,15 ---- gdbserver_tests/mcmain_pic (stderr) + memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:03:32
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-32.fc18) Assembler: GNU assembler version 2.23.51.0.1-3.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2013-01-26 04:14:36 GMT Ended at 2013-01-29 09:03:15 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 == 647 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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 == 647 tests, 3 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-29 08:37:20.556885637 +0000 --- new.short 2013-01-29 09:03:15.140043245 +0000 *************** *** 8,13 **** ! == 647 tests, 3 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 8,12 ---- ! == 647 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:03:23
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2013-01-26 04:19:00 GMT Ended at 2013-01-29 09:03: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 == 647 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (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 == 647 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-29 08:37:15.815979707 +0000 --- new.short 2013-01-29 09:03:02.180300338 +0000 *************** *** 8,12 **** ! == 647 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stderr) --- 8,11 ---- ! == 647 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:03:02
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) GDB: GNU gdb (GDB) Fedora (7.2-52.fc14) Assembler: GNU assembler version 2.20.51.0.7-8.fc14 20100318 C library: GNU C Library stable release version 2.13 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2013-01-26 04:16:09 GMT Ended at 2013-01-29 09:02:42 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 == 645 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:02:46
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2) GDB: Assembler: GNU assembler version 2.20.51.0.2-20.fc13 20091009 C library: GNU C Library stable release version 2.12.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2013-01-26 04:16:26 GMT Ended at 2013-01-29 09:02:32 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 == 627 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (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 == 627 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/fdleak_ipv4 (stderr) helgrind/tests/pth_barrier3 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-29 08:37:22.081855379 +0000 --- new.short 2013-01-29 09:02:32.225894569 +0000 *************** *** 8,11 **** ! == 627 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! none/tests/fdleak_ipv4 (stderr) helgrind/tests/pth_barrier3 (stderr) --- 8,10 ---- ! == 627 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:02:16
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) GDB: Assembler: GNU assembler version 2.19.51.0.14-3.fc11 20090722 C library: GNU C Library stable release version 2.10.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2013-01-26 04:13:19 GMT Ended at 2013-01-29 09:01:43 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 == 627 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-29 09:02:14
|
valgrind revision: 13266 VEX revision: 2661 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2013-01-26 04:16:09 GMT Ended at 2013-01-29 09:01:53 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 == 623 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-29 08:58:40
|
valgrind revision: 13269 VEX revision: 2667 C compiler: gcc (GCC) 4.8.0 20130124 (Red Hat 4.8.0-0.6) GDB: GNU gdb (GDB) Fedora (7.5.50.20130118-2.fc19) Assembler: GNU assembler version 2.23.51.0.8-4.fc19 20121218 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2013-01-27 08:44:14 GMT Ended at 2013-01-29 08:58:24 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 == 647 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/dw4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) |
|
From: Rich C. <rc...@wi...> - 2013-01-29 06:17:37
|
valgrind revision: 13274
VEX revision: 2668
C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
GDB: GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:30:16 UTC 2011)
Assembler:
C library: unknown
uname -mrs: Darwin 10.8.0 i386
Vendor version: unknown
Nightly build on macx86 ( Darwin 10.8.0 i386 )
Started at 2013-01-28 23:35:00 CST
Ended at 2013-01-29 00:17:19 CST
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
== 509 tests, 149 stderr failures, 4 stdout failures, 3 stderrB failures, 3 stdoutB failures, 1 post failure ==
gdbserver_tests/mchelp (stdoutB)
gdbserver_tests/mchelp (stderrB)
gdbserver_tests/mcinvokeRU (stdoutB)
gdbserver_tests/mcinvokeRU (stderrB)
gdbserver_tests/mcinvokeWS (stdoutB)
gdbserver_tests/mcinvokeWS (stderrB)
memcheck/tests/accounting (stderr)
memcheck/tests/badpoll (stderr)
memcheck/tests/big_blocks_freed_list (stderr)
memcheck/tests/bug287260 (stderr)
memcheck/tests/darwin/aio (stderr)
memcheck/tests/darwin/pth-supp (stderr)
memcheck/tests/darwin/scalar (stderr)
memcheck/tests/deep-backtrace (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/leak-delta (stderr)
memcheck/tests/leak-segv-jmp (stderr)
memcheck/tests/lks (stderr)
memcheck/tests/memcmptest (stderr)
memcheck/tests/mismatches (stderr)
memcheck/tests/null_socket (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/overlap (stdout)
memcheck/tests/overlap (stderr)
memcheck/tests/sem (stderr)
memcheck/tests/strchr (stderr)
memcheck/tests/test-plo-no (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/vbit-test/vbit-test (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/writev1 (stderr)
massif/tests/big-alloc (post)
massif/tests/pages_as_heap (stderr)
none/tests/allexec32 (stderr)
none/tests/allexec64 (stderr)
none/tests/async-sigs (stderr)
none/tests/cmdline5 (stderr)
none/tests/execve (stderr)
none/tests/faultstatus (stderr)
none/tests/mmap_fcntl_bug (stderr)
none/tests/nodir (stderr)
none/tests/pth_blockedsig (stderr)
none/tests/require-text-symbol-2 (stderr)
none/tests/rlimit64_nofile (stderr)
none/tests/shell_nosuchfile (stderr)
none/tests/x86/cse_fail (stdout)
helgrind/tests/annotate_hbefore (stderr)
helgrind/tests/annotate_rwlock (stderr)
helgrind/tests/annotate_smart_pointer (stderr)
helgrind/tests/cond_timedwait_invalid (stderr)
helgrind/tests/free_is_write (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/hg06_readshared (stderr)
helgrind/tests/locked_vs_unlocked1_fwd (stderr)
helgrind/tests/locked_vs_unlocked1_rev (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/locked_vs_unlocked3 (stderr)
helgrind/tests/pth_destroy_cond (stderr)
helgrind/tests/rwlock_race (stderr)
helgrind/tests/rwlock_test (stderr)
helgrind/tests/t2t_laog (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc02_simple_tls (stderr)
helgrind/tests/tc03_re_excl (stderr)
helgrind/tests/tc04_free_lock (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc07_hbl1 (stderr)
helgrind/tests/tc08_hbl2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc10_rec_lock (stderr)
helgrind/tests/tc11_XCHG (stderr)
helgrind/tests/tc12_rwl_trivial (stderr)
helgrind/tests/tc13_laog1 (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc15_laog_lockdel (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
helgrind/tests/tc24_nonzero_sem (stderr)
drd/tests/annotate_barrier (stderr)
drd/tests/annotate_barrier_xml (stderr)
drd/tests/annotate_hb_race (stderr)
drd/tests/annotate_hbefore (stderr)
drd/tests/annotate_ignore_read (stderr)
drd/tests/annotate_ignore_rw (stderr)
drd/tests/annotate_ignore_rw2 (stderr)
drd/tests/annotate_ignore_write (stderr)
drd/tests/annotate_ignore_write2 (stderr)
drd/tests/annotate_order_1 (stderr)
drd/tests/annotate_order_2 (stderr)
drd/tests/annotate_order_3 (stderr)
drd/tests/annotate_rwlock (stderr)
drd/tests/annotate_smart_pointer (stderr)
drd/tests/annotate_smart_pointer2 (stderr)
drd/tests/annotate_spinlock (stderr)
drd/tests/annotate_static (stderr)
drd/tests/atomic_var (stderr)
drd/tests/bug-235681 (stderr)
drd/tests/circular_buffer (stderr)
drd/tests/fp_race (stderr)
drd/tests/fp_race2 (stderr)
drd/tests/fp_race_xml (stderr)
drd/tests/free_is_write (stderr)
drd/tests/free_is_write2 (stderr)
drd/tests/hg01_all_ok (stderr)
drd/tests/hg02_deadlock (stderr)
drd/tests/hg03_inherit (stderr)
drd/tests/hg04_race (stderr)
drd/tests/hg05_race2 (stderr)
drd/tests/hg06_readshared (stderr)
drd/tests/linuxthreads_det (stderr)
drd/tests/monitor_example (stderr)
drd/tests/pth_broadcast (stderr)
drd/tests/pth_cleanup_handler (stderr)
drd/tests/pth_cond_destroy_busy (stderr)
drd/tests/pth_cond_race (stderr)
drd/tests/pth_cond_race2 (stderr)
drd/tests/pth_cond_race3 (stderr)
drd/tests/pth_create_chain (stderr)
drd/tests/pth_detached3 (stderr)
drd/tests/pth_inconsistent_cond_wait (stderr)
drd/tests/pth_once (stderr)
drd/tests/read_and_free_race (stderr)
drd/tests/rwlock_race (stderr)
drd/tests/rwlock_test (stderr)
drd/tests/sem_open (stderr)
drd/tests/sem_open2 (stderr)
drd/tests/sem_open3 (stderr)
drd/tests/sem_open_traced (stderr)
drd/tests/sem_wait (stderr)
drd/tests/sigalrm (stderr)
drd/tests/tc01_simple_race (stderr)
drd/tests/tc02_simple_tls (stderr)
drd/tests/tc03_re_excl (stderr)
drd/tests/tc05_simple_race (stderr)
drd/tests/tc06_two_races (stderr)
drd/tests/tc07_hbl1 (stderr)
drd/tests/tc08_hbl2 (stderr)
drd/tests/tc09_bad_unlock (stderr)
drd/tests/tc11_XCHG (stderr)
drd/tests/tc16_byterace (stderr)
drd/tests/tc17_sembar (stderr)
drd/tests/tc19_shadowmem (stderr)
drd/tests/tc21_pthonce (stderr)
drd/tests/tc23_bogus_condwait (stderr)
drd/tests/thread_name (stderr)
drd/tests/thread_name_xml (stderr)
drd/tests/threaded-fork (stderr)
drd/tests/unit_bitmap (stderr)
drd/tests/unit_vc (stderr)
=================================================
./valgrind-new/drd/tests/annotate_barrier.stderr.diff
=================================================
--- annotate_barrier.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_barrier.stderr.out 2013-01-29 00:14:10.000000000 -0600
@@ -37,6 +37,117 @@
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 1:
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_barrier_xml.stderr.diff
=================================================
--- annotate_barrier_xml.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_barrier_xml.stderr.out 2013-01-29 00:14:11.000000000 -0600
@@ -188,7 +188,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
</stack>
<auxwhat>Address 0x........ is at offset 0 from 0x.........</auxwhat>
@@ -258,6 +258,549 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>new_sem_from_pool</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>new_sem_from_pool</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_hb_race.stderr.diff
=================================================
--- annotate_hb_race.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_hb_race.stderr.out 2013-01-29 00:14:13.000000000 -0600
@@ -3,6 +3,60 @@
at 0x........: main (annotate_hb_race.c:?)
Allocation context: BSS section of annotate_hb_race
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_hbefore.stderr.diff
=================================================
--- annotate_hbefore.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_hbefore.stderr.out 2013-01-29 00:14:15.000000000 -0600
@@ -1,3 +1,44 @@
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_read.stderr.diff
=================================================
--- annotate_ignore_read.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_ignore_read.stderr.out 2013-01-29 00:14:16.000000000 -0600
@@ -1,6 +1,159 @@
FLAGS [phb=1, fm=0]
test69: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw.stderr.diff
=================================================
--- annotate_ignore_rw.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_ignore_rw.stderr.out 2013-01-29 00:14:18.000000000 -0600
@@ -4,6 +4,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw2.stderr.diff
=================================================
--- annotate_ignore_rw2.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_ignore_rw2.stderr.out 2013-01-29 00:14:20.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write.stderr.diff
=================================================
--- annotate_ignore_write.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_ignore_write.stderr.out 2013-01-29 00:14:21.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write2.stderr.diff
=================================================
--- annotate_ignore_write2.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_ignore_write2.stderr.out 2013-01-29 00:14:22.000000000 -0600
@@ -19,6 +19,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_1.stderr.diff
=================================================
--- annotate_order_1.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_order_1.stderr.out 2013-01-29 00:14:23.000000000 -0600
@@ -1,6 +1,18 @@
FLAGS [phb=1, fm=0]
test03: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: ThreadPool::~ThreadPool() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: test03::Waiter() (tsan_unittest.cpp:?)
+ by 0x........: test03::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=2
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_2.stderr.diff
=================================================
--- annotate_order_2.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_order_2.stderr.out 2013-01-29 00:14:25.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test30: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=47
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_3.stderr.diff
=================================================
--- annotate_order_3.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_order_3.stderr.out 2013-01-29 00:14:27.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test31: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=48
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_rwlock.stderr.diff
=================================================
--- annotate_rwlock.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_rwlock.stderr.out 2013-01-29 00:14:32.000000000 -0600
@@ -1,4 +1,58 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Address 0x........ is at offset 36 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer.stderr.diff
=================================================
--- annotate_smart_pointer.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_smart_pointer.stderr.out 2013-01-29 00:14:42.000000000 -0600
@@ -1,4 +1,64 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset 196 from 0x......... Allocation context:
+ at 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer2.stderr.diff
=================================================
--- annotate_smart_pointer2.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_smart_pointer2.stderr.out 2013-01-29 00:14:43.000000000 -0600
@@ -5,9 +5,71 @@
by 0x........: smart_ptr<counter>::operator=(counter*) (annotate_smart_pointer.cpp:?)
by 0x........: main (annotate_smart_pointer.cpp:?)
Address 0x........ is at offset ... from 0x......... Allocation context:
- at 0x........: ...operator new... (vg_replace_malloc.c:...)
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib)
by 0x........: main (annotate_smart_pointer.cpp:?)
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset ... from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_spinlock.stderr.diff
=================================================
--- annotate_spinlock.stderr.exp 2013-01-28 23:56:30.000000000 -0600
+++ annotate_spinlock.stderr.out 2013-01-29 00:14:45.000000000 -0600
@@ -1,6 +1,88 @@
FLAGS [phb=1, fm=0]
test27: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........:...
[truncated message content] |
|
From: Philippe W. <phi...@sk...> - 2013-01-29 04:31:13
|
valgrind revision: 13273 VEX revision: 2668 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-52.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.6.11-5.fc17.ppc64 ppc64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on gcc110 ( Fedora release 17 (Beefy Miracle), ppc64 ) Started at 2013-01-28 20:00:06 PST Ended at 2013-01-28 20:29:22 PST 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 == 548 tests, 35 stderr failures, 5 stdout failures, 0 stderrB failures, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc32/power_ISA2_05 (stdout) memcheck/tests/ppc32/power_ISA2_05 (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/ppc64/power_ISA2_05 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: <sv...@va...> - 2013-01-29 04:25:57
|
florian 2013-01-29 04:25:45 +0000 (Tue, 29 Jan 2013)
New Revision: 13274
Log:
Fix a buffer overflow in VG_(assert_fail).
Patch by Matthias Schwarzott (zz...@ge...) with some minor mods.
Fixes BZ 313811
Modified files:
trunk/NEWS
trunk/coregrind/m_libcassert.c
Modified: trunk/coregrind/m_libcassert.c (+8 -2)
===================================================================
--- trunk/coregrind/m_libcassert.c 2013-01-29 03:57:40 +00:00 (rev 13273)
+++ trunk/coregrind/m_libcassert.c 2013-01-29 04:25:45 +00:00 (rev 13274)
@@ -271,9 +271,10 @@
Int line, const HChar* fn, const HChar* format, ... )
{
va_list vargs;
- HChar buf[256];
+ HChar buf[512];
const HChar* component;
const HChar* bugs_to;
+ UInt written;
static Bool entered = False;
if (entered)
@@ -281,9 +282,14 @@
entered = True;
va_start(vargs, format);
- VG_(vsprintf) ( buf, format, vargs );
+ written = VG_(vsnprintf) ( buf, sizeof(buf), format, vargs );
va_end(vargs);
+ if (written >= sizeof(buf)) {
+ VG_(printf)("\nvalgrind: %s: buf is too small, sizeof(buf) = %u, "
+ "written = %d\n", __func__, (unsigned)sizeof(buf), written);
+ }
+
if (isCore) {
component = "valgrind";
bugs_to = VG_BUGS_TO;
Modified: trunk/NEWS (+1 -0)
===================================================================
--- trunk/NEWS 2013-01-29 03:57:40 +00:00 (rev 13273)
+++ trunk/NEWS 2013-01-29 04:25:45 +00:00 (rev 13274)
@@ -85,6 +85,7 @@
310931 [390] s390x: Message-security assist (MSA) instruction extension not implemented
312913 [390] Dangling pointers error should also report the alloc stack trace
312980 [390] Building on Mountain Lion generates some compiler warnings
+313811 [390] Buffer overflow in assert_fail
n-i-bz [390] report error for vgdb snapshot requested before execution
n-i-bz [390] Some wrong command line options could be ignored
n-i-bz [390] same as 303624 (fixed in 3.8.0), but for x86 android
|
|
From: <sv...@va...> - 2013-01-29 03:57:52
|
florian 2013-01-29 03:57:40 +0000 (Tue, 29 Jan 2013)
New Revision: 13273
Log:
Infrastructure cleanup part 2. valgrind side changes.
Replace Iex_Mux0X with Iex_ITE (if-then-else).
Companion patch to VEX r2668.
Modified files:
trunk/lackey/lk_main.c
trunk/memcheck/mc_translate.c
Modified: trunk/lackey/lk_main.c (+1 -1)
===================================================================
--- trunk/lackey/lk_main.c 2013-01-28 15:17:52 +00:00 (rev 13272)
+++ trunk/lackey/lk_main.c 2013-01-29 03:57:40 +00:00 (rev 13273)
@@ -785,7 +785,7 @@
case Iex_Binop:
case Iex_Triop:
case Iex_Qop:
- case Iex_Mux0X:
+ case Iex_ITE:
instrument_detail( sbOut, OpAlu, type, NULL/*guard*/ );
break;
default:
Modified: trunk/memcheck/mc_translate.c (+37 -37)
===================================================================
--- trunk/memcheck/mc_translate.c 2013-01-28 15:17:52 +00:00 (rev 13272)
+++ trunk/memcheck/mc_translate.c 2013-01-29 03:57:40 +00:00 (rev 13273)
@@ -1383,7 +1383,7 @@
cond = assignNew('V', mce, Ity_I1, guard);
iffalse = assignNew('V', mce, ty,
IRExpr_Get(offset + mce->layout->total_sizeB, ty));
- vatom = assignNew('V', mce, ty, IRExpr_Mux0X(cond, iffalse, vatom));
+ vatom = assignNew('V', mce, ty, IRExpr_ITE(cond, vatom, iffalse));
}
stmt( 'V', mce, IRStmt_Put( offset + mce->layout->total_sizeB, vatom ));
}
@@ -4205,7 +4205,7 @@
/* If the guard evaluates to True, this will hold the loaded V bits
at TY. If the guard evaluates to False, this will be all
ones, meaning "all undefined", in which case we will have to
- replace it using a Mux0X below. */
+ replace it using an ITE below. */
IRAtom* iftrue1
= assignNew('V', mce, ty,
expr2vbits_Load(mce, end, ty, addr, bias, guard));
@@ -4215,8 +4215,8 @@
pre-widened part as being marked all-undefined, and in the best
case (signed widening) mark the whole widened result as
undefined. Anyway, it doesn't matter really, since in this case
- we will replace said value with the default value |valt| using a
- Mux0X. */
+ we will replace said value with the default value |valt| using an
+ ITE. */
IRAtom* iftrue2
= vwiden == Iop_INVALID
? iftrue1
@@ -4225,12 +4225,12 @@
place. */
IRAtom* iffalse
= valt;
- /* Prepare the cond for the Mux0X. Convert a NULL cond into
+ /* Prepare the cond for the ITE. Convert a NULL cond into
something that iropt knows how to fold out later. */
IRAtom* cond
= guard == NULL ? mkU1(1) : guard;
/* And assemble the final result. */
- return assignNew('V', mce, tyWide, IRExpr_Mux0X(cond, iffalse, iftrue2));
+ return assignNew('V', mce, tyWide, IRExpr_ITE(cond, iftrue2, iffalse));
}
@@ -4253,28 +4253,28 @@
static
-IRAtom* expr2vbits_Mux0X ( MCEnv* mce,
- IRAtom* cond, IRAtom* expr0, IRAtom* exprX )
+IRAtom* expr2vbits_ITE ( MCEnv* mce,
+ IRAtom* cond, IRAtom* iftrue, IRAtom* iffalse )
{
- IRAtom *vbitsC, *vbits0, *vbitsX;
+ IRAtom *vbitsC, *vbits0, *vbits1;
IRType ty;
- /* Given Mux0X(cond,expr0,exprX), generate
- Mux0X(cond,expr0#,exprX#) `UifU` PCast(cond#)
+ /* Given ITE(cond,iftrue,iffalse), generate
+ ITE(cond,iftrue#,iffalse#) `UifU` PCast(cond#)
That is, steer the V bits like the originals, but trash the
result if the steering value is undefined. This gives
lazy propagation. */
tl_assert(isOriginalAtom(mce, cond));
- tl_assert(isOriginalAtom(mce, expr0));
- tl_assert(isOriginalAtom(mce, exprX));
+ tl_assert(isOriginalAtom(mce, iftrue));
+ tl_assert(isOriginalAtom(mce, iffalse));
vbitsC = expr2vbits(mce, cond);
- vbits0 = expr2vbits(mce, expr0);
- vbitsX = expr2vbits(mce, exprX);
+ vbits0 = expr2vbits(mce, iffalse);
+ vbits1 = expr2vbits(mce, iftrue);
ty = typeOfIRExpr(mce->sb->tyenv, vbits0);
return
mkUifU(mce, ty, assignNew('V', mce, ty,
- IRExpr_Mux0X(cond, vbits0, vbitsX)),
+ IRExpr_ITE(cond, vbits1, vbits0)),
mkPCastTo(mce, ty, vbitsC) );
}
@@ -4335,9 +4335,9 @@
e->Iex.CCall.retty,
e->Iex.CCall.cee );
- case Iex_Mux0X:
- return expr2vbits_Mux0X( mce, e->Iex.Mux0X.cond, e->Iex.Mux0X.expr0,
- e->Iex.Mux0X.exprX);
+ case Iex_ITE:
+ return expr2vbits_ITE( mce, e->Iex.ITE.cond, e->Iex.ITE.iftrue,
+ e->Iex.ITE.iffalse);
default:
VG_(printf)("\n");
@@ -4747,7 +4747,7 @@
iftrue = assignNew('V', mce, tySrc, shadow_GET(mce, gOff, tySrc));
iffalse = assignNew('V', mce, tySrc, definedOfType(tySrc));
src = assignNew('V', mce, tySrc,
- IRExpr_Mux0X(cond, iffalse, iftrue));
+ IRExpr_ITE(cond, iftrue, iffalse));
here = mkPCastTo( mce, Ity_I32, src );
curr = mkUifU32(mce, here, curr);
@@ -5557,10 +5557,10 @@
|| isBogusAtom(e->Iex.Qop.details->arg2)
|| isBogusAtom(e->Iex.Qop.details->arg3)
|| isBogusAtom(e->Iex.Qop.details->arg4);
- case Iex_Mux0X:
- return isBogusAtom(e->Iex.Mux0X.cond)
- || isBogusAtom(e->Iex.Mux0X.expr0)
- || isBogusAtom(e->Iex.Mux0X.exprX);
+ case Iex_ITE:
+ return isBogusAtom(e->Iex.ITE.cond)
+ || isBogusAtom(e->Iex.ITE.iftrue)
+ || isBogusAtom(e->Iex.ITE.iffalse);
case Iex_Load:
return isBogusAtom(e->Iex.Load.addr);
case Iex_CCall:
@@ -5982,10 +5982,10 @@
&& sameIRValue(e1->Iex.Unop.arg, e2->Iex.Unop.arg);
case Iex_RdTmp:
return e1->Iex.RdTmp.tmp == e2->Iex.RdTmp.tmp;
- case Iex_Mux0X:
- return sameIRValue( e1->Iex.Mux0X.cond, e2->Iex.Mux0X.cond )
- && sameIRValue( e1->Iex.Mux0X.expr0, e2->Iex.Mux0X.expr0 )
- && sameIRValue( e1->Iex.Mux0X.exprX, e2->Iex.Mux0X.exprX );
+ case Iex_ITE:
+ return sameIRValue( e1->Iex.ITE.cond, e2->Iex.ITE.cond )
+ && sameIRValue( e1->Iex.ITE.iftrue, e2->Iex.ITE.iftrue )
+ && sameIRValue( e1->Iex.ITE.iffalse, e2->Iex.ITE.iffalse );
case Iex_Qop:
case Iex_Triop:
case Iex_CCall:
@@ -6218,7 +6218,7 @@
/* If the guard evaluates to True, this will hold the loaded
origin. If the guard evaluates to False, this will be zero,
meaning "unknown origin", in which case we will have to replace
- it using a Mux0X below. */
+ it using an ITE below. */
IRAtom* iftrue
= assignNew('B', mce, Ity_I32,
gen_guarded_load_b(mce, sizeofIRType(ty),
@@ -6227,12 +6227,12 @@
place. */
IRAtom* iffalse
= balt;
- /* Prepare the cond for the Mux0X. Convert a NULL cond into
+ /* Prepare the cond for the ITE. Convert a NULL cond into
something that iropt knows how to fold out later. */
IRAtom* cond
= guard == NULL ? mkU1(1) : guard;
/* And assemble the final result. */
- return assignNew('B', mce, Ity_I32, IRExpr_Mux0X(cond, iffalse, iftrue));
+ return assignNew('B', mce, Ity_I32, IRExpr_ITE(cond, iftrue, iffalse));
}
@@ -6377,10 +6377,10 @@
tl_assert(mce->hWordTy == Ity_I32 || mce->hWordTy == Ity_I64);
return gen_load_b( mce, dszB, e->Iex.Load.addr, 0 );
}
- case Iex_Mux0X: {
- IRAtom* b1 = schemeE( mce, e->Iex.Mux0X.cond );
- IRAtom* b2 = schemeE( mce, e->Iex.Mux0X.expr0 );
- IRAtom* b3 = schemeE( mce, e->Iex.Mux0X.exprX );
+ case Iex_ITE: {
+ IRAtom* b1 = schemeE( mce, e->Iex.ITE.cond );
+ IRAtom* b2 = schemeE( mce, e->Iex.ITE.iffalse );
+ IRAtom* b3 = schemeE( mce, e->Iex.ITE.iftrue );
return gen_maxU32( mce, b1, gen_maxU32( mce, b2, b3 ));
}
case Iex_Qop: {
@@ -6511,7 +6511,7 @@
+ 2*mce->layout->total_sizeB,
Ity_I32));
here = assignNew( 'B', mce, Ity_I32,
- IRExpr_Mux0X(cond, iffalse, iftrue));
+ IRExpr_ITE(cond, iftrue, iffalse));
curr = gen_maxU32( mce, curr, here );
}
gSz -= n;
@@ -6610,7 +6610,7 @@
2*mce->layout->total_sizeB,
Ity_I32));
curr = assignNew('V', mce, Ity_I32,
- IRExpr_Mux0X(cond, iffalse, curr));
+ IRExpr_ITE(cond, curr, iffalse));
stmt( 'B', mce, IRStmt_Put(b_offset
+ 2*mce->layout->total_sizeB,
|
|
From: <sv...@va...> - 2013-01-29 03:56:21
|
florian 2013-01-29 03:56:06 +0000 (Tue, 29 Jan 2013)
New Revision: 2668
Log:
Infrastructure cleanup part 2.
Replace Iex_Mux0X with Iex_ITE (if-then-else)
and
IRExpr_Mux0X( cond, iffalse, iftrue ) with
IRExpr_ITE ( cond, iftrue, iffalse );
Modified files:
trunk/priv/guest_amd64_toIR.c
trunk/priv/guest_arm_helpers.c
trunk/priv/guest_arm_toIR.c
trunk/priv/guest_mips_toIR.c
trunk/priv/guest_ppc_toIR.c
trunk/priv/guest_s390_toIR.c
trunk/priv/guest_x86_toIR.c
trunk/priv/host_amd64_isel.c
trunk/priv/host_arm_isel.c
trunk/priv/host_mips_isel.c
trunk/priv/host_ppc_isel.c
trunk/priv/host_s390_isel.c
trunk/priv/host_x86_isel.c
trunk/priv/ir_defs.c
trunk/priv/ir_opt.c
trunk/pub/libvex_ir.h
trunk/test_main.c
Modified: trunk/priv/guest_ppc_toIR.c (+117 -116)
===================================================================
--- trunk/priv/guest_ppc_toIR.c 2013-01-26 20:28:00 +00:00 (rev 2667)
+++ trunk/priv/guest_ppc_toIR.c 2013-01-29 03:56:06 +00:00 (rev 2668)
@@ -797,15 +797,15 @@
assign( hi32, unop(Iop_64HIto32, t64));
assign( lo32, unop(Iop_64to32, t64));
- return IRExpr_Mux0X(
+ return IRExpr_ITE(
/* if (hi32 == (lo32 >>s 31)) */
binop(Iop_CmpEQ32, mkexpr(hi32),
binop( Iop_Sar32, mkexpr(lo32), mkU8(31))),
+ /* then: within signed-32 range: lo half good enough */
+ mkexpr(lo32),
/* else: sign dep saturate: 1->0x80000000, 0->0x7FFFFFFF */
binop(Iop_Add32, mkU32(0x7FFFFFFF),
- binop(Iop_Shr32, mkexpr(hi32), mkU8(31))),
- /* then: within signed-32 range: lo half good enough */
- mkexpr(lo32) );
+ binop(Iop_Shr32, mkexpr(hi32), mkU8(31))));
}
/* Unsigned saturating narrow 64S to 32 */
@@ -819,13 +819,13 @@
assign( hi32, unop(Iop_64HIto32, t64));
assign( lo32, unop(Iop_64to32, t64));
- return IRExpr_Mux0X(
+ return IRExpr_ITE(
/* if (top 32 bits of t64 are 0) */
binop(Iop_CmpEQ32, mkexpr(hi32), mkU32(0)),
+ /* then: within unsigned-32 range: lo half good enough */
+ mkexpr(lo32),
/* else: positive saturate -> 0xFFFFFFFF */
- mkU32(0xFFFFFFFF),
- /* then: within unsigned-32 range: lo half good enough */
- mkexpr(lo32) );
+ mkU32(0xFFFFFFFF));
}
/* Signed saturate narrow 64->32, combining to V128 */
@@ -1446,13 +1446,13 @@
binop(Iop_Shl32, src, mask),
binop(Iop_Shr32, src, binop(Iop_Sub8, mkU8(32), mask)));
}
- /* Note: the MuxOX is not merely an optimisation; it's needed
+ /* Note: the ITE not merely an optimisation; it's needed
because otherwise the Shr is a shift by the word size when
mask denotes zero. For rotates by immediates, a lot of
this junk gets folded out. */
- return IRExpr_Mux0X( binop(Iop_CmpNE8, mask, mkU8(0)),
- /* zero rotate */ src,
- /* non-zero rotate */ rot );
+ return IRExpr_ITE( binop(Iop_CmpNE8, mask, mkU8(0)),
+ /* non-zero rotate */ rot,
+ /* zero rotate */ src);
}
/* Standard effective address calc: (rA + rB) */
@@ -2229,13 +2229,13 @@
)
);
xer_ca
- = IRExpr_Mux0X(
+ = IRExpr_ITE(
/* shift amt > 31 ? */
binop(Iop_CmpLT32U, mkU32(31), argR),
+ /* yes -- get sign bit of argL */
+ binop(Iop_Shr32, argL, mkU8(31)),
/* no -- be like srawi */
- unop(Iop_1Uto32, binop(Iop_CmpNE32, xer_ca, mkU32(0))),
- /* yes -- get sign bit of argL */
- binop(Iop_Shr32, argL, mkU8(31))
+ unop(Iop_1Uto32, binop(Iop_CmpNE32, xer_ca, mkU32(0)))
);
break;
@@ -2349,14 +2349,14 @@
)
);
xer_ca
- = IRExpr_Mux0X(
+ = IRExpr_ITE(
/* shift amt > 31 ? */
binop(Iop_CmpLT64U, mkU64(31), argR),
+ /* yes -- get sign bit of argL */
+ unop(Iop_64to32, binop(Iop_Shr64, argL, mkU8(63))),
/* no -- be like srawi */
- unop(Iop_1Uto32, binop(Iop_CmpNE64, xer_ca, mkU64(0))),
- /* yes -- get sign bit of argL */
- unop(Iop_64to32, binop(Iop_Shr64, argL, mkU8(63)))
- );
+ unop(Iop_1Uto32, binop(Iop_CmpNE64, xer_ca, mkU64(0)))
+ );
break;
case /* 11 */ PPCG_FLAG_OP_SRAWI:
@@ -2403,13 +2403,13 @@
)
);
xer_ca
- = IRExpr_Mux0X(
+ = IRExpr_ITE(
/* shift amt > 63 ? */
binop(Iop_CmpLT64U, mkU64(63), argR),
+ /* yes -- get sign bit of argL */
+ unop(Iop_64to32, binop(Iop_Shr64, argL, mkU8(63))),
/* no -- be like sradi */
- unop(Iop_1Uto32, binop(Iop_CmpNE64, xer_ca, mkU64(0))),
- /* yes -- get sign bit of argL */
- unop(Iop_64to32, binop(Iop_Shr64, argL, mkU8(63)))
+ unop(Iop_1Uto32, binop(Iop_CmpNE64, xer_ca, mkU64(0)))
);
break;
@@ -3855,9 +3855,9 @@
// Iop_Clz32 undefined for arg==0, so deal with that case:
irx = binop(Iop_CmpNE32, lo32, mkU32(0));
assign(rA, mkWidenFrom32(ty,
- IRExpr_Mux0X( irx,
- mkU32(32),
- unop(Iop_Clz32, lo32)),
+ IRExpr_ITE( irx,
+ unop(Iop_Clz32, lo32),
+ mkU32(32)),
False));
// TODO: alternatively: assign(rA, verbose_Clz32(rS));
@@ -3962,9 +3962,9 @@
flag_rC ? ".":"", rA_addr, rS_addr);
// Iop_Clz64 undefined for arg==0, so deal with that case:
irx = binop(Iop_CmpNE64, mkexpr(rS), mkU64(0));
- assign(rA, IRExpr_Mux0X( irx,
- mkU64(64),
- unop(Iop_Clz64, mkexpr(rS)) ));
+ assign(rA, IRExpr_ITE( irx,
+ unop(Iop_Clz64, mkexpr(rS)),
+ mkU64(64) ));
// TODO: alternatively: assign(rA, verbose_Clz64(rS));
break;
@@ -6095,9 +6095,9 @@
e_tmp = binop( Iop_Sar32,
mkexpr(rS_lo32),
unop( Iop_32to8,
- IRExpr_Mux0X( mkexpr(outofrange),
- mkexpr(sh_amt),
- mkU32(31)) ) );
+ IRExpr_ITE( mkexpr(outofrange),
+ mkU32(31),
+ mkexpr(sh_amt)) ) );
assign( rA, mkWidenFrom32(ty, e_tmp, /* Signed */True) );
set_XER_CA( ty, PPCG_FLAG_OP_SRAW,
@@ -6193,9 +6193,9 @@
binop( Iop_Sar64,
mkexpr(rS),
unop( Iop_64to8,
- IRExpr_Mux0X( mkexpr(outofrange),
- mkexpr(sh_amt),
- mkU64(63)) ))
+ IRExpr_ITE( mkexpr(outofrange),
+ mkU64(63),
+ mkexpr(sh_amt)) ))
);
set_XER_CA( ty, PPCG_FLAG_OP_SRAD,
mkexpr(rA), mkexpr(rS), mkexpr(sh_amt),
@@ -7373,10 +7373,10 @@
// frD = (frA >= 0.0) ? frC : frB
// = (cc_b0 == 0) ? frC : frB
assign( frD,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpEQ32, mkexpr(cc_b0), mkU32(0)),
- mkexpr(frB),
- mkexpr(frC) ));
+ mkexpr(frC),
+ mkexpr(frB) ));
/* One of the rare ones which don't mess with FPRF */
set_FPRF = False;
@@ -8258,14 +8258,15 @@
/* need to preserve sign of zero */
/* frD = (fabs(frB) > 9e18) ? frB :
(sign(frB)) ? -fabs((double)r_tmp64) : (double)r_tmp64 */
- assign(frD, IRExpr_Mux0X(
+ assign(frD, IRExpr_ITE(
binop(Iop_CmpNE8,
unop(Iop_32to8,
binop(Iop_CmpF64,
IRExpr_Const(IRConst_F64(9e18)),
unop(Iop_AbsF64, mkexpr(frB)))),
mkU8(0)),
- IRExpr_Mux0X(
+ mkexpr(frB),
+ IRExpr_ITE(
binop(Iop_CmpNE32,
binop(Iop_Shr32,
unop(Iop_64HIto32,
@@ -8273,13 +8274,12 @@
mkexpr(frB))),
mkU8(31)),
mkU32(0)),
- binop(Iop_I64StoF64, mkU32(0), mkexpr(r_tmp64) ),
unop(Iop_NegF64,
unop( Iop_AbsF64,
binop(Iop_I64StoF64, mkU32(0),
- mkexpr(r_tmp64)) ))
- ),
- mkexpr(frB)
+ mkexpr(r_tmp64)) )),
+ binop(Iop_I64StoF64, mkU32(0), mkexpr(r_tmp64) )
+ )
));
break;
@@ -11839,26 +11839,26 @@
assign( res1, unop(Iop_64HIto32, mkexpr(lo64)) );
assign( res0, unop(Iop_64to32, mkexpr(lo64)) );
- b3_result = IRExpr_Mux0X(is_NaN_32(b3),
- // else: result is from the Iop_QFtoI32{s|u}x4_RZ
- mkexpr(res3),
- // then: result is 0x{8|0}80000000
- mkU32(un_signed ? 0x00000000 : 0x80000000));
- b2_result = IRExpr_Mux0X(is_NaN_32(b2),
- // else: result is from the Iop_QFtoI32{s|u}x4_RZ
- mkexpr(res2),
- // then: result is 0x{8|0}80000000
- mkU32(un_signed ? 0x00000000 : 0x80000000));
- b1_result = IRExpr_Mux0X(is_NaN_32(b1),
- // else: result is from the Iop_QFtoI32{s|u}x4_RZ
- mkexpr(res1),
- // then: result is 0x{8|0}80000000
- mkU32(un_signed ? 0x00000000 : 0x80000000));
- b0_result = IRExpr_Mux0X(is_NaN_32(b0),
- // else: result is from the Iop_QFtoI32{s|u}x4_RZ
- mkexpr(res0),
- // then: result is 0x{8|0}80000000
- mkU32(un_signed ? 0x00000000 : 0x80000000));
+ b3_result = IRExpr_ITE(is_NaN_32(b3),
+ // then: result is 0x{8|0}80000000
+ mkU32(un_signed ? 0x00000000 : 0x80000000),
+ // else: result is from the Iop_QFtoI32{s|u}x4_RZ
+ mkexpr(res3));
+ b2_result = IRExpr_ITE(is_NaN_32(b2),
+ // then: result is 0x{8|0}80000000
+ mkU32(un_signed ? 0x00000000 : 0x80000000),
+ // else: result is from the Iop_QFtoI32{s|u}x4_RZ
+ mkexpr(res2));
+ b1_result = IRExpr_ITE(is_NaN_32(b1),
+ // then: result is 0x{8|0}80000000
+ mkU32(un_signed ? 0x00000000 : 0x80000000),
+ // else: result is from the Iop_QFtoI32{s|u}x4_RZ
+ mkexpr(res1));
+ b0_result = IRExpr_ITE(is_NaN_32(b0),
+ // then: result is 0x{8|0}80000000
+ mkU32(un_signed ? 0x00000000 : 0x80000000),
+ // else: result is from the Iop_QFtoI32{s|u}x4_RZ
+ mkexpr(res0));
putVSReg( XT,
binop( Iop_64HLtoV128,
@@ -12781,19 +12781,19 @@
#define SNAN_MASK 0x0008000000000000ULL
return
- IRExpr_Mux0X(mkexpr(frA_isSNaN),
- /* else: if frB is a SNaN */
- IRExpr_Mux0X(mkexpr(frB_isSNaN),
- /* else: if frB is a QNaN */
- IRExpr_Mux0X(mkexpr(frB_isQNaN),
- /* else: frA is a QNaN, so result = frB */
- mkexpr(frB_I64),
- /* then: result = frA */
- mkexpr(frA_I64)),
- /* then: result = frB converted to QNaN */
- binop(Iop_Or64, mkexpr(frB_I64), mkU64(SNAN_MASK))),
- /* then: result = frA converted to QNaN */
- binop(Iop_Or64, mkexpr(frA_I64), mkU64(SNAN_MASK)));
+ IRExpr_ITE(mkexpr(frA_isSNaN),
+ /* then: result = frA converted to QNaN */
+ binop(Iop_Or64, mkexpr(frA_I64), mkU64(SNAN_MASK)),
+ /* else: if frB is a SNaN */
+ IRExpr_ITE(mkexpr(frB_isSNaN),
+ /* then: result = frB converted to QNaN */
+ binop(Iop_Or64, mkexpr(frB_I64), mkU64(SNAN_MASK)),
+ /* else: if frB is a QNaN */
+ IRExpr_ITE(mkexpr(frB_isQNaN),
+ /* then: result = frA */
+ mkexpr(frA_I64),
+ /* else: frA is a QNaN, so result = frB */
+ mkexpr(frB_I64))));
}
/*
@@ -12807,13 +12807,13 @@
unop( Iop_ReinterpI64asF64,
mkexpr( src2 ) ) ) );
- return IRExpr_Mux0X( binop( Iop_CmpEQ32,
+ return IRExpr_ITE( binop( Iop_CmpEQ32,
mkexpr( src1cmpsrc2 ),
mkU32( isMin ? PPC_CMP_LT : PPC_CMP_GT ) ),
- /* else: use src2 */
- mkexpr( src2 ),
- /* then: use src1 */
- mkexpr( src1 ) );
+ /* then: use src1 */
+ mkexpr( src1 ),
+ /* else: use src2 */
+ mkexpr( src2 ) );
}
/*
@@ -12840,23 +12840,23 @@
assign(anyNaN, mkOR1(is_NaN(frA_I64), is_NaN(frB_I64)));
#define MINUS_ZERO 0x8000000000000000ULL
- return IRExpr_Mux0X( /* If both arguments are zero . . . */
- mkAND1( mkexpr( frA_isZero ), mkexpr( frB_isZero ) ),
- /* else: check if either input is a NaN*/
- IRExpr_Mux0X( mkexpr( anyNaN ),
- /* else: use "comparison helper" */
- _get_maxmin_fp_cmp( frB_I64, frA_I64, isMin ),
- /* then: use "NaN helper" */
- _get_maxmin_fp_NaN( frA_I64, frB_I64 ) ),
- /* then: if frA is -0 and isMin==True, return -0;
- * else if frA is +0 and isMin==False; return +0;
- * otherwise, simply return frB. */
- IRExpr_Mux0X( binop( Iop_CmpEQ32,
- unop( Iop_64HIto32,
- mkexpr( frA_I64 ) ),
- mkU32( isMin ? 0x80000000 : 0 ) ),
- mkexpr( frB_I64 ),
- mkU64( isMin ? MINUS_ZERO : 0ULL ) ) );
+ return IRExpr_ITE( /* If both arguments are zero . . . */
+ mkAND1( mkexpr( frA_isZero ), mkexpr( frB_isZero ) ),
+ /* then: if frA is -0 and isMin==True, return -0;
+ * else if frA is +0 and isMin==False; return +0;
+ * otherwise, simply return frB. */
+ IRExpr_ITE( binop( Iop_CmpEQ32,
+ unop( Iop_64HIto32,
+ mkexpr( frA_I64 ) ),
+ mkU32( isMin ? 0x80000000 : 0 ) ),
+ mkU64( isMin ? MINUS_ZERO : 0ULL ),
+ mkexpr( frB_I64 ) ),
+ /* else: check if either input is a NaN*/
+ IRExpr_ITE( mkexpr( anyNaN ),
+ /* then: use "NaN helper" */
+ _get_maxmin_fp_NaN( frA_I64, frB_I64 ),
+ /* else: use "comparison helper" */
+ _get_maxmin_fp_cmp( frB_I64, frA_I64, isMin ) ));
}
/*
@@ -12910,30 +12910,30 @@
/* frD = (fabs(frB) > 9e18) ? frB :
(sign(frB)) ? -fabs((double)intermediateResult) : (double)intermediateResult */
assign( frD,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop( Iop_CmpNE8,
unop( Iop_32to8,
binop( Iop_CmpF64,
IRExpr_Const( IRConst_F64( 9e18 ) ),
unop( Iop_AbsF64, mkexpr( frB ) ) ) ),
mkU8(0) ),
- IRExpr_Mux0X(
+ mkexpr( frB ),
+ IRExpr_ITE(
binop( Iop_CmpNE32,
binop( Iop_Shr32,
unop( Iop_64HIto32,
mkexpr( frB_I64 ) ),
mkU8( 31 ) ),
mkU32(0) ),
- binop( Iop_I64StoF64,
- mkU32( 0 ),
- mkexpr( intermediateResult ) ),
unop( Iop_NegF64,
unop( Iop_AbsF64,
binop( Iop_I64StoF64,
mkU32( 0 ),
- mkexpr( intermediateResult ) ) ) )
- ),
- mkexpr( frB )
+ mkexpr( intermediateResult ) ) ) ),
+ binop( Iop_I64StoF64,
+ mkU32( 0 ),
+ mkexpr( intermediateResult ) )
+ )
)
);
@@ -12948,12 +12948,12 @@
binop( Iop_And32, hi32, mkU32( 0x00080000 ) ),
mkU32( 0 ) ) ) );
- return IRExpr_Mux0X( mkexpr( is_SNAN ),
- mkexpr( frD ),
+ return IRExpr_ITE( mkexpr( is_SNAN ),
unop( Iop_ReinterpI64asF64,
binop( Iop_Xor64,
mkU64( SNAN_MASK ),
- mkexpr( frB_I64 ) ) ) );
+ mkexpr( frB_I64 ) ) ),
+ mkexpr( frD ));
}
/*
@@ -17577,10 +17577,11 @@
UInt bi = ifieldRegC( theInstr );
putIReg(
rT,
- IRExpr_Mux0X( binop(Iop_CmpNE32, getCRbit( bi ), mkU32(0)),
- getIReg(rB),
- rA == 0 ? (mode64 ? mkU64(0) : mkU32(0))
- : getIReg(rA) )
+ IRExpr_ITE( binop(Iop_CmpNE32, getCRbit( bi ), mkU32(0)),
+ rA == 0 ? (mode64 ? mkU64(0) : mkU32(0))
+ : getIReg(rA),
+ getIReg(rB))
+
);
DIP("isel r%u,r%u,r%u,crb%u\n", rT,rA,rB,bi);
goto decode_success;
Modified: trunk/priv/guest_mips_toIR.c (+109 -70)
===================================================================
--- trunk/priv/guest_mips_toIR.c 2013-01-26 20:28:00 +00:00 (rev 2667)
+++ trunk/priv/guest_mips_toIR.c 2013-01-29 03:56:06 +00:00 (rev 2668)
@@ -318,11 +318,13 @@
putIReg(rt, binop(op, getIReg(rs), mkU64(imm)));
#define FP_CONDITIONAL_CODE \
- t3 = newTemp(Ity_I32); \
- assign(t3, binop(Iop_And32, IRExpr_Mux0X( unop(Iop_1Uto8, \
- binop(Iop_CmpEQ32, mkU32(cc), mkU32(0))), \
- binop(Iop_Shr32, getFCSR(), mkU8(24+cc)), \
- binop(Iop_Shr32, getFCSR(), mkU8(23))), mkU32(0x1)));
+ t3 = newTemp(Ity_I32); \
+ assign(t3, binop(Iop_And32, \
+ IRExpr_ITE( unop(Iop_1Uto8, \
+ binop(Iop_CmpEQ32, mkU32(cc), mkU32(0))), \
+ binop(Iop_Shr32, getFCSR(), mkU8(23)), \
+ binop(Iop_Shr32, getFCSR(), mkU8(24+cc))), \
+ mkU32(0x1)));
/*------------------------------------------------------------*/
/*--- Field helpers ---*/
@@ -1385,11 +1387,16 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(bc1_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + bc1_cc)), mkU32(0x1)), binop(Iop_And32,
- binop(Iop_Shr32, getFCSR(), mkU8(23)),
- mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + bc1_cc)),
+ mkU32(0x1))
+ ));
if (tf == 1 && nd == 0) {
//branch on true
@@ -1611,8 +1618,8 @@
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpNE32, mkU32(0),
getIReg(rt))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t2), mkexpr(t1)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ mkexpr(t1), mkexpr(t2)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -1625,8 +1632,8 @@
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpNE32, mkU32(0),
getIReg(rt))));
- putDReg(fd, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fd), getDReg(fs)));
+ putDReg(fd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getDReg(fs), getDReg(fd)));
break;
default:
goto decode_failure;
@@ -1647,8 +1654,8 @@
assign(t2, unop(Iop_F32toF64, getFReg(fd)));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
getIReg(rt))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t2), mkexpr(t1)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ mkexpr(t1), mkexpr(t2)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -1662,8 +1669,8 @@
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
getIReg(rt))));
- putDReg(fd, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fd), getDReg(fs)));
+ putDReg(fd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getDReg(fs), getDReg(fd)));
break;
default:
goto decode_failure;
@@ -1684,16 +1691,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + mov_cc)), mkU32(0x1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(23)), mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fs), getDReg(fd)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getDReg(fd), getDReg(fs)));
putDReg(fd, mkexpr(t4));
break;
case 0x10: // S
@@ -1711,17 +1723,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32,
- getFCSR(), mkU8(24 + mov_cc)),
- mkU32(0x1)), binop(Iop_And32,
- binop(Iop_Shr32, getFCSR(),
- mkU8(23)), mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t5), mkexpr(t6)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ mkexpr(t6), mkexpr(t5)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
@@ -1743,16 +1759,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32,
mkU32(0), mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + mov_cc)), mkU32(0x1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(23)), mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getDReg(fd), getDReg(fs)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getDReg(fs), getDReg(fd)));
putDReg(fd, mkexpr(t4));
break;
case 0x10: // S
@@ -1770,16 +1791,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + mov_cc)), mkU32(0x1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(23)), mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- mkexpr(t6), mkexpr(t5)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ mkexpr(t5), mkexpr(t6)));
putFReg(fd, binop(Iop_F64toF32, get_IR_roundingmode(),
mkexpr(t4)));
}
@@ -2644,8 +2670,9 @@
assign(t5, unop(Iop_1Sto32, binop(Iop_CmpLT32U, mkexpr(t2),
mkexpr(t4))));
- assign(t6, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t5)), mkexpr(t1),
- binop(Iop_Sub32, mkexpr(t1), mkU32(0x1))));
+ assign(t6, IRExpr_ITE(unop(Iop_32to8, mkexpr(t5)),
+ binop(Iop_Sub32, mkexpr(t1), mkU32(0x1)),
+ mkexpr(t1)));
putHI(binop(Iop_Sub32, mkexpr(t6), unop(Iop_64HIto32, mkexpr(t3))));
putLO(binop(Iop_Sub32, mkexpr(t2), mkexpr(t4)));
@@ -2671,8 +2698,9 @@
assign(t5, unop(Iop_1Sto32, binop(Iop_CmpLT32U, mkexpr(t2),
mkexpr(t4))));
- assign(t6, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t5)),
- mkexpr(t1), binop(Iop_Sub32, mkexpr(t1), mkU32(0x1))));
+ assign(t6, IRExpr_ITE(unop(Iop_32to8, mkexpr(t5)),
+ binop(Iop_Sub32, mkexpr(t1), mkU32(0x1)),
+ mkexpr(t1)));
putHI(binop(Iop_Sub32, mkexpr(t6), unop(Iop_64HIto32, mkexpr(t3))));
putLO(binop(Iop_Sub32, mkexpr(t2), mkexpr(t4)));
@@ -2684,8 +2712,9 @@
t1 = newTemp(Ity_I32);
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, getIReg(rs),
mkU32(0))));
- putIReg(rd, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- unop(Iop_Clz32, getIReg(rs)), mkU32(0x00000020)));
+ putIReg(rd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ mkU32(0x00000020),
+ unop(Iop_Clz32, getIReg(rs))));
break;
}
@@ -2694,9 +2723,9 @@
t1 = newTemp(Ity_I32);
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, getIReg(rs),
mkU32(0xffffffff))));
- putIReg(rd, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- unop(Iop_Clz32, unop(Iop_Not32, getIReg(rs))),
- mkU32(0x00000020)));
+ putIReg(rd, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ mkU32(0x00000020),
+ unop(Iop_Clz32, unop(Iop_Not32, getIReg(rs)))));
break;
}
@@ -2853,16 +2882,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + mov_cc)), mkU32(0x1)), binop(Iop_And32,
- binop(Iop_Shr32, getFCSR(), mkU8(23)),
- mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getIReg(rd), getIReg(rs)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getIReg(rs), getIReg(rd)));
putIReg(rd, mkexpr(t4));
}
} else if (tf == 1) { /* MOVT */
@@ -2875,16 +2909,21 @@
assign(t1, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(0),
mkU32(mov_cc))));
- assign(t2, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t1)),
- binop(Iop_And32, binop(Iop_Shr32, getFCSR(),
- mkU8(24 + mov_cc)), mkU32(0x1)), binop(Iop_And32,
- binop(Iop_Shr32, getFCSR(), mkU8(23)),
- mkU32(0x1))));
+ assign(t2, IRExpr_ITE(unop(Iop_32to8, mkexpr(t1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(23)),
+ mkU32(0x1)),
+ binop(Iop_And32,
+ binop(Iop_Shr32, getFCSR(),
+ mkU8(24 + mov_cc)),
+ mkU32(0x1))
+ ));
assign(t3, unop(Iop_1Sto32, binop(Iop_CmpEQ32, mkU32(1),
mkexpr(t2))));
- assign(t4, IRExpr_Mux0X(unop(Iop_32to8, mkexpr(t3)),
- getIReg(rd), getIReg(rs)));
+ assign(t4, IRExpr_ITE(unop(Iop_32to8, mkexpr(t3)),
+ getIReg(rs), getIReg(rd)));
putIReg(rd, mkexpr(t4));
}
}
Modified: trunk/priv/guest_amd64_toIR.c (+141 -141)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2013-01-26 20:28:00 +00:00 (rev 2667)
+++ trunk/priv/guest_amd64_toIR.c 2013-01-29 03:56:06 +00:00 (rev 2668)
@@ -1825,17 +1825,17 @@
/* DEP1 contains the result, DEP2 contains the undershifted value. */
stmt( IRStmt_Put( OFFB_CC_OP,
- IRExpr_Mux0X( mkexpr(guardB),
- IRExpr_Get(OFFB_CC_OP,Ity_I64),
- mkU64(ccOp))) );
+ IRExpr_ITE( mkexpr(guardB),
+ mkU64(ccOp),
+ IRExpr_Get(OFFB_CC_OP,Ity_I64) ) ));
stmt( IRStmt_Put( OFFB_CC_DEP1,
- IRExpr_Mux0X( mkexpr(guardB),
- IRExpr_Get(OFFB_CC_DEP1,Ity_I64),
- widenUto64(mkexpr(res)))) );
+ IRExpr_ITE( mkexpr(guardB),
+ widenUto64(mkexpr(res)),
+ IRExpr_Get(OFFB_CC_DEP1,Ity_I64) ) ));
stmt( IRStmt_Put( OFFB_CC_DEP2,
- IRExpr_Mux0X( mkexpr(guardB),
- IRExpr_Get(OFFB_CC_DEP2,Ity_I64),
- widenUto64(mkexpr(resUS)))) );
+ IRExpr_ITE( mkexpr(guardB),
+ widenUto64(mkexpr(resUS)),
+ IRExpr_Get(OFFB_CC_DEP2,Ity_I64) ) ));
}
@@ -3607,21 +3607,21 @@
/* CC_DEP1 is the rotated value. CC_NDEP is flags before. */
stmt( IRStmt_Put( OFFB_CC_OP,
- IRExpr_Mux0X( mkexpr(rot_amt64b),
- IRExpr_Get(OFFB_CC_OP,Ity_I64),
- mkU64(ccOp))) );
+ IRExpr_ITE( mkexpr(rot_amt64b),
+ mkU64(ccOp),
+ IRExpr_Get(OFFB_CC_OP,Ity_I64) ) ));
stmt( IRStmt_Put( OFFB_CC_DEP1,
- IRExpr_Mux0X( mkexpr(rot_amt64b),
- IRExpr_Get(OFFB_CC_DEP1,Ity_I64),
- widenUto64(mkexpr(dst1)))) );
+ IRExpr_ITE( mkexpr(rot_amt64b),
+ widenUto64(mkexpr(dst1)),
+ IRExpr_Get(OFFB_CC_DEP1,Ity_I64) ) ));
stmt( IRStmt_Put( OFFB_CC_DEP2,
- IRExpr_Mux0X( mkexpr(rot_amt64b),
- IRExpr_Get(OFFB_CC_DEP2,Ity_I64),
- mkU64(0))) );
+ IRExpr_ITE( mkexpr(rot_amt64b),
+ mkU64(0),
+ IRExpr_Get(OFFB_CC_DEP2,Ity_I64) ) ));
stmt( IRStmt_Put( OFFB_CC_NDEP,
- IRExpr_Mux0X( mkexpr(rot_amt64b),
- IRExpr_Get(OFFB_CC_NDEP,Ity_I64),
- mkexpr(oldFlags))) );
+ IRExpr_ITE( mkexpr(rot_amt64b),
+ mkexpr(oldFlags),
+ IRExpr_Get(OFFB_CC_NDEP,Ity_I64) ) ));
} /* if (isRotate) */
/* Save result, and finish up. */
@@ -4663,10 +4663,10 @@
// special-case around that.
IRTemp res64 = newTemp(Ity_I64);
assign(res64,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpEQ64, mkexpr(src64x), mkU64(0)),
- unop(Iop_Clz64, mkexpr(src64x)),
- mkU64(8 * sizeofIRType(ty))
+ mkU64(8 * sizeofIRType(ty)),
+ unop(Iop_Clz64, mkexpr(src64x))
));
IRTemp res = newTemp(ty);
@@ -4805,11 +4805,11 @@
{
put_ST_UNCHECKED(
i,
- IRExpr_Mux0X( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
- /* 0 means empty */
- value,
- /* non-0 means full */
- mkQNaN64()
+ IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
+ /* non-0 means full */
+ mkQNaN64(),
+ /* 0 means empty */
+ value
)
);
}
@@ -4831,11 +4831,11 @@
static IRExpr* get_ST ( Int i )
{
return
- IRExpr_Mux0X( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
- /* 0 means empty */
- mkQNaN64(),
- /* non-0 means full */
- get_ST_UNCHECKED(i));
+ IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
+ /* non-0 means full */
+ get_ST_UNCHECKED(i),
+ /* 0 means empty */
+ mkQNaN64());
}
@@ -5007,13 +5007,13 @@
IRTemp t32 = newTemp(Ity_I32);
assign( t32, e32 );
return
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U,
unop(Iop_32Uto64,
binop(Iop_Add32, mkexpr(t32), mkU32(32768))),
mkU64(65536)),
- mkU16( 0x8000 ),
- unop(Iop_32to16, mkexpr(t32)));
+ unop(Iop_32to16, mkexpr(t32)),
+ mkU16( 0x8000 ) );
}
@@ -5748,36 +5748,36 @@
r_src = (UInt)modrm - 0xC0;
DIP("fcmovb %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondB),
- get_ST(0), get_ST(r_src)) );
+ get_ST(r_src), get_ST(0)) );
break;
case 0xC8 ... 0xCF: /* FCMOVE(Z) ST(i), ST(0) */
r_src = (UInt)modrm - 0xC8;
DIP("fcmovz %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondZ),
- get_ST(0), get_ST(r_src)) );
+ get_ST(r_src), get_ST(0)) );
break;
case 0xD0 ... 0xD7: /* FCMOVBE ST(i), ST(0) */
r_src = (UInt)modrm - 0xD0;
DIP("fcmovbe %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondBE),
- get_ST(0), get_ST(r_src)) );
+ get_ST(r_src), get_ST(0)) );
break;
case 0xD8 ... 0xDF: /* FCMOVU ST(i), ST(0) */
r_src = (UInt)modrm - 0xD8;
DIP("fcmovu %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondP),
- get_ST(0), get_ST(r_src)) );
+ get_ST(r_src), get_ST(0)) );
break;
case 0xE9: /* FUCOMPP %st(0),%st(1) */
@@ -5912,9 +5912,9 @@
r_src = (UInt)modrm - 0xC0;
DIP("fcmovnb %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondNB),
- get_ST(0), get_ST(r_src)) );
+ get_ST(r_src), get_ST(0)) );
break;
case 0xC8 ... 0xCF: /* FCMOVNE(NZ) ST(i), ST(0) */
@@ -5922,10 +5922,10 @@
DIP("fcmovnz %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(
0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondNZ),
- get_ST(0),
- get_ST(r_src)
+ get_ST(r_src),
+ get_ST(0)
)
);
break;
@@ -5935,10 +5935,10 @@
DIP("fcmovnbe %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(
0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondNBE),
- get_ST(0),
- get_ST(r_src)
+ get_ST(r_src),
+ get_ST(0)
)
);
break;
@@ -5948,10 +5948,10 @@
DIP("fcmovnu %%st(%u), %%st(0)\n", r_src);
put_ST_UNCHECKED(
0,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mk_amd64g_calculate_condition(AMD64CondNP),
- get_ST(0),
- get_ST(r_src)
+ get_ST(r_src),
+ get_ST(0)
)
);
break;
@@ -6887,20 +6887,20 @@
if (shl || shr) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U,mkexpr(amt),mkU64(size)),
- mkU64(0),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ mkU64(0)
)
);
} else
if (sar) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U,mkexpr(amt),mkU64(size)),
- binop(op, mkexpr(g0), mkU8(size-1)),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ binop(op, mkexpr(g0), mkU8(size-1))
)
);
} else {
@@ -7374,14 +7374,14 @@
else (base << amt) | (xtra >>u (64-amt))
*/
return
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpNE8, mkexpr(amt), mkU8(0)),
- mkexpr(base),
binop(Iop_Or64,
binop(Iop_Shl64, mkexpr(base), mkexpr(amt)),
binop(Iop_Shr64, mkexpr(xtra),
binop(Iop_Sub8, mkU8(64), mkexpr(amt)))
- )
+ ),
+ mkexpr(base)
);
}
@@ -7395,14 +7395,14 @@
else (base >>u amt) | (xtra << (64-amt))
*/
return
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpNE8, mkexpr(amt), mkU8(0)),
- mkexpr(base),
binop(Iop_Or64,
binop(Iop_Shr64, mkexpr(base), mkexpr(amt)),
binop(Iop_Shl64, mkexpr(xtra),
binop(Iop_Sub8, mkU8(64), mkexpr(amt)))
- )
+ ),
+ mkexpr(base)
);
}
@@ -7802,11 +7802,11 @@
stmt( IRStmt_Put( OFFB_CC_DEP2, mkU64(0) ));
stmt( IRStmt_Put(
OFFB_CC_DEP1,
- IRExpr_Mux0X( mkexpr(srcB),
- /* src==0 */
- mkU64(AMD64G_CC_MASK_Z),
- /* src!=0 */
- mkU64(0)
+ IRExpr_ITE( mkexpr(srcB),
+ /* src!=0 */
+ mkU64(0),
+ /* src==0 */
+ mkU64(AMD64G_CC_MASK_Z)
)
));
/* Set NDEP even though it isn't used. This makes redundant-PUT
@@ -7841,15 +7841,15 @@
/* The main computation, guarding against zero. */
assign( dst64,
- IRExpr_Mux0X(
+ IRExpr_ITE(
mkexpr(srcB),
- /* src == 0 -- leave dst unchanged */
- widenUto64( getIRegG( sz, pfx, modrm ) ),
/* src != 0 */
fwds ? unop(Iop_Ctz64, mkexpr(src64))
: binop(Iop_Sub64,
mkU64(63),
- unop(Iop_Clz64, mkexpr(src64)))
+ unop(Iop_Clz64, mkexpr(src64))),
+ /* src == 0 -- leave dst unchanged */
+ widenUto64( getIRegG( sz, pfx, modrm ) )
)
);
@@ -7974,10 +7974,10 @@
/* There are 3 cases to consider:
reg-reg: ignore any lock prefix, generate sequence based
- on Mux0X
+ on ITE
reg-mem, not locked: ignore any lock prefix, generate sequence
- based on Mux0X
+ based on ITE
reg-mem, locked: use IRCAS
*/
@@ -7990,8 +7990,8 @@
assign( acc, getIRegRAX(size) );
setFlags_DEP1_DEP2(Iop_Sub8, acc, dest, ty);
assign( cond, mk_amd64g_calculate_condition(AMD64CondZ) );
- assign( dest2, IRExpr_Mux0X(mkexpr(cond), mkexpr(dest), mkexpr(src)) );
- assign( acc2, IRExpr_Mux0X(mkexpr(cond), mkexpr(dest), mkexpr(acc)) );
+ assign( dest2, IRExpr_ITE(mkexpr(cond), mkexpr(src), mkexpr(dest)) );
+ assign( acc2, IRExpr_ITE(mkexpr(cond), mkexpr(acc), mkexpr(dest)) );
putIRegRAX(size, mkexpr(acc2));
putIRegE(size, pfx, rm, mkexpr(dest2));
DIP("cmpxchg%c %s,%s\n", nameISize(size),
@@ -8007,8 +8007,8 @@
assign( acc, getIRegRAX(size) );
setFlags_DEP1_DEP2(Iop_Sub8, acc, dest, ty);
assign( cond, mk_amd64g_calculate_condition(AMD64CondZ) );
- assign( dest2, IRExpr_Mux0X(mkexpr(cond), mkexpr(dest), mkexpr(src)) );
- assign( acc2, IRExpr_Mux0X(mkexpr(cond), mkexpr(dest), mkexpr(acc)) );
+ assign( dest2, IRExpr_ITE(mkexpr(cond), mkexpr(src), mkexpr(dest)) );
+ assign( acc2, IRExpr_ITE(mkexpr(cond), mkexpr(acc), mkexpr(dest)) );
putIRegRAX(size, mkexpr(acc2));
storeLE( mkexpr(addr), mkexpr(dest2) );
DIP("cmpxchg%c %s,%s\n", nameISize(size),
@@ -8030,7 +8030,7 @@
));
setFlags_DEP1_DEP2(Iop_Sub8, acc, dest, ty);
assign( cond, mk_amd64g_calculate_condition(AMD64CondZ) );
- assign( acc2, IRExpr_Mux0X(mkexpr(cond), mkexpr(dest), mkexpr(acc)) );
+ assign( acc2, IRExpr_ITE(mkexpr(cond), mkexpr(acc), mkexpr(dest)) );
putIRegRAX(size, mkexpr(acc2));
DIP("cmpxchg%c %s,%s\n", nameISize(size),
nameIRegG(size,pfx,rm), dis_buf);
@@ -8079,9 +8079,9 @@
assign( tmpd, getIRegG(sz, pfx, rm) );
putIRegG( sz, pfx, rm,
- IRExpr_Mux0X( mk_amd64g_calculate_condition(cond),
- mkexpr(tmpd),
- mkexpr(tmps) )
+ IRExpr_ITE( mk_amd64g_calculate_condition(cond),
+ mkexpr(tmps),
+ mkexpr(tmpd) )
);
DIP("cmov%s %s,%s\n", name_AMD64Condcode(cond),
nameIRegE(sz,pfx,rm),
@@ -8096,9 +8096,9 @@
assign( tmpd, getIRegG(sz, pfx, rm) );
putIRegG( sz, pfx, rm,
- IRExpr_Mux0X( mk_amd64g_calculate_condition(cond),
- mkexpr(tmpd),
- mkexpr(tmps) )
+ IRExpr_ITE( mk_amd64g_calculate_condition(cond),
+ mkexpr(tmps),
+ mkexpr(tmpd) )
);
DIP("cmov%s %s,%s\n", name_AMD64Condcode(cond),
@@ -8822,20 +8822,20 @@
if (shl || shr) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
- mkV128(0x0000),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ mkV128(0x0000)
)
);
} else
if (sar) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
- binop(op, mkexpr(g0), mkU8(size-1)),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ binop(op, mkexpr(g0), mkU8(size-1))
)
);
} else {
@@ -16909,9 +16909,9 @@
IRTemp validL = newTemp(Ity_I32);
assign(validL, binop(Iop_Sub32,
- IRExpr_Mux0X(mkexpr(zmaskL_zero),
- mkU32(0),
- binop(Iop_Shl32, mkU32(1), ctzL)),
+ IRExpr_ITE(mkexpr(zmaskL_zero),
+ binop(Iop_Shl32, mkU32(1), ctzL),
+ mkU32(0)),
mkU32(1)));
/* And similarly for validR. */
@@ -16920,9 +16920,9 @@
assign(zmaskR_zero, binop(Iop_ExpCmpNE32, mkexpr(zmaskR), mkU32(0)));
IRTemp validR = newTemp(Ity_I32);
assign(validR, binop(Iop_Sub32,
- IRExpr_Mux0X(mkexpr(zmaskR_zero),
- mkU32(0),
- binop(Iop_Shl32, mkU32(1), ctzR)),
+ IRExpr_ITE(mkexpr(zmaskR_zero),
+ binop(Iop_Shl32, mkU32(1), ctzR),
+ mkU32(0)),
mkU32(1)));
/* Do the actual comparison. */
@@ -16962,18 +16962,18 @@
/* Now for the condition codes... */
/* C == 0 iff intRes2 == 0 */
- IRExpr *c_bit = IRExpr_Mux0X( binop(Iop_ExpCmpNE32, mkexpr(intRes2),
- mkU32(0)),
- mkU32(0),
- mkU32(1 << AMD64G_CC_SHIFT_C) );
+ IRExpr *c_bit = IRExpr_ITE( binop(Iop_ExpCmpNE32, mkexpr(intRes2),
+ mkU32(0)),
+ mkU32(1 << AMD64G_CC_SHIFT_C),
+ mkU32(0));
/* Z == 1 iff any in argL is 0 */
- IRExpr *z_bit = IRExpr_Mux0X( mkexpr(zmaskL_zero),
- mkU32(0),
- mkU32(1 << AMD64G_CC_SHIFT_Z) );
+ IRExpr *z_bit = IRExpr_ITE( mkexpr(zmaskL_zero),
+ mkU32(1 << AMD64G_CC_SHIFT_Z),
+ mkU32(0));
/* S == 1 iff any in argR is 0 */
- IRExpr *s_bit = IRExpr_Mux0X( mkexpr(zmaskR_zero),
- mkU32(0),
- mkU32(1 << AMD64G_CC_SHIFT_S) );
+ IRExpr *s_bit = IRExpr_ITE( mkexpr(zmaskR_zero),
+ mkU32(1 << AMD64G_CC_SHIFT_S),
+ mkU32(0));
/* O == IntRes2[0] */
IRExpr *o_bit = binop(Iop_Shl32, binop(Iop_And32, mkexpr(intRes2),
mkU32(0x01)),
@@ -18912,37 +18912,37 @@
If zero, put 1 in OFFB_DFLAG, else -1 in OFFB_DFLAG. */
stmt( IRStmt_Put(
OFFB_DFLAG,
- IRExpr_Mux0X(
+ IRExpr_ITE(
unop(Iop_64to1,
binop(Iop_And64,
binop(Iop_Shr64, mkexpr(t1), mkU8(10)),
mkU64(1))),
- mkU64(1),
- mkU64(0xFFFFFFFFFFFFFFFFULL)))
+ mkU64(0xFFFFFFFFFFFFFFFFULL),
+ mkU64(1)))
);
/* And set the ID flag */
stmt( IRStmt_Put(
OFFB_IDFLAG,
- IRExpr_Mux0X(
+ IRExpr_ITE(
unop(Iop_64to1,
binop(Iop_And64,
binop(Iop_Shr64, mkexpr(t1), mkU8(21)),
mkU64(1))),
- mkU64(0),
- mkU64(1)))
+ mkU64(1),
+ mkU64(0)))
);
/* And set the AC flag too */
stmt( IRStmt_Put(
OFFB_ACFLAG,
- IRExpr_Mux0X(
+ IRExpr_ITE(
unop(Iop_64to1,
binop(Iop_And64,
binop(Iop_Shr64, mkexpr(t1), mkU8(18)),
mkU64(1))),
- mkU64(0),
- mkU64(1)))
+ mkU64(1),
+ mkU64(0)))
);
DIP("popf%c\n", nameISize(sz));
@@ -20344,16 +20344,16 @@
expdHi64:expdLo64, even if we're doing a cmpxchg8b. */
/* It's just _so_ much fun ... */
putIRegRDX( 8,
- IRExpr_Mux0X( mkexpr(success),
- sz == 4 ? unop(Iop_32Uto64, mkexpr(oldHi))
- : mkexpr(oldHi),
- mkexpr(expdHi64)
+ IRExpr_ITE( mkexpr(success),
+ mkexpr(expdHi64),
+ sz == 4 ? unop(Iop_32Uto64, mkexpr(oldHi))
+ : mkexpr(oldHi)
));
putIRegRAX( 8,
- IRExpr_Mux0X( mkexpr(success),
- sz == 4 ? unop(Iop_32Uto64, mkexpr(oldLo))
- : mkexpr(oldLo),
- mkexpr(expdLo64)
+ IRExpr_ITE( mkexpr(success),
+ mkexpr(expdLo64),
+ sz == 4 ? unop(Iop_32Uto64, mkexpr(oldLo))
+ : mkexpr(oldLo)
));
/* Copy the success bit into the Z flag and leave the others
@@ -20838,20 +20838,20 @@
if (shl || shr) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
- mkV128(0x0000),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ mkV128(0x0000)
)
);
} else
if (sar) {
assign(
g1,
- IRExpr_Mux0X(
+ IRExpr_ITE(
binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
- binop(op, mkexpr(g0), mkU8(size-1)),
- binop(op, mkexpr(g0), mkexpr(amt8))
+ binop(op, mkexpr(g0), mkexpr(amt8)),
+ binop(op, mkexpr(g0), mkU8(size-1))
)
);
} else {
@@ -24620,13 +24620,13 @@
breakupV128to64s( dataV, &dHi, &dLo );
breakupV128to64s( ctrlV, &cHi, &cLo );
IRExpr* rHi
- = IRExpr_Mux0X( unop(Iop_64to1,
- binop(Iop_Shr64, mkexpr(cHi), mkU8(1))),
- mkexpr(dLo), mkexpr(dHi) );
+ = IRExpr_ITE( unop(Iop_64to1,
+ binop(Iop_Shr64,...
[truncated message content] |
|
From: Rich C. <rc...@wi...> - 2013-01-29 03:54:57
|
valgrind revision: 13272
VEX revision: 2667
C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
GDB: GNU gdb (GDB) SUSE (7.5.1-1.1)
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.1
C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537)
uname -mrs: Linux 3.7.2-1-desktop x86_64
Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.7.2-1-desktop x86_64 )
Started at 2013-01-28 21:30:01 CST
Ended at 2013-01-28 21:54:47 CST
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
== 640 tests, 1 stderr failure, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2013-01-28 21:42:43.640454170 -0600
+++ mssnapshot.stderrB.out 2013-01-28 21:46:13.981658769 -0600
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-28 21:42:46.702369818 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:47:44.317162579 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-28 21:42:46.553373923 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:47:44.317162579 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-28 21:42:45.671396944 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:47:44.317162579 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-28 21:42:46.345379653 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:47:44.317162579 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-28 21:42:46.433377229 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:47:44.317162579 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2013-01-28 21:30:30.672635942 -0600
+++ mssnapshot.stderrB.out 2013-01-28 21:33:56.848961223 -0600
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-28 21:30:31.646609139 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:35:27.163474878 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-28 21:30:31.499613184 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:35:27.163474878 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-28 21:30:30.965627879 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:35:27.163474878 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-28 21:30:31.291618909 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:35:27.163474878 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-28 21:30:31.376616568 -0600
+++ origin5-bz2.stderr.out 2013-01-28 21:35:27.163474878 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: Florian K. <br...@ac...> - 2013-01-29 03:51:34
|
On 01/28/2013 11:32 AM, Julian Seward wrote:
> It looks OK to me, on first scan. I suggest to commit it, as we have
> pretty good insn set tests, and I will incrementally verify it using
> GSL over the next week or so. That should shake out any badness.
>
> I'm inclined to re-read the Memcheck stuff once it's landed as it
> will be easier to see the context in-place.
OK I will commit soonish (today).
> Pre landing .. I was a bit concerned about the AvailExpr cases for
> (ex-) Mux0X in ir_opt.c. Did the Mxxx cases have their 2nd and 3rd
> args swapped?
Ah, I see.... You're referring to, e.g. this here:
- /* Mux0X(tmp,const,tmp) */
+ /* ITE(tmp,const,tmp) */
struct {
IRTemp co;
IRConst con0;
IRTemp eX;
} Mtct;
That should read: ITE(tmp,tmp,const) So, yes the comment was wrong and
misleading.
> Also, maybe rename Mxxx to Ixxx or something.
Yes, definitely. I left it this way on purpose, because it minimises the
changes in that area. So, a post patch should clean this up. Also, eX ->
e1 seems appropriate etc.
> It
> kind of looks like there was no swapping because there are both
> M?ct and M?tc and so any expression that was representable before
> as an AvailExpr is still representable now. But I'm not 100% sure
> that the impedance-match in/out code is correct. FWIW, I didn't
> stare at it long enough to be sure either way.
I think it's OK, because I converted ir_opt.c twice. The first time I
screwed it up the AvailExpr stuff leading to infinite loops and
miscomparing tests :)
>
> Also it would be nice to have a quick check that iropt isn't borked
> in some way, by comparing generated code size before/after for (eg)
> perf/bz2 and perf/ffbench.
Sure, here you go. Basically identical:
BEFORE conversion
bigcode1 transtab: new 30,048 (301,770 -> 6,242,784; ratio 206:10)
bigcode2 transtab: new 114,422 (1,077,942 -> 22,899,680; ratio
212:10)
bz2 transtab: new 3,699 (99,494 -> 1,554,709; ratio 156:10)
fbench transtab: new 2,316 (54,725 -> 868,347; ratio 158:10)
ffbench transtab: new 2,116 (52,001 -> 826,031; ratio 158:10)
heap transtab: new 1,836 (40,759 -> 659,259; ratio 161:10)
heap-pdb4 transtab: new 1,865 (41,287 -> 668,163; ratio 161:10)
many-loss-records transtab: new 1,959 (43,806 -> 707,036; ratio 161:10)
many-xpts transtab: new 1,803 (39,703 -> 645,026; ratio 162:10)
sarp transtab: new 1,715 (38,525 -> 619,333; ratio 160:10)
tinycc transtab: new 2,323 (54,156 -> 867,851; ratio 160:10)
AFTER conversion
bigcode1 transtab: new 30,048 (301,770 -> 6,242,791; ratio 206:10)
bigcode2 transtab: new 114,422 (1,077,937 -> 22,899,687; ratio
212:10)
bz2 transtab: new 3,699 (99,489 -> 1,554,709; ratio 156:10)
fbench transtab: new 2,316 (54,725 -> 868,347; ratio 158:10)
ffbench transtab: new 2,116 (52,011 -> 826,031; ratio 158:10)
heap transtab: new 1,836 (40,754 -> 659,259; ratio 161:10)
heap-pdb4 transtab: new 1,865 (41,277 -> 668,163; ratio 161:10)
many-loss-records transtab: new 1,959 (43,801 -> 707,036; ratio 161:10)
many-xpts transtab: new 1,803 (39,708 -> 645,019; ratio 162:10)
sarp transtab: new 1,715 (38,525 -> 619,333; ratio 160:10)
tinycc transtab: new 2,323 (54,156 -> 867,851; ratio 160:10)
Florian
|
|
From: Christian B. <bor...@de...> - 2013-01-29 03:13:59
|
valgrind revision: 13272 VEX revision: 2667 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.3-0.6.1) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2013-01-29 03:45:01 CET Ended at 2013-01-29 04:13:48 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 626 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Christian B. <bor...@de...> - 2013-01-29 03:06:59
|
valgrind revision: 13272 VEX revision: 2667 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) GDB: GNU gdb (GDB) Fedora (7.5-1bb1.fc15) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.7.2-57.x.20130114-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2013-01-29 03:45:01 CET Ended at 2013-01-29 04:07:03 CET 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 == 627 tests, 2 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |