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
(9) |
2
(1) |
3
(1) |
|
4
(1) |
5
(1) |
6
(1) |
7
(1) |
8
(5) |
9
(9) |
10
(1) |
|
11
(1) |
12
(2) |
13
(10) |
14
(4) |
15
(1) |
16
|
17
(1) |
|
18
(1) |
19
(1) |
20
(8) |
21
(1) |
22
(2) |
23
|
24
|
|
25
|
26
(2) |
27
(15) |
28
(12) |
29
(9) |
30
(5) |
31
(5) |
|
From: <sv...@va...> - 2009-10-08 17:29:11
|
Author: sewardj
Date: 2009-10-08 18:28:53 +0100 (Thu, 08 Oct 2009)
New Revision: 1924
Log:
iselCondCode_wrk: handle Iop_ExpCmpNE64.
Modified:
branches/ICC111/priv/host_amd64_isel.c
Modified: branches/ICC111/priv/host_amd64_isel.c
===================================================================
--- branches/ICC111/priv/host_amd64_isel.c 2009-10-08 17:27:47 UTC (rev 1923)
+++ branches/ICC111/priv/host_amd64_isel.c 2009-10-08 17:28:53 UTC (rev 1924)
@@ -2274,13 +2274,15 @@
|| e->Iex.Binop.op == Iop_CmpLE64S
|| e->Iex.Binop.op == Iop_CmpLE64U
|| e->Iex.Binop.op == Iop_CasCmpEQ64
- || e->Iex.Binop.op == Iop_CasCmpNE64)) {
+ || e->Iex.Binop.op == Iop_CasCmpNE64
+ || e->Iex.Binop.op == Iop_ExpCmpNE64)) {
HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
AMD64RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
addInstr(env, AMD64Instr_Alu64R(Aalu_CMP,rmi2,r1));
switch (e->Iex.Binop.op) {
case Iop_CmpEQ64: case Iop_CasCmpEQ64: return Acc_Z;
- case Iop_CmpNE64: case Iop_CasCmpNE64: return Acc_NZ;
+ case Iop_CmpNE64:
+ case Iop_CasCmpNE64: case Iop_ExpCmpNE64: return Acc_NZ;
case Iop_CmpLT64S: return Acc_L;
case Iop_CmpLT64U: return Acc_B;
case Iop_CmpLE64S: return Acc_LE;
|
|
From: <sv...@va...> - 2009-10-08 17:28:00
|
Author: sewardj
Date: 2009-10-08 18:27:47 +0100 (Thu, 08 Oct 2009)
New Revision: 1923
Log:
dis_bs_E_G: use Iop_ExpCmpNE64 in the is-the-argument-zero check.
Modified:
branches/ICC111/priv/guest_amd64_toIR.c
Modified: branches/ICC111/priv/guest_amd64_toIR.c
===================================================================
--- branches/ICC111/priv/guest_amd64_toIR.c 2009-09-18 16:56:27 UTC (rev 1922)
+++ branches/ICC111/priv/guest_amd64_toIR.c 2009-10-08 17:27:47 UTC (rev 1923)
@@ -7367,7 +7367,7 @@
original is zero, and nonzero otherwise */
assign( src8,
unop(Iop_1Uto8,
- binop(Iop_CmpNE64,
+ binop(Iop_ExpCmpNE64,
mkexpr(src64), mkU64(0))) );
/* Flags: Z is 1 iff source value is zero. All others
|
|
From: <sv...@va...> - 2009-10-08 17:26:22
|
Author: sewardj
Date: 2009-10-08 18:26:07 +0100 (Thu, 08 Oct 2009)
New Revision: 10898
Log:
mc_LOADVn_slow:
* clarify behaviour w.r.t. endianness, in comment at start of fn
* re-verify that byte-loading loops handle endianness correctly; ditto
for mc_STOREVn_slow
* add handling for selective ignoring of addressing errors in 8 byte
loads that are upper or lower halves of a 16 byte access in guest
code. Logic analogous to that for the --partial-loads-ok=yes
handling.
* add new flag --partial-load128s-ok=yes to control said logic
Modified:
branches/ICC111/memcheck/mc_include.h
branches/ICC111/memcheck/mc_main.c
Modified: branches/ICC111/memcheck/mc_include.h
===================================================================
--- branches/ICC111/memcheck/mc_include.h 2009-10-08 17:21:30 UTC (rev 10897)
+++ branches/ICC111/memcheck/mc_include.h 2009-10-08 17:26:07 UTC (rev 10898)
@@ -380,9 +380,14 @@
/*--- Command line options + defaults ---*/
/*------------------------------------------------------------*/
-/* Allow loads from partially-valid addresses? default: YES */
+/* Allow word-sized, word-aligned loads from partially-valid
+ addresses? default: NO */
extern Bool MC_(clo_partial_loads_ok);
+/* Allow 128-bit sized, 128-bit aligned loads from partially valid
+ addresses? default: NO */
+extern Bool MC_(clo_partial_load128s_ok);
+
/* Max volume of the freed blocks queue. */
extern Long MC_(clo_freelist_vol);
Modified: branches/ICC111/memcheck/mc_main.c
===================================================================
--- branches/ICC111/memcheck/mc_main.c 2009-10-08 17:21:30 UTC (rev 10897)
+++ branches/ICC111/memcheck/mc_main.c 2009-10-08 17:26:07 UTC (rev 10898)
@@ -1153,10 +1153,18 @@
#endif
ULong mc_LOADVn_slow ( Addr a, SizeT nBits, Bool bigendian, Modifier mo )
{
- /* Make up a 64-bit result V word, which contains the loaded data for
- valid addresses and Defined for invalid addresses. Iterate over
- the bytes in the word, from the most significant down to the
- least. */
+ /* Make up a 64-bit result V word, which contains the loaded data
+ for valid addresses and Defined for invalid addresses. Up to 64
+ V bits are returned, so this routine works for NBITS being 64,
+ 32, 16, or 8.
+
+ The returned V bits are in the lowest NBITS bits of the returned
+ ULong, and are fished out of memory with endianness that is
+ consistent with BIGENDIAN. For example, if NBITS is 64 and
+ BIGENDIAN is False, then bits 7:0 of the returned value are the
+ V bits for address A+0; but if BIGENDIAN is True the bits 7:0 of
+ the returned value are the V bits from A+7.
+ */
ULong vbits64 = V_BITS64_UNDEFINED;
SizeT szB = nBits / 8;
SSizeT i; // Must be signed.
@@ -1226,18 +1234,51 @@
- it's a word-sized, word-aligned load
- at least one of the addresses in the word *is* valid
*/
- Bool partial_load_exemption_applies
- = MC_(clo_partial_loads_ok)
- && szB == VG_WORDSIZE
- && VG_IS_WORD_ALIGNED(a)
- && n_addrs_bad < VG_WORDSIZE;
- Bool sse2_strlen_exemption_applies
- = szB == 8
- && (mo == MoLA64of128 || mo == MoHA64of128);
+ Bool complain = True;
+ if (MC_(clo_partial_loads_ok)
+ && szB == VG_WORDSIZE && VG_IS_WORD_ALIGNED(a)
+ && (szB == 8 ? mo == MoNone : True)
+ && n_addrs_bad < VG_WORDSIZE)
+ {
+ complain = False;
+ }
+ else
+ if (MC_(clo_partial_load128s_ok)
+ && szB == 8
+ && (mo == MoLA64of128 || mo == MoHA64of128)
+ && VG_IS_8_ALIGNED(a)) {
+ /* Examine the entire containing 128-bit aligned, 128-bit
+ sized word, to see if there are any valid addresses in it.
+ We don't care about the endianness here, since we're
+ merely counting how many addresses are invalid. (Could do
+ better!) */
+VG_(printf)("QQQQ a = %#lx mo = %d\n", a, (Int)mo);
+ Addr a128 = mo == MoLA64of128 ? a : a-8;
+ if (VG_IS_16_ALIGNED(a128)) {
+ Int nab128 = 0;
+ for (i = 0; i < 16; i++) {
+ ai = a128 + i;
+ ok = get_vbits8(ai, &vbits8);
+ if (!ok) nab128++;
+ }
+ /* So, there are NAB128 bad addresses in the containing
+ 16-byte block. There must be at least one (else how
+ did we get here?) If not all of them are bad, let it
+ slide .. let the access through. Note, we could do
+ much better here; viz, check for an initial prefix of
+ addressible bytes followed by unaddressable bytes,
+ since that's the expected use case (a zero-terminated
+ C-style string). */
+VG_(printf)("QQQQ a128 = %#lx nab = %d\n", a128, (Int)nab128);
+ tl_assert(nab128 > 0);
+ if (nab128 < 16)
+ complain = False;
+ }
+ }
+
/* If we can't find any reason not to, report the error. */
- if (! (partial_load_exemption_applies
- || sse2_strlen_exemption_applies))
+ if (complain)
MC_(record_address_error)( VG_(get_running_tid)(),
a, szB, False );
}
@@ -1252,6 +1293,8 @@
#endif
void mc_STOREVn_slow ( Addr a, SizeT nBits, ULong vbytes, Bool bigendian )
{
+ /* The conventions w.r.t. byte ordering in VBYTES are the same as
+ for in mc_LOADVn_slow, detailed above. */
SizeT szB = nBits / 8;
SizeT i, n_addrs_bad = 0;
UChar vbits8;
@@ -4681,6 +4724,7 @@
/*------------------------------------------------------------*/
Bool MC_(clo_partial_loads_ok) = False;
+Bool MC_(clo_partial_load128s_ok) = False;
Long MC_(clo_freelist_vol) = 10*1000*1000LL;
LeakCheckMode MC_(clo_leak_check) = LC_Summary;
VgRes MC_(clo_leak_resolution) = Vg_HighRes;
@@ -4736,7 +4780,9 @@
}
}
- if VG_BOOL_CLO(arg, "--partial-loads-ok", MC_(clo_partial_loads_ok)) {}
+ if VG_BOOL_CLO(arg, "--partial-loads-ok", MC_(clo_partial_loads_ok)) {}
+ else if VG_BOOL_CLO(arg, "--partial-load128s-ok",
+ MC_(clo_partial_load128s_ok)) {}
else if VG_BOOL_CLO(arg, "--show-reachable", MC_(clo_show_reachable)) {}
else if VG_BOOL_CLO(arg, "--workaround-gcc296-bugs",
MC_(clo_workaround_gcc296_bugs)) {}
@@ -4806,6 +4852,7 @@
" --undef-value-errors=no|yes check for undefined value errors [yes]\n"
" --track-origins=no|yes show origins of undefined values? [no]\n"
" --partial-loads-ok=no|yes too hard to explain here; see manual [no]\n"
+" --partial-load128s-ok=no|yes too hard to explain here; see manual [no]\n"
" --freelist-vol=<number> volume of freed blocks queue [10000000]\n"
" --workaround-gcc296-bugs=no|yes self explanatory [no]\n"
" --ignore-ranges=0xPP-0xQQ[,0xRR-0xSS] assume given addresses are OK\n"
|
|
From: <sv...@va...> - 2009-10-08 17:21:47
|
Author: sewardj
Date: 2009-10-08 18:21:30 +0100 (Thu, 08 Oct 2009)
New Revision: 10897
Log:
* use expensive interpretation for Ctz64 (as is already used for Ctz32)
* handle Iop_ExpCmpNE64
Modified:
branches/ICC111/memcheck/mc_translate.c
Modified: branches/ICC111/memcheck/mc_translate.c
===================================================================
--- branches/ICC111/memcheck/mc_translate.c 2009-09-30 13:27:58 UTC (rev 10896)
+++ branches/ICC111/memcheck/mc_translate.c 2009-10-08 17:21:30 UTC (rev 10897)
@@ -1671,27 +1671,38 @@
PCast(improved) = 1111111111 ("all undefined")
*/
static
-IRAtom* expensiveCountTrailingZeroes32 ( MCEnv* mce,
- IRAtom* aa, IRAtom* aav )
+IRAtom* expensiveCountTrailingZeroes ( MCEnv* mce, IRType ty,
+ IRAtom* aa, IRAtom* aav )
{
- IRType ty;
- IRAtom *improver, *improved;
+ IROp opXOR, opSUB, opAND;
+ IRAtom *improver, *improved, *one;
tl_assert(isShadowAtom(mce,aav));
tl_assert(isOriginalAtom(mce,aa));
tl_assert(sameKindedAtoms(aav,aa));
- ty = Ity_I32;
+ switch (ty) {
+ case Ity_I32:
+ opXOR = Iop_Xor32; opSUB = Iop_Sub32;
+ opAND = Iop_And32; one = mkU32(1);
+ break;
+ case Ity_I64:
+ opXOR = Iop_Xor64; opSUB = Iop_Sub64;
+ opAND = Iop_And64; one = mkU64(1);
+ break;
+ default:
+ VG_(tool_panic)("expensiveCountTrailingZeroes");
+ }
+
// improver = aa ^ (aa - 1)
- improver = assignNew('V', mce,ty,
- binop(Iop_Xor32,
- aa,
- assignNew('V', mce,ty,
- binop(Iop_Sub32,
- aa,
- mkU32(1)))));
+ improver
+ = assignNew('V', mce,ty,
+ binop(opXOR,
+ aa,
+ assignNew('V', mce,ty,
+ binop(opSUB, aa, one))));
// improved = aav & improver
improved = assignNew('V', mce,ty,
- binop(Iop_And32, aav, improver));
+ binop(opAND, aav, improver));
// PCast(improved)
return mkPCastTo(mce, ty, improved);
}
@@ -2606,6 +2617,7 @@
goto cheap_cmp64;
expensive_cmp64:
+ case Iop_ExpCmpNE64:
return expensiveCmpEQorNE(mce,Ity_I64, vatom1,vatom2, atom1,atom2 );
cheap_cmp64:
@@ -2779,15 +2791,16 @@
case Iop_RoundF64toF64_PosINF:
case Iop_RoundF64toF64_ZERO:
case Iop_Clz64:
- case Iop_Ctz64:
return mkPCastTo(mce, Ity_I64, vatom);
case Iop_Clz32:
case Iop_TruncF64asF32:
return mkPCastTo(mce, Ity_I32, vatom);
+ case Iop_Ctz64:
+ return expensiveCountTrailingZeroes(mce, Ity_I64, atom, vatom);
case Iop_Ctz32:
- return expensiveCountTrailingZeroes32(mce, atom, vatom);
+ return expensiveCountTrailingZeroes(mce, Ity_I32, atom, vatom);
case Iop_1Uto64:
case Iop_8Uto64:
|
|
From: Bart V. A. <bar...@gm...> - 2009-10-08 07:25:30
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-10-08 02:00:06 EDT Ended at 2009-10-08 03:25:08 EDT 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 == 448 tests, 45 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) |