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
(1) |
|
2
(19) |
3
(17) |
4
(15) |
5
(20) |
6
(29) |
7
(13) |
8
(16) |
|
9
(20) |
10
(5) |
11
(10) |
12
(17) |
13
(17) |
14
(22) |
15
(8) |
|
16
(4) |
17
(15) |
18
(7) |
19
(14) |
20
(16) |
21
(18) |
22
(9) |
|
23
(2) |
24
(12) |
25
(3) |
26
(3) |
27
(20) |
28
(9) |
29
(4) |
|
30
(3) |
31
(4) |
|
|
|
|
|
|
From: <sv...@va...> - 2012-12-12 18:30:25
|
sewardj 2012-12-12 18:30:12 +0000 (Wed, 12 Dec 2012)
New Revision: 2589
Log:
Change a bunch more Thumb load/store events to use IR guarded loads/stores.
Modified files:
branches/COMEM/priv/guest_arm_toIR.c
Modified: branches/COMEM/priv/guest_arm_toIR.c (+138 -131)
===================================================================
--- branches/COMEM/priv/guest_arm_toIR.c 2012-12-12 00:16:41 +00:00 (rev 2588)
+++ branches/COMEM/priv/guest_arm_toIR.c 2012-12-12 18:30:12 +00:00 (rev 2589)
@@ -16043,18 +16043,14 @@
UInt rM = INSN0(8,6);
UInt isLD = INSN0(11,11);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 05\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
put_ITSTATE(old_itstate); // backout
if (isLD) {
- putIRegT(rD, unop(Iop_16Uto32, loadLE(Ity_I16, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE(tD, ILGop_16Uto32, ea, llGetIReg(rD), condT);
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
} else {
- storeLE( ea, unop(Iop_32to16, getIRegT(rD)) );
+ storeGuardedLE( ea, unop(Iop_32to16, getIRegT(rD)), condT );
}
put_ITSTATE(new_itstate); // restore
@@ -16069,15 +16065,11 @@
UInt rN = INSN0(5,3);
UInt rM = INSN0(8,6);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 06\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
put_ITSTATE(old_itstate); // backout
- putIRegT(rD, unop(Iop_16Sto32, loadLE(Ity_I16, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE(tD, ILGop_16Sto32, ea, llGetIReg(rD), condT);
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
put_ITSTATE(new_itstate); // restore
DIP("ldrsh r%u, [r%u, r%u]\n", rD, rN, rM);
@@ -16091,15 +16083,11 @@
UInt rN = INSN0(5,3);
UInt rM = INSN0(8,6);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 07\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
put_ITSTATE(old_itstate); // backout
- putIRegT(rD, unop(Iop_8Sto32, loadLE(Ity_I8, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE(tD, ILGop_8Sto32, ea, llGetIReg(rD), condT);
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
put_ITSTATE(new_itstate); // restore
DIP("ldrsb r%u, [r%u, r%u]\n", rD, rN, rM);
@@ -16116,18 +16104,14 @@
UInt rM = INSN0(8,6);
UInt isLD = INSN0(11,11);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 08\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
put_ITSTATE(old_itstate); // backout
if (isLD) {
- putIRegT(rD, unop(Iop_8Uto32, loadLE(Ity_I8, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE(tD, ILGop_8Uto32, ea, llGetIReg(rD), condT);
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
} else {
- storeLE( ea, unop(Iop_32to8, getIRegT(rD)) );
+ storeGuardedLE( ea, unop(Iop_32to8, getIRegT(rD)), condT );
}
put_ITSTATE(new_itstate); // restore
@@ -16274,18 +16258,14 @@
UInt imm5 = INSN0(10,6);
UInt isLD = INSN0(11,11);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 11\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 2));
put_ITSTATE(old_itstate); // backout
if (isLD) {
- putIRegT(rD, unop(Iop_16Uto32, loadLE(Ity_I16, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE( tD, ILGop_16Uto32, ea, llGetIReg(rD), condT );
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
} else {
- storeLE( ea, unop(Iop_32to16, getIRegT(rD)) );
+ storeGuardedLE( ea, unop(Iop_32to16, getIRegT(rD)), condT );
}
put_ITSTATE(new_itstate); // restore
@@ -16303,18 +16283,14 @@
UInt imm5 = INSN0(10,6);
UInt isLD = INSN0(11,11);
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 12\n");
- mk_skip_over_T16_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5));
put_ITSTATE(old_itstate); // backout
if (isLD) {
- putIRegT(rD, unop(Iop_8Uto32, loadLE(Ity_I8, ea)),
- IRTemp_INVALID);
+ IRTemp tD = newTemp(Ity_I32);
+ loadGuardedLE( tD, ILGop_8Uto32, ea, llGetIReg(rD), condT );
+ putIRegT(rD, mkexpr(tD), IRTemp_INVALID);
} else {
- storeLE( ea, unop(Iop_32to8, getIRegT(rD)) );
+ storeGuardedLE( ea, unop(Iop_32to8, getIRegT(rD)), condT );
}
put_ITSTATE(new_itstate); // restore
@@ -17469,13 +17445,15 @@
if (valid) {
// if it's a branch, it can't happen in the middle of an IT block
- if (loadsPC)
+ // Also, if it is a branch, make it unconditional at this point.
+ // Doing conditional branches in-line is too complex (for now)
+ if (loadsPC) {
gen_SIGILL_T_if_in_but_NLI_ITBlock(old_itstate, new_itstate);
- // go uncond
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 14\n");
- mk_skip_over_T32_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
+ // go uncond
+ mk_skip_over_T32_if_cond_is_false(condT);
+ condT = IRTemp_INVALID;
+ // now uncond
+ }
IRTemp preAddr = newTemp(Ity_I32);
assign(preAddr, getIRegT(rN));
@@ -17488,15 +17466,15 @@
if (isST) {
- /* Store. If necessary, update the base register before
- the store itself, so that the common idiom of "str rX,
- [sp, #-4]!" (store rX at sp-4, then do new sp = sp-4,
- a.k.a "push rX") doesn't cause Memcheck to complain
- that the access is below the stack pointer. Also, not
- updating sp before the store confuses Valgrind's
- dynamic stack-extending logic. So do it before the
- store. Hence we need to snarf the store data before
- doing the basereg update. */
+ /* Store. If necessary, update the base register before
+ the store itself, so that the common idiom of "str rX,
+ [sp, #-4]!" (store rX at sp-4, then do new sp = sp-4,
+ a.k.a "push rX") doesn't cause Memcheck to complain
+ that the access is below the stack pointer. Also, not
+ updating sp before the store confuses Valgrind's
+ dynamic stack-extending logic. So do it before the
+ store. Hence we need to snarf the store data before
+ doing the basereg update. */
/* get hold of the data to be stored */
IRTemp oldRt = newTemp(Ity_I32);
@@ -17505,64 +17483,69 @@
/* Update Rn if necessary. */
if (bW == 1) {
vassert(rN != rT); // assured by validity check above
- putIRegT(rN, mkexpr(postAddr), IRTemp_INVALID);
+ putIRegT(rN, mkexpr(postAddr), condT);
}
/* generate the transfer */
+ IRExpr* data = NULL;
switch (ty) {
case Ity_I8:
- storeLE(mkexpr(transAddr),
- unop(Iop_32to8, mkexpr(oldRt)));
+ data = unop(Iop_32to8, mkexpr(oldRt));
break;
case Ity_I16:
- storeLE(mkexpr(transAddr),
- unop(Iop_32to16, mkexpr(oldRt)));
+ data = unop(Iop_32to16, mkexpr(oldRt));
break;
- case Ity_I32:
- storeLE(mkexpr(transAddr), mkexpr(oldRt));
+ case Ity_I32:
+ data = mkexpr(oldRt);
break;
- default:
- vassert(0);
+ default:
+ vassert(0);
}
+ storeGuardedLE(mkexpr(transAddr), data, condT);
} else {
/* Load. */
+ IRTemp llOldRt = newTemp(Ity_I32);
+ assign(llOldRt, llGetIReg(rT));
/* generate the transfer */
- IRTemp newRt = newTemp(Ity_I32);
- IROp widen = Iop_INVALID;
+ IRTemp newRt = newTemp(Ity_I32);
+ IRLoadGOp widen = ILGop_INVALID;
switch (ty) {
case Ity_I8:
- widen = syned ? Iop_8Sto32 : Iop_8Uto32; break;
+ widen = syned ? ILGop_8Sto32 : ILGop_8Uto32; break;
case Ity_I16:
- widen = syned ? Iop_16Sto32 : Iop_16Uto32; break;
+ widen = syned ? ILGop_16Sto32 : ILGop_16Uto32; break;
case Ity_I32:
- break;
+ widen = ILGop_Ident32; break;
default:
vassert(0);
}
- if (widen == Iop_INVALID) {
- assign(newRt, loadLE(ty, mkexpr(transAddr)));
+ loadGuardedLE(newRt, widen,
+ mkexpr(transAddr), mkexpr(llOldRt), condT);
+ if (rT == 15) {
+ vassert(loadsPC);
+ /* We'll do the write to the PC just below */
} else {
- assign(newRt, unop(widen, loadLE(ty, mkexpr(transAddr))));
- }
- if (loadsPC) {
- vassert(rT == 15);
- llPutIReg(rT, mkexpr(newRt));
- } else {
+ vassert(!loadsPC);
+ /* IRTemp_INVALID is OK here because in the case where
+ condT is false at run time, we're just putting the
+ old rT value back. */
putIRegT(rT, mkexpr(newRt), IRTemp_INVALID);
}
/* Update Rn if necessary. */
if (bW == 1) {
vassert(rN != rT); // assured by validity check above
- putIRegT(rN, mkexpr(postAddr), IRTemp_INVALID);
+ putIRegT(rN, mkexpr(postAddr), condT);
}
if (loadsPC) {
/* Presumably this is an interworking branch. */
vassert(rN != 15); // assured by validity check above
+ vassert(rT == 15);
+ vassert(condT == IRTemp_INVALID); /* due to check above */
llPutIReg(15, mkexpr(newRt));
dres.jk_StopHere = Ijk_Boring; /* or _Ret ? */
dres.whatNext = Dis_StopHere;
@@ -17649,13 +17632,15 @@
if (valid) {
// if it's a branch, it can't happen in the middle of an IT block
- if (loadsPC)
+ // Also, if it is a branch, make it unconditional at this point.
+ // Doing conditional branches in-line is too complex (for now)
+ if (loadsPC) {
gen_SIGILL_T_if_in_but_NLI_ITBlock(old_itstate, new_itstate);
- // go uncond
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 15\n");
- mk_skip_over_T32_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
+ // go uncond
+ mk_skip_over_T32_if_cond_is_false(condT);
+ condT = IRTemp_INVALID;
+ // now uncond
+ }
IRTemp transAddr = newTemp(Ity_I32);
assign(transAddr,
@@ -17664,55 +17649,66 @@
binop(Iop_Shl32, getIRegT(rM), mkU8(imm2)) ));
if (isST) {
+
+ /* get hold of the data to be stored */
IRTemp oldRt = newTemp(Ity_I32);
assign(oldRt, getIRegT(rT));
+
+ /* generate the transfer */
+ IRExpr* data = NULL;
switch (ty) {
case Ity_I8:
- storeLE(mkexpr(transAddr),
- unop(Iop_32to8, mkexpr(oldRt)));
+ data = unop(Iop_32to8, mkexpr(oldRt));
break;
case Ity_I16:
- storeLE(mkexpr(transAddr),
- unop(Iop_32to16, mkexpr(oldRt)));
+ data = unop(Iop_32to16, mkexpr(oldRt));
break;
case Ity_I32:
- storeLE(mkexpr(transAddr), mkexpr(oldRt));
+ data = mkexpr(oldRt);
break;
default:
vassert(0);
}
+ storeGuardedLE(mkexpr(transAddr), data, condT);
+
} else {
- IRTemp newRt = newTemp(Ity_I32);
- IROp widen = Iop_INVALID;
+
+ /* Load. */
+ IRTemp llOldRt = newTemp(Ity_I32);
+ assign(llOldRt, llGetIReg(rT));
+
+ /* generate the transfer */
+ IRTemp newRt = newTemp(Ity_I32);
+ IRLoadGOp widen = ILGop_INVALID;
switch (ty) {
case Ity_I8:
- widen = syned ? Iop_8Sto32 : Iop_8Uto32; break;
+ widen = syned ? ILGop_8Sto32 : ILGop_8Uto32; break;
case Ity_I16:
- widen = syned ? Iop_16Sto32 : Iop_16Uto32; break;
+ widen = syned ? ILGop_16Sto32 : ILGop_16Uto32; break;
case Ity_I32:
- break;
+ widen = ILGop_Ident32; break;
default:
vassert(0);
}
- if (widen == Iop_INVALID) {
- assign(newRt, loadLE(ty, mkexpr(transAddr)));
- } else {
- assign(newRt, unop(widen, loadLE(ty, mkexpr(transAddr))));
- }
+ loadGuardedLE(newRt, widen,
+ mkexpr(transAddr), mkexpr(llOldRt), condT);
- /* If we're loading the PC, putIRegT will assert. So go
- direct via llPutIReg. In all other cases use putIRegT
- as it is safer (although could simply use llPutIReg for
- _all_ cases here.) */
- if (loadsPC) {
- vassert(rT == 15);
- llPutIReg(rT, mkexpr(newRt));
+ if (rT == 15) {
+ vassert(loadsPC);
+ /* We'll do the write to the PC just below */
} else {
+ vassert(!loadsPC);
+ /* IRTemp_INVALID is OK here because in the case where
+ condT is false at run time, we're just putting the
+ old rT value back. */
putIRegT(rT, mkexpr(newRt), IRTemp_INVALID);
}
if (loadsPC) {
/* Presumably this is an interworking branch. */
+ vassert(rN != 15); // assured by validity check above
+ vassert(rT == 15);
+ vassert(condT == IRTemp_INVALID); /* due to check above */
llPutIReg(15, mkexpr(newRt));
dres.jk_StopHere = Ijk_Boring; /* or _Ret ? */
dres.whatNext = Dis_StopHere;
@@ -17849,11 +17845,22 @@
}
loadGuardedLE(newRt, widen,
mkexpr(transAddr), mkexpr(llOldRt), condT);
- putIRegT(rT, mkexpr(newRt), condT);
+ if (rT == 15) {
+ vassert(loadsPC);
+ /* We'll do the write to the PC just below */
+ } else {
+ vassert(!loadsPC);
+ /* IRTemp_INVALID is OK here because in the case where
+ condT is false at run time, we're just putting the
+ old rT value back. */
+ putIRegT(rT, mkexpr(newRt), IRTemp_INVALID);
+ }
if (loadsPC) {
/* Presumably this is an interworking branch. */
+ vassert(rT == 15);
vassert(condT == IRTemp_INVALID); /* due to check above */
+ llPutIReg(15, mkexpr(newRt));
irsb->next = mkexpr(newRt);
irsb->jumpkind = Ijk_Boring; /* or _Ret ? */
dres.whatNext = Dis_StopHere;
@@ -17890,12 +17897,6 @@
if (bL == 1 && rT == rT2) valid = False;
if (valid) {
- // go uncond
-if (condT != IRTemp_INVALID) vex_printf("XXXX uncond 16\n");
- mk_skip_over_T32_if_cond_is_false(condT);
- condT = IRTemp_INVALID;
- // now uncond
-
IRTemp preAddr = newTemp(Ity_I32);
assign(preAddr, getIRegT(rN));
@@ -17910,25 +17911,31 @@
IRTemp oldRt2 = newTemp(Ity_I32);
assign(oldRt, getIRegT(rT));
assign(oldRt2, getIRegT(rT2));
- storeLE(mkexpr(transAddr),
- mkexpr(oldRt));
- storeLE(binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
- mkexpr(oldRt2));
+ storeGuardedLE( mkexpr(transAddr),
+ mkexpr(oldRt), condT );
+ storeGuardedLE( binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
+ mkexpr(oldRt2), condT );
} else {
+ IRTemp oldRt = newTemp(Ity_I32);
+ IRTemp oldRt2 = newTemp(Ity_I32);
IRTemp newRt = newTemp(Ity_I32);
IRTemp newRt2 = newTemp(Ity_I32);
- assign(newRt,
- loadLE(Ity_I32,
- mkexpr(transAddr)));
- assign(newRt2,
- loadLE(Ity_I32,
- binop(Iop_Add32, mkexpr(transAddr), mkU32(4))));
- putIRegT(rT, mkexpr(newRt), IRTemp_INVALID);
+ assign(oldRt, llGetIReg(rT));
+ assign(oldRt2, llGetIReg(rT2));
+ loadGuardedLE( newRt, ILGop_Ident32,
+ mkexpr(transAddr),
+ mkexpr(oldRt), condT );
+ loadGuardedLE( newRt2, ILGop_Ident32,
+ binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
+ mkexpr(oldRt2), condT );
+ /* Put unconditionally, since we already switched on the condT
+ in the guarded loads. */
+ putIRegT(rT, mkexpr(newRt), IRTemp_INVALID);
putIRegT(rT2, mkexpr(newRt2), IRTemp_INVALID);
}
if (bW == 1) {
- putIRegT(rN, mkexpr(postAddr), IRTemp_INVALID);
+ putIRegT(rN, mkexpr(postAddr), condT);
}
const HChar* nm = bL ? "ldrd" : "strd";
|
|
From: Mark W. <mj...@re...> - 2012-12-12 12:28:46
|
On Wed, 2012-12-12 at 20:31 +0900, Dave Goodell wrote:
> On Dec 12, 2012, at 6:56 PM GMT+09:00, Mark Wielaard wrote:
> > Makes sense. New patch attached. Obviously all variants work fine on my
> > setup. If someone could test on a problematic one that would be
> > appreciated.
>
> I don't have easy access to a 10.6 or earlier machine with which to check this, sorry.
Hopefully someone else can, otherwise we should just move things under
memcheck/tests/linux and be done with it I guess.
> I don't feel strongly on this issue, but it's a great way to get
> burned in the future when the autoconf maintainers start using this
> variable for some random reason. You have correct m4 quoting in your
> patch, which is better than most cargo-cult autoconf fragments, so I
> assumed that you might be interested in following other best practices
> in this regard.
I certainly do see your point. But I don't feel my auto* foo is strong
enough to fix all these issues in configure.in with this patch. And I do
think it is better to have all test be as similar as possible to each
other for now. But yeah, one day there will be problems :{ If just
because valgrind still has a configure.in, which will soon be dropped
because it has been deprecated for so long in favor of configure.ac:
https://lists.gnu.org/archive/html/autotools-announce/2012-11/msg00000.html
So if there is someone with strong auto* foo I am sure some cleanups
here will be appreciated.
> >> You may also wish to include a note that this HAVE_STPNCPY is
> >> only valid in conjunction with "#define _GNU_SOURCE".
> >
> > But that turned out not to be true. The original didn't have it, and
> > apparently different "non-GNU" systems do have strpncpy.
>
> But your configure test explicitly defines "_GNU_SOURCE" in the test.
> So clients of HAVE_STPNCPY can only rely on its accuracy if they also
> define _GNU_SOURCE. I am not referring to any particular system
> having or not having the routine, nor directly the influence of
> _GNU_SOURCE on any particular system. Only that the test only checks
> for strncpy's existence in the presence of _GNU_SOURCE.
>
> This usually does not matter now, but 4 years down the road when
> someone else wants to gate on this #define and does not realize the
> subtle _GNU_SOURCE requirement. HAVE_X always seems like such a
> simple truth that it's easy to trust too much unless caveats are
> present in the name or the comments :)
So, new version of the patch. This time with comment and tweaked HAVE_
to make thing totally clear attached.
Cheers,
Mark
|
|
From: Dave G. <go...@mc...> - 2012-12-12 11:31:30
|
On Dec 12, 2012, at 6:56 PM GMT+09:00, Mark Wielaard wrote: > On Wed, 2012-12-12 at 14:56 +0900, Dave Goodell wrote: >> >> I haven't been following closely, but your second patch (adding >> "-Werror") seems the wrong way to go about this. I think that if you >> switch from AC_COMPILE_IFELSE to AC_LINK_IFELSE that you will get the >> desired behavior from the original patch. > > Makes sense. New patch attached. Obviously all variants work fine on my > setup. If someone could test on a problematic one that would be > appreciated. I don't have easy access to a 10.6 or earlier machine with which to check this, sorry. >> Also, you should probably avoid trampling the "ac_" namespace with the >> shell var that you are setting. > > This is just cargo-cult copy/paste from the existing tests. I rather > keep them all similar. I don't feel strongly on this issue, but it's a great way to get burned in the future when the autoconf maintainers start using this variable for some random reason. You have correct m4 quoting in your patch, which is better than most cargo-cult autoconf fragments, so I assumed that you might be interested in following other best practices in this regard. >> You may also wish to include a note that this HAVE_STPNCPY is >> only valid in conjunction with "#define _GNU_SOURCE". > > But that turned out not to be true. The original didn't have it, and > apparently different "non-GNU" systems do have strpncpy. But your configure test explicitly defines "_GNU_SOURCE" in the test. So clients of HAVE_STPNCPY can only rely on its accuracy if they also define _GNU_SOURCE. I am not referring to any particular system having or not having the routine, nor directly the influence of _GNU_SOURCE on any particular system. Only that the test only checks for strncpy's existence in the presence of _GNU_SOURCE. This usually does not matter now, but 4 years down the road when someone else wants to gate on this #define and does not realize the subtle _GNU_SOURCE requirement. HAVE_X always seems like such a simple truth that it's easy to trust too much unless caveats are present in the name or the comments :) -Dave |
|
From: Julian S. <js...@ac...> - 2012-12-12 10:23:23
|
On Wednesday, December 12, 2012, Mark Wielaard wrote: > It would just be nice to have the check everywhere stpncpy is available Yes, I would prefer the config check solution, on the whole. J |
|
From: Mark W. <mj...@re...> - 2012-12-12 10:12:32
|
On Wed, 2012-12-12 at 09:55 +0100, Julian Seward wrote: > Since we are not currently intercepting stpncpy on Darwin, a simple > fix would be to move the test from memcheck/tests to memcheck/tests/linux, > so it wouldn't get built on Darwin. If the configure check is too much pain that would certainly be fine with me. It would just be nice to have the check everywhere stpncpy is available to make sure valgrind handles it correctly (whether or not it intercepts it). Apparently it is not just a GNU extension, it was added to The Open Group Base Specifications Issue 7 IEEE Std 1003.1-2008 http://pubs.opengroup.org/onlinepubs/9699919799/functions/strncpy.html > That however assumes that stpncpy is available on all Linux platforms > that the tests get built on. Is that a reasonable assumption? Does > anybody know how long stpncpy has been available on Linux? stpncpy was introduced in glibc 2.0. Cheers, Mark |
|
From: Mark W. <mj...@re...> - 2012-12-12 09:56:45
|
On Wed, 2012-12-12 at 14:56 +0900, Dave Goodell wrote: > On Dec 12, 2012, at 2:08 AM GMT+09:00, Mark Wielaard wrote: > > On Tue, Dec 11, 2012 at 10:36:31AM -0600, Rich Coe wrote: > >> The configure test needs to fail so the result is false and the > >> test case doesn't compile on platforms that don't have the > >> function. > > > > Hmmm, OK, how about adding an explicit -Werror then for this test as > > attached. Does that "fail properly" in your case? > > I haven't been following closely, but your second patch (adding > "-Werror") seems the wrong way to go about this. I think that if you > switch from AC_COMPILE_IFELSE to AC_LINK_IFELSE that you will get the > desired behavior from the original patch. Makes sense. New patch attached. Obviously all variants work fine on my setup. If someone could test on a problematic one that would be appreciated. > Also, you should probably avoid trampling the "ac_" namespace with the > shell var that you are setting. This is just cargo-cult copy/paste from the existing tests. I rather keep them all similar. > You may also wish to include a note that this HAVE_STPNCPY is > only valid in conjunction with "#define _GNU_SOURCE". But that turned out not to be true. The original didn't have it, and apparently different "non-GNU" systems do have strpncpy. Thanks, Mark |
|
From: Julian S. <js...@ac...> - 2012-12-12 09:14:01
|
On Friday, December 07, 2012, Florian Krohm wrote: > > Log: > > The Signedness Police visit a couple of outlying systems in the Delta > > Quadrant. It turns out that the Delta Quadrant is mostly occupied by the Borg. I had no idea the Signedness Police were taking such risks. Am surprised they made it out of there alive, without getting assimilated. J |
|
From: Christian B. <bor...@de...> - 2012-12-12 09:09:13
|
valgrind revision: 13176 VEX revision: 2588 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) 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.6.8-57.x.20121204-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2012-12-12 03:45:01 CET Ended at 2012-12-12 10:09:00 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 == 616 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) |
|
From: Julian S. <js...@ac...> - 2012-12-12 09:07:25
|
Since we are not currently intercepting stpncpy on Darwin, a simple fix would be to move the test from memcheck/tests to memcheck/tests/linux, so it wouldn't get built on Darwin. That however assumes that stpncpy is available on all Linux platforms that the tests get built on. Is that a reasonable assumption? Does anybody know how long stpncpy has been available on Linux? J On Wednesday, December 12, 2012, Dave Goodell wrote: > On Dec 12, 2012, at 2:08 AM GMT+09:00, Mark Wielaard wrote: > > On Tue, Dec 11, 2012 at 10:36:31AM -0600, Rich Coe wrote: > >> Mark Wielaard <mj...@re...> wrote: > >>> So, the test now also compiles? > >>> Then I assume it was the #define _GNU_SOURCE addition. > >>> But the configure test still makes sense, stpncpy might not be there on > >>> some platforms/configurations. > >> > >> No, because the test result is 'yes', the config parameter is still set > >> and it still tries to compile the test case. > >> > >> The configure test needs to fail so the result is false and the test > >> case doesn't compile on platforms that don't have the function. > > > > Hmmm, OK, how about adding an explicit -Werror then for this test as > > attached. Does that "fail properly" in your case? > > I haven't been following closely, but your second patch (adding "-Werror") > seems the wrong way to go about this. I think that if you switch from > AC_COMPILE_IFELSE to AC_LINK_IFELSE that you will get the desired behavior > from the original patch. > > Also, you should probably avoid trampling the "ac_" namespace with the > shell var that you are setting. You may also wish to include a note that > this HAVE_STPNCPY is only valid in conjunction with "#define _GNU_SOURCE". > > -Dave > > > --------------------------------------------------------------------------- > --- LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support Improve > your efficiency, and focus on delivering more value-add services Discover > what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Dave G. <go...@mc...> - 2012-12-12 05:56:59
|
On Dec 12, 2012, at 2:08 AM GMT+09:00, Mark Wielaard wrote: > On Tue, Dec 11, 2012 at 10:36:31AM -0600, Rich Coe wrote: >> Mark Wielaard <mj...@re...> wrote: >>> So, the test now also compiles? >>> Then I assume it was the #define _GNU_SOURCE addition. >>> But the configure test still makes sense, stpncpy might not be there on >>> some platforms/configurations. >> >> No, because the test result is 'yes', the config parameter is still set >> and it still tries to compile the test case. >> >> The configure test needs to fail so the result is false and the test case >> doesn't compile on platforms that don't have the function. > > Hmmm, OK, how about adding an explicit -Werror then for this test as > attached. Does that "fail properly" in your case? I haven't been following closely, but your second patch (adding "-Werror") seems the wrong way to go about this. I think that if you switch from AC_COMPILE_IFELSE to AC_LINK_IFELSE that you will get the desired behavior from the original patch. Also, you should probably avoid trampling the "ac_" namespace with the shell var that you are setting. You may also wish to include a note that this HAVE_STPNCPY is only valid in conjunction with "#define _GNU_SOURCE". -Dave |
|
From: Rich C. <rc...@wi...> - 2012-12-12 05:49:21
|
valgrind revision: 13176
VEX revision: 2588
C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
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 2012-12-11 23:35:01 CST
Ended at 2012-12-11 23:49:08 CST
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wwrite-strings -fno-stack-protector -Wno-write-strings -MT stpncpy.o -MD -MP -MF .deps/stpncpy.Tpo -c -o stpncpy.o stpncpy.c
stpncpy.c: In function 'main':
stpncpy.c:18: warning: implicit declaration of function 'stpncpy'
stpncpy.c:18: warning: incompatible implicit declaration of built-in function 'stpncpy'
stpncpy.c:21: warning: format '%zd' expects type 'signed size_t', but argument 3 has type 'int'
stpncpy.c:31: warning: format '%zd' expects type 'signed size_t', but argument 3 has type 'int'
mv -f .deps/stpncpy.Tpo .deps/stpncpy.Po
gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wwrite-strings -fno-stack-protector -Wno-write-strings -o stpncpy stpncpy.o
Undefined symbols:
"_stpncpy", referenced from:
_main in stpncpy.o
_main in stpncpy.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[5]: *** [stpncpy] Error 1
make[4]: *** [check-am] Error 2
make[3]: *** [check-recursive] Error 1
make[2]: *** [check-recursive] Error 1
make[1]: *** [check-recursive] Error 1
make: *** [check] Error 2
Congratulations, all tests passed!
|
|
From: Philippe W. <phi...@sk...> - 2012-12-12 04:47:17
|
valgrind revision: 13176 VEX revision: 2588 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) 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.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2012-12-11 20:00:12 PST Ended at 2012-12-11 20:45:34 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 == 542 tests, 7 stderr failures, 3 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Rich C. <rc...@wi...> - 2012-12-12 03:59:24
|
valgrind revision: 13176
VEX revision: 2588
C compiler: gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]
Assembler: GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
C library: GNU C Library stable release version 2.15 (20120628)
uname -mrs: Linux 3.4.11-2.16-desktop x86_64
Vendor version: Welcome to openSUSE 12.2 "Mantis" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.4.11-2.16-desktop x86_64 )
Started at 2012-12-11 21:30:01 CST
Ended at 2012-12-11 21:59:12 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
== 634 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2012-12-11 21:45:24.699384529 -0600
+++ mcinfcallRU.stderr.out 2012-12-11 21:50:24.334037899 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2012-12-11 21:45:24.701384473 -0600
+++ mcinfcallWSRU.stderr.out 2012-12-11 21:50:26.854967676 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-12-11 21:45:38.569998148 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:52:16.302918894 -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 2012-12-11 21:45:36.315060970 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:52:16.302918894 -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 2012-12-11 21:45:27.936294029 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:52:16.302918894 -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 2012-12-11 21:45:33.170149454 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:52:16.302918894 -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 2012-12-11 21:45:34.142121845 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:52:16.302918894 -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/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2012-12-11 21:30:50.944723895 -0600
+++ mcinfcallRU.stderr.out 2012-12-11 21:36:13.128749110 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2012-12-11 21:30:50.946723839 -0600
+++ mcinfcallWSRU.stderr.out 2012-12-11 21:36:15.714677075 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-12-11 21:31:05.853308600 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:38:06.194599540 -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 2012-12-11 21:31:03.181382747 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:38:06.194599540 -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 2012-12-11 21:30:54.298630554 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:38:06.194599540 -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 2012-12-11 21:30:58.486513853 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:38:06.194599540 -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 2012-12-11 21:30:59.881474954 -0600
+++ origin5-bz2.stderr.out 2012-12-11 21:38:06.194599540 -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: Christian B. <bor...@de...> - 2012-12-12 03:13:22
|
valgrind revision: 13176 VEX revision: 2588 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] 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 2012-12-12 03:45:01 CET Ended at 2012-12-12 04:13:07 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 == 615 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2012-12-12 02:51:25
|
valgrind revision: 13176 VEX revision: 2588 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-9) Assembler: GNU assembler version 2.23.51.0.6-1.fc19 20121123 C library: GNU C Library (GNU libc) development release version 2.16.90 uname -mrs: Linux 3.6.8-2.fc17.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2012-12-12 02:23:45 GMT Ended at 2012-12-12 02:51:07 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 == 641 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: <sv...@va...> - 2012-12-12 00:17:54
|
sewardj 2012-12-12 00:17:33 +0000 (Wed, 12 Dec 2012)
New Revision: 13176
Log:
Add test cases for the UMAAL instruction.
Modified files:
trunk/none/tests/arm/v6intARM.c
trunk/none/tests/arm/v6intARM.stdout.exp
trunk/none/tests/arm/v6intThumb.c
trunk/none/tests/arm/v6intThumb.stdout.exp
Modified: trunk/none/tests/arm/v6intARM.c (+16 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.c 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intARM.c 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -939,5 +939,21 @@
TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+ printf("------------ UMAAL ------------\n");
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
+ r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
+ r0, r1, r2, r3, 1);
+
return 0;
}
Modified: trunk/none/tests/arm/v6intThumb.stdout.exp (+12 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.stdout.exp 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intThumb.stdout.exp 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -17473,3 +17473,15 @@
smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, c:v-in 0, cpsr 0xc0000000 NZ
smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, c:v-in 0, cpsr 0xc0000000 NZ
smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, c:v-in 0, cpsr 0xc0000000 NZ
+------------ UMAAL ------------
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x718fb0c9 rd2 0x01d6d5a9, rm 0x14141356 rs 0x1773250a, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x5b8b1d39 rd2 0x39145db7, rm 0x5773250a rs 0xa7182846, c:v-in 1, cpsr 0xd0000000 NZ V
Modified: trunk/none/tests/arm/v6intThumb.c (+16 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.c 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intThumb.c 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -5894,5 +5894,21 @@
TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+ printf("------------ UMAAL ------------\n");
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
+ r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
+ r0, r1, r2, r3, 1);
+
return 0;
}
Modified: trunk/none/tests/arm/v6intARM.stdout.exp (+12 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.stdout.exp 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intARM.stdout.exp 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -822,3 +822,15 @@
smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000
smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000
smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000
+------------ UMAAL ------------
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x718fb0c9 rd2 0x01d6d5a9, rm 0x14141356 rs 0x1773250a, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x5b8b1d39 rd2 0x39145db7, rm 0x5773250a rs 0xa7182846, carryin 1, cpsr 0x20000000 C
|
|
From: <sv...@va...> - 2012-12-12 00:16:56
|
sewardj 2012-12-12 00:16:41 +0000 (Wed, 12 Dec 2012)
New Revision: 2588
Log:
Support the UMAAL instruction. (n-i-bz). Based on a patch from
Torbjorn Granlund, tg...@gm....
Modified files:
trunk/priv/guest_arm_toIR.c
trunk/priv/host_arm_isel.c
Modified: trunk/priv/guest_arm_toIR.c (+72 -0)
===================================================================
--- trunk/priv/guest_arm_toIR.c 2012-12-11 04:09:43 +00:00 (rev 2587)
+++ trunk/priv/guest_arm_toIR.c 2012-12-12 00:16:41 +00:00 (rev 2588)
@@ -13841,6 +13841,44 @@
/* fall through */
}
+ // UMAAL
+ if (BITS8(0,0,0,0,0,1,0,0) == INSN(27,20) && INSN(7,4) == BITS4(1,0,0,1)) {
+ UInt rDhi = INSN(19,16);
+ UInt rDlo = INSN(15,12);
+ UInt rM = INSN(11,8);
+ UInt rN = INSN(3,0);
+ if (rDlo == 15 || rDhi == 15 || rN == 15 || rM == 15 || rDhi == rDlo) {
+ /* Unpredictable; don't decode; fall through */
+ } else {
+ IRTemp argN = newTemp(Ity_I32);
+ IRTemp argM = newTemp(Ity_I32);
+ IRTemp argDhi = newTemp(Ity_I32);
+ IRTemp argDlo = newTemp(Ity_I32);
+ IRTemp res = newTemp(Ity_I64);
+ IRTemp resHi = newTemp(Ity_I32);
+ IRTemp resLo = newTemp(Ity_I32);
+ assign( argN, getIRegA(rN) );
+ assign( argM, getIRegA(rM) );
+ assign( argDhi, getIRegA(rDhi) );
+ assign( argDlo, getIRegA(rDlo) );
+ assign( res,
+ binop(Iop_Add64,
+ binop(Iop_Add64,
+ binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
+ unop(Iop_32Uto64, mkexpr(argDhi))),
+ unop(Iop_32Uto64, mkexpr(argDlo))) );
+ assign( resHi, unop(Iop_64HIto32, mkexpr(res)) );
+ assign( resLo, unop(Iop_64to32, mkexpr(res)) );
+ // now update guest state
+ putIRegA( rDhi, mkexpr(resHi), condT, Ijk_Boring );
+ putIRegA( rDlo, mkexpr(resLo), condT, Ijk_Boring );
+ DIP("umaal %s r%u, r%u, r%u, r%u\n",
+ nCC(INSN_COND), rDlo, rDhi, rN, rM);
+ goto decode_success;
+ }
+ /* fall through */
+ }
+
/* --------------------- Msr etc --------------------- */
// MSR apsr, #imm
@@ -18251,6 +18289,40 @@
}
}
+ /* ------------------ (T1) UMAAL ------------------ */
+ if (INSN0(15,4) == 0xFBE && INSN1(7,4) == BITS4(0,1,1,0)) {
+ UInt rN = INSN0(3,0);
+ UInt rDlo = INSN1(15,12);
+ UInt rDhi = INSN1(11,8);
+ UInt rM = INSN1(3,0);
+ if (!isBadRegT(rDlo) && !isBadRegT(rDhi) && !isBadRegT(rN)
+ && !isBadRegT(rM) && rDhi != rDlo) {
+ IRTemp argN = newTemp(Ity_I32);
+ IRTemp argM = newTemp(Ity_I32);
+ IRTemp argDhi = newTemp(Ity_I32);
+ IRTemp argDlo = newTemp(Ity_I32);
+ IRTemp res = newTemp(Ity_I64);
+ IRTemp resHi = newTemp(Ity_I32);
+ IRTemp resLo = newTemp(Ity_I32);
+ assign( argN, getIRegT(rN) );
+ assign( argM, getIRegT(rM) );
+ assign( argDhi, getIRegT(rDhi) );
+ assign( argDlo, getIRegT(rDlo) );
+ assign( res,
+ binop(Iop_Add64,
+ binop(Iop_Add64,
+ binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
+ unop(Iop_32Uto64, mkexpr(argDhi))),
+ unop(Iop_32Uto64, mkexpr(argDlo))) );
+ assign( resHi, unop(Iop_64HIto32, mkexpr(res)) );
+ assign( resLo, unop(Iop_64to32, mkexpr(res)) );
+ putIRegT( rDhi, mkexpr(resHi), condT );
+ putIRegT( rDlo, mkexpr(resLo), condT );
+ DIP("umaal r%u, r%u, r%u, r%u\n", rDlo, rDhi, rN, rM);
+ goto decode_success;
+ }
+ }
+
/* ------------------ (T2) ADR ------------------ */
if ((INSN0(15,0) == 0xF2AF || INSN0(15,0) == 0xF6AF)
&& INSN1(15,15) == 0) {
Modified: trunk/priv/host_arm_isel.c (+10 -0)
===================================================================
--- trunk/priv/host_arm_isel.c 2012-12-11 04:09:43 +00:00 (rev 2587)
+++ trunk/priv/host_arm_isel.c 2012-12-12 00:16:41 +00:00 (rev 2588)
@@ -3085,6 +3085,16 @@
if (e->tag == Iex_Unop) {
switch (e->Iex.Unop.op) {
+ /* 32Uto64 */
+ case Iop_32Uto64: {
+ HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg);
+ HReg rHi = newVRegI(env);
+ HReg res = newVRegD(env);
+ addInstr(env, ARMInstr_Imm32(rHi, 0));
+ addInstr(env, ARMInstr_VXferD(True/*toD*/, res, rHi, rLo));
+ return res;
+ }
+
/* ReinterpF64asI64 */
case Iop_ReinterpF64asI64:
/* Left64(e) */
|