You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(10) |
2
(22) |
3
(15) |
4
(14) |
5
(8) |
6
(10) |
7
(14) |
|
8
(9) |
9
(10) |
10
(21) |
11
(16) |
12
(17) |
13
(15) |
14
(8) |
|
15
(12) |
16
(8) |
17
(44) |
18
(24) |
19
(29) |
20
(29) |
21
(17) |
|
22
(17) |
23
(16) |
24
(18) |
25
(16) |
26
(15) |
27
(16) |
28
(11) |
|
29
(11) |
30
(10) |
31
(12) |
|
|
|
|
|
From: <sv...@va...> - 2006-01-02 14:41:55
|
Author: cerion
Date: 2006-01-02 14:41:50 +0000 (Mon, 02 Jan 2006)
New Revision: 1527
Log:
Handle ppc64's function ptr's for toIR.c's dirtyhelper calls.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-02 14:09:16 UTC (rev 1526)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-02 14:41:50 UTC (rev 1527)
@@ -148,7 +148,23 @@
disInstr_PPC below. */
static Bool mode64 =3D False;
=20
+// Given a pointer to a function as obtained by "& functionname" in C,
+// produce a pointer to the actual entry point for the function. For
+// most platforms it's the identity function. Unfortunately, on
+// ppc64-linux it isn't (sigh).
+static void* fnptr_to_fnentry( void* f )
+{
+#if defined(__powerpc64__)
+ /* f is a pointer to a 3-word function descriptor, of which
+ the first word is the entry address. */
+ ULong* fdescr =3D (ULong*)f;
+ return (void*)(fdescr[0]);
+#else
+ return f;
+#endif
+}
=20
+
/*------------------------------------------------------------*/
/*--- Debugging output ---*/
/*------------------------------------------------------------*/
@@ -5037,11 +5053,12 @@
case 0x173: { // mftb (Move from Time Base, PPC32 p475)
IRTemp val =3D newTemp(Ity_I64);
IRExpr** args =3D mkIRExprVec_0();
- IRDirty* d =3D unsafeIRDirty_1_N( val,=20
- 0/*regparms*/,=20
- "ppcg_dirtyhelper_MFTB",=20
- &ppcg_dirtyhelper_MFTB,=20
- args );
+ IRDirty* d =3D unsafeIRDirty_1_N(
+ val,=20
+ 0/*regparms*/,=20
+ "ppcg_dirtyhelper_MFTB",=20
+ fnptr_to_fnentry(&ppcg_dirtyhelper_MFTB),=20
+ args );
/* execute the dirty call, dumping the result in val. */
stmt( IRStmt_Dirty(d) );
=20
@@ -6347,15 +6364,17 @@
mkU32(0xF)),
mkU32(0)/*left*/ );
if (!mode64) {
- d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
- "ppc32g_dirtyhelper_LVS",
- &ppc32g_dirtyhelper_LVS,
- args );
+ d =3D unsafeIRDirty_0_N (
+ 0/*regparms*/,=20
+ "ppc32g_dirtyhelper_LVS",
+ fnptr_to_fnentry(&ppc32g_dirtyhelper_LVS),
+ args );
} else {
- d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
- "ppc64g_dirtyhelper_LVS",
- &ppc64g_dirtyhelper_LVS,
- args );
+ d =3D unsafeIRDirty_0_N (
+ 0/*regparms*/,=20
+ "ppc64g_dirtyhelper_LVS",
+ fnptr_to_fnentry(&ppc64g_dirtyhelper_LVS),
+ args );
}
DIP("lvsl v%d,r%u,r%u\n", vD_addr, rA_addr, rB_addr);
/* declare guest state effects */
@@ -6378,15 +6397,17 @@
mkU32(0xF)),
mkU32(1)/*right*/ );
if (!mode64) {
- d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
- "ppc32g_dirtyhelper_LVS",
- &ppc32g_dirtyhelper_LVS,
- args );
+ d =3D unsafeIRDirty_0_N (
+ 0/*regparms*/,=20
+ "ppc32g_dirtyhelper_LVS",
+ fnptr_to_fnentry(&ppc32g_dirtyhelper_LVS),
+ args );
} else {
- d =3D unsafeIRDirty_0_N ( 0/*regparms*/,=20
- "ppc64g_dirtyhelper_LVS",
- &ppc64g_dirtyhelper_LVS,
- args );
+ d =3D unsafeIRDirty_0_N (
+ 0/*regparms*/,=20
+ "ppc64g_dirtyhelper_LVS",
+ fnptr_to_fnentry(&ppc64g_dirtyhelper_LVS),
+ args );
}
DIP("lvsr v%d,r%u,r%u\n", vD_addr, rA_addr, rB_addr);
/* declare guest state effects */
|
|
From: <sv...@va...> - 2006-01-02 14:09:24
|
Author: cerion
Date: 2006-01-02 14:09:16 +0000 (Mon, 02 Jan 2006)
New Revision: 1526
Log:
Handle ppc64's function ptr's in bb_to_IR::do_self_check.
Modified:
trunk/priv/guest-generic/bb_to_IR.c
Modified: trunk/priv/guest-generic/bb_to_IR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-generic/bb_to_IR.c 2006-01-02 13:35:51 UTC (rev 1525=
)
+++ trunk/priv/guest-generic/bb_to_IR.c 2006-01-02 14:09:16 UTC (rev 1526=
)
@@ -57,11 +57,11 @@
static UInt genericg_compute_adler32 ( HWord addr, HWord len );
=20
=20
-/* Disassemble a complete basic block, starting at guest_IP_start,=20
+/* Disassemble a complete basic block, starting at guest_IP_bbstart,=20
returning a new IRBB. The disassembler may chase across basic
block boundaries if it wishes and if chase_into_ok allows it.
The precise guest address ranges from which code has been taken
- are written into vge. guest_IP_start is taken to be the IP in
+ are written into vge. guest_IP_bbstart is taken to be the IP in
the guest's address space corresponding to the instruction at
&guest_code[0]. =20
=20
@@ -344,7 +344,11 @@
Ity_I32,=20
2/*regparms*/,=20
"genericg_compute_adler32",
+#if defined(__powerpc__) && defined(__powerpc64__)
+ (void*)((ULong*)(&genericg_compute_adler32))[0],
+#else
&genericg_compute_adler32,
+#endif
mkIRExprVec_2(=20
mkIRExpr_HWord( (HWord)guest_code ),=20
mkIRExpr_HWord( (HWord)len2check )
|
|
From: Cerion Armour-B. <ce...@op...> - 2006-01-02 13:50:36
|
On Monday 02 January 2006 14:18, Julian Seward wrote: > > I don't see why this fix works... i followed it through, and it looks > > like the only relevant change is to picking up "((ULong*)entry)[1]" in > > load_ELF() instead of later in init_thread1state()... ? > > Because there are two different variables called "entry" which are > unrelated :-). ugh! |
|
From: <sv...@va...> - 2006-01-02 13:36:16
|
Author: cerion
Date: 2006-01-02 13:35:51 +0000 (Mon, 02 Jan 2006)
New Revision: 1525
Log:
ppc64 fixes:
- branch: compare full 64bits of CTR reg to zero.
- stwcx.: store only lo32 bits of r_src to EA in 64bit mode.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-02 12:28:17 UTC (rev 1524)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-02 13:35:51 UTC (rev 1525)
@@ -4049,18 +4049,20 @@
{
IRType ty =3D mode64 ? Ity_I64 : Ity_I32;
IRTemp ok =3D newTemp(Ity_I32);
- IRExpr* ctr_lo32;
=20
if ((BO >> 2) & 1) { // independent of ctr
assign( ok, mkU32(0xFFFFFFFF) );
} else {
- ctr_lo32 =3D mkSzNarrow32(ty, getGST( PPC_GST_CTR ));
if ((BO >> 1) & 1) { // ctr =3D=3D 0 ?
assign( ok, unop( Iop_1Sto32,
- binop( Iop_CmpEQ32, ctr_lo32, mkU32(0))) );
+ binop( mkSzOp(ty, Iop_CmpEQ8),
+ getGST( PPC_GST_CTR ),
+ mkSzImm(ty,0))) );
} else { // ctr !=3D 0 ?
assign( ok, unop( Iop_1Sto32,
- binop( Iop_CmpNE32, ctr_lo32, mkU32(0))) );
+ binop( mkSzOp(ty, Iop_CmpNE8),
+ getGST( PPC_GST_CTR ),
+ mkSzImm(ty,0))) );
}
}
return mkexpr(ok);
@@ -4503,8 +4505,8 @@
If resaddr !=3D lwarx_resaddr, CR0[EQ] is undefined, and
whether rS is stored is dependent on that value. */
=20
- /* Success? Do the store */
- storeBE( mkexpr(EA), mkexpr(rS) );
+ /* Success? Do the (32bit) store */
+ storeBE( mkexpr(EA), mkSzNarrow32(ty, mkexpr(rS)) );
=20
// Set CR0[LT GT EQ S0] =3D 0b001 || XER[SO]
putCR321(0, mkU8(1<<1));
@@ -4532,7 +4534,7 @@
=20
sync =3D sync 0
lwsync =3D sync 1
- */
+ */
if ((b11to25 !=3D 0/*sync*/ && b11to25 !=3D 1024/*lwsync*/) || =
b0 !=3D 0) {
vex_printf("dis_memsync(ppc)(sync/lwsync,b11to25|b0)\n");
return False;
|
|
From: <sv...@va...> - 2006-01-02 12:28:24
|
Author: cerion
Date: 2006-01-02 12:28:17 +0000 (Mon, 02 Jan 2006)
New Revision: 1524
Log:
ppc64: handle 32HLto64, 64HLtoV128
Modified:
trunk/priv/host-ppc/isel.c
Modified: trunk/priv/host-ppc/isel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-ppc/isel.c 2006-01-02 00:35:24 UTC (rev 1523)
+++ trunk/priv/host-ppc/isel.c 2006-01-02 12:28:17 UTC (rev 1524)
@@ -1251,6 +1251,19 @@
//zz return hi16;
//zz }
=20
+ if (e->Iex.Binop.op =3D=3D Iop_32HLto64) {
+ HReg r_dst =3D newVRegI(env);
+ HReg r_Hi =3D iselIntExpr_R(env, e->Iex.Binop.arg1);
+ HReg r_Lo =3D iselIntExpr_R(env, e->Iex.Binop.arg2);
+ vassert(mode64);
+ /* r_dst =3D OR( r_Hi<<32, r_Lo ) */
+ addInstr(env, PPCInstr_Shft(Pshft_SHL, False/*64bit shift*/,
+ r_dst, r_Hi, PPCRH_Imm(False,32)));
+ addInstr(env, PPCInstr_Alu( Palu_OR, r_dst, r_dst,
+ PPCRH_Reg(r_Lo) ));
+ return r_dst;
+ }
+
//.. if (e->Iex.Binop.op =3D=3D Iop_MullS16 || e->Iex.Binop.op =3D=
=3D Iop_MullS8
//.. || e->Iex.Binop.op =3D=3D Iop_MullU16 || e->Iex.Binop.op =
=3D=3D Iop_MullU8) {
//.. HReg a16 =3D newVRegI32(env);
@@ -1645,9 +1658,9 @@
=20
case Iop_V128to64:
case Iop_V128HIto64: {
- HReg r_aligned16;
- HReg dst =3D newVRegI(env);
- HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
+ HReg r_aligned16;
+ HReg dst =3D newVRegI(env);
+ HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
PPCAMode *am_off0, *am_off8;
vassert(mode64);
sub_from_sp( env, 32 ); // Move SP down 32 bytes
@@ -3804,9 +3817,9 @@
//..=20
case Iop_64HLtoV128: {
if (!mode64) {
- HReg r3, r2, r1, r0, r_aligned16;
+ HReg r3, r2, r1, r0, r_aligned16;
PPCAMode *am_off0, *am_off4, *am_off8, *am_off12;
- HReg dst =3D newVRegV(env);
+ HReg dst =3D newVRegV(env);
/* do this via the stack (easy, convenient, etc) */
sub_from_sp( env, 32 ); // Move SP down
=20
@@ -3832,8 +3845,28 @@
add_to_sp( env, 32 ); // Reset SP
return dst;
} else {
- // TODO
- vassert(0);
+ HReg rHi =3D iselIntExpr_R(env, e->Iex.Binop.arg1);
+ HReg rLo =3D iselIntExpr_R(env, e->Iex.Binop.arg2);
+ HReg dst =3D newVRegV(env);
+ HReg r_aligned16;
+ PPCAMode *am_off0, *am_off8;
+ /* do this via the stack (easy, convenient, etc) */
+ sub_from_sp( env, 32 ); // Move SP down
+ =20
+ // get a quadword aligned address within our stack space
+ r_aligned16 =3D get_sp_aligned16( env );
+ am_off0 =3D PPCAMode_IR( 0, r_aligned16 );
+ am_off8 =3D PPCAMode_IR( 8, r_aligned16 );
+ =20
+ /* Store 2*I64 to stack */
+ addInstr(env, PPCInstr_Store( 8, am_off0, rHi, mode64 ));
+ addInstr(env, PPCInstr_Store( 8, am_off8, rLo, mode64 ));
+
+ /* Fetch result back from stack. */
+ addInstr(env, PPCInstr_AvLdSt(True/*ld*/, 16, dst, am_off0))=
;
+ =20
+ add_to_sp( env, 32 ); // Reset SP
+ return dst;
}
}
=20
|
|
From: <js...@ac...> - 2006-01-02 04:00:05
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-02 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 209 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 208 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Jan 2 03:43:45 2006 --- new.short Mon Jan 2 04:00:27 2006 *************** *** 10,12 **** ! == 208 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 209 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) |
|
From: <js...@ac...> - 2006-01-02 03:54:44
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-02 04:40: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 == 176 tests, 15 stderr failures, 1 stdout failure ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/xml1 (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) |
|
From: Tom H. <to...@co...> - 2006-01-02 03:42:51
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-02 03:30:05 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 == 211 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 210 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Jan 2 03:36:27 2006 --- new.short Mon Jan 2 03:42:46 2006 *************** *** 8,14 **** ! == 210 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) ! memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) --- 8,15 ---- ! == 211 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) ! memcheck/tests/mempool (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) + memcheck/tests/x86/sse1_memory (stdout) none/tests/mremap2 (stdout) |
|
From: <sv...@va...> - 2006-01-02 00:35:29
|
Author: sewardj
Date: 2006-01-02 00:35:24 +0000 (Mon, 02 Jan 2006)
New Revision: 1523
Log:
ppc64: handle V128to64, V128HIto64.
Modified:
trunk/priv/host-ppc/isel.c
Modified: trunk/priv/host-ppc/isel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-ppc/isel.c 2006-01-01 17:15:19 UTC (rev 1522)
+++ trunk/priv/host-ppc/isel.c 2006-01-02 00:35:24 UTC (rev 1523)
@@ -1643,6 +1643,32 @@
return dst;
}
=20
+ case Iop_V128to64:
+ case Iop_V128HIto64: {
+ HReg r_aligned16;
+ HReg dst =3D newVRegI(env);
+ HReg vec =3D iselVecExpr(env, e->Iex.Unop.arg);
+ PPCAMode *am_off0, *am_off8;
+ vassert(mode64);
+ sub_from_sp( env, 32 ); // Move SP down 32 bytes
+
+ // get a quadword aligned address within our stack space
+ r_aligned16 =3D get_sp_aligned16( env );
+ am_off0 =3D PPCAMode_IR( 0, r_aligned16 );
+ am_off8 =3D PPCAMode_IR( 8 ,r_aligned16 );
+
+ // store vec, load low word (+8) or high (+0) to dst
+ addInstr(env,
+ PPCInstr_AvLdSt( False/*store*/, 16, vec, am_off0 ));
+ addInstr(env,
+ PPCInstr_Load( 8, False, dst,=20
+ op_unop =3D=3D Iop_V128HIto64 ? am_o=
ff0 : am_off8,=20
+ mode64 ));
+
+ add_to_sp( env, 32 ); // Reset SP
+ return dst;
+ }
+
case Iop_16to8:
case Iop_32to8:
case Iop_32to16:
|
|
From: <sv...@va...> - 2006-01-01 23:00:59
|
Author: sewardj
Date: 2006-01-01 23:00:49 +0000 (Sun, 01 Jan 2006)
New Revision: 5470
Log:
Read dwarf2 line number information even if a .debug_str section was
not found. This is believed to fix the regression in 3.1.X wherein
debug info was sometimes not read from icc-8.1 generated executables.
Modified:
trunk/coregrind/m_debuginfo/dwarf.c
trunk/coregrind/m_debuginfo/symtab.c
Modified: trunk/coregrind/m_debuginfo/dwarf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debuginfo/dwarf.c 2006-01-01 18:26:40 UTC (rev 5469=
)
+++ trunk/coregrind/m_debuginfo/dwarf.c 2006-01-01 23:00:49 UTC (rev 5470=
)
@@ -847,9 +847,14 @@
/* Those cases extract the data properly */
case 0x05: /* FORM_data2 */ cval =3D *((UShort*)p); p +=3D=
2; break;
case 0x06: /* FORM_data4 */ cval =3D *((UInt*)p);p +=3D4=
; break;
- case 0x0e: /* FORM_strp */ sval =3D debugstr + *((UInt*=
)p);=20
- p +=3D 4; break;
- /* pointer in .debug_str */
+ case 0x0e: /* FORM_strp */ /* pointer in .debug_str */
+ /* 2006-01-01: only generate a value if
+ debugstr is non-NULL (which means that a
+ debug_str section was found) */
+ if (debugstr)
+ sval =3D debugstr + *((UI=
nt*)p);=20
+ p +=3D 4;=20
+ break;
case 0x08: /* FORM_string */ sval =3D (Char*)p;=20
p +=3D VG_(strlen)((Char*)p)=
+ 1; break;
case 0x0b: /* FORM_data1 */ cval =3D *p; p++; break;
Modified: trunk/coregrind/m_debuginfo/symtab.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debuginfo/symtab.c 2006-01-01 18:26:40 UTC (rev 546=
9)
+++ trunk/coregrind/m_debuginfo/symtab.c 2006-01-01 23:00:49 UTC (rev 547=
0)
@@ -1743,7 +1743,12 @@
stabstr, stabstr_sz );
}
# endif
- if (debug_info && debug_abbv && debug_line && debug_str) {
+ /* jrs 2006-01-01: icc-8.1 has been observed to generate
+ binaries without debug_str sections. Don't preclude
+ debuginfo reading for that reason, but, in
+ read_unitinfo_dwarf2, do check that debugstr is non-NULL
+ before using it. */
+ if (debug_info && debug_abbv && debug_line /* && debug_str */) {
ML_(read_debuginfo_dwarf2) ( si,=20
debug_info, debug_info_sz,
debug_abbv,
|
|
From: <sv...@va...> - 2006-01-01 18:26:45
|
Author: sewardj
Date: 2006-01-01 18:26:40 +0000 (Sun, 01 Jan 2006)
New Revision: 5469
Log:
Make this work on SSE1-only machines.
Modified:
trunk/memcheck/tests/amd64/sse_memory.c
Modified: trunk/memcheck/tests/amd64/sse_memory.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/amd64/sse_memory.c 2006-01-01 17:17:55 UTC (rev =
5468)
+++ trunk/memcheck/tests/amd64/sse_memory.c 2006-01-01 18:26:40 UTC (rev =
5469)
@@ -99,10 +99,10 @@
void r_r_##OP ( RRArgs* p ) \
{ \
__asm__ __volatile__("\n" \
- "\tmovupd 0(%0), %%xmm6\n" \
- "\tmovupd 16(%0), %%xmm7\n" \
+ "\tmovups 0(%0), %%xmm6\n" \
+ "\tmovups 16(%0), %%xmm7\n" \
"\t" #OP " %%xmm6, %%xmm7\n" \
- "\tmovupd %%xmm7, 32(%0)\n" \
+ "\tmovups %%xmm7, 32(%0)\n" \
: \
: "r" (p) \
: "memory", "xmm6", "xmm7", "cc" \
@@ -113,9 +113,9 @@
void r_m_##OP ( RMArgs* p, void* mem ) \
{ \
__asm__ __volatile__("\n" \
- "\tmovupd 0(%0), %%xmm7\n" \
+ "\tmovups 0(%0), %%xmm7\n" \
"\t" #OP " 0(%1), %%xmm7\n" \
- "\tmovupd %%xmm7, 16(%0)\n" \
+ "\tmovups %%xmm7, 16(%0)\n" \
: \
: "r" (p), "r" (mem) \
: "memory", "xmm7", "cc" \
|
|
From: <sv...@va...> - 2006-01-01 17:17:58
|
Author: sewardj
Date: 2006-01-01 17:17:55 +0000 (Sun, 01 Jan 2006)
New Revision: 5468
Log:
Update.
Modified:
trunk/docs/internals/3_1_BUGSTATUS.txt
Modified: trunk/docs/internals/3_1_BUGSTATUS.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/3_1_BUGSTATUS.txt 2006-01-01 15:22:16 UTC (rev 5=
467)
+++ trunk/docs/internals/3_1_BUGSTATUS.txt 2006-01-01 17:17:55 UTC (rev 5=
468)
@@ -34,3 +34,4 @@
(TODO: VERIFY 31BRANCH)
v5427 v5451 n-i-bz OSet 64-bit fastcmp bug
v5445 pending n-i-bz VG_(getgroups) fix (Shinichi Noda)
+vx1521/2 pending 119297 Incorrect error message for sse code
|
|
From: <sv...@va...> - 2006-01-01 17:15:24
|
Author: sewardj
Date: 2006-01-01 17:15:19 +0000 (Sun, 01 Jan 2006)
New Revision: 1522
Log:
x86 counterpart to r1521: For SSE scalar comparison operations where
one operand is in memory, do not read more memory than needed.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2006-01-01 13:17:38 UTC (rev 1521)
+++ trunk/priv/guest-x86/toIR.c 2006-01-01 17:15:19 UTC (rev 1522)
@@ -6672,7 +6672,7 @@
vpanic("findSSECmpOp(x86,guest)");
}
=20
-/* Handles SSE 32F comparisons. */
+/* Handles SSE 32F/64F comparisons. */
=20
static UInt dis_SSEcmp_E_to_G ( UChar sorb, Int delta,=20
HChar* opname, Bool all_lanes, Int sz )
@@ -6700,8 +6700,15 @@
addr =3D disAMode ( &alen, sorb, delta, dis_buf );
imm8 =3D getIByte(delta+alen);
findSSECmpOp(&needNot, &op, imm8, all_lanes, sz);
- assign( plain, binop(op, getXMMReg(gregOfRM(rm)),=20
- loadLE(Ity_V128, mkexpr(addr))) );
+ assign( plain,=20
+ binop(
+ op,
+ getXMMReg(gregOfRM(rm)),=20
+ all_lanes ? loadLE(Ity_V128, mkexpr(addr))
+ : sz =3D=3D 8 ? unop( Iop_64UtoV128, loadLE(Ity_I64,=
mkexpr(addr)))
+ : /*sz=3D=3D4*/ unop( Iop_32UtoV128, loadLE(Ity_I32,=
mkexpr(addr)))
+ )=20
+ );
delta +=3D alen+1;
DIP("%s $%d,%s,%s\n", opname,
(Int)imm8,
|
|
From: <sv...@va...> - 2006-01-01 15:22:24
|
Author: sewardj Date: 2006-01-01 15:22:16 +0000 (Sun, 01 Jan 2006) New Revision: 5467 Log: Also do sse memory overrun tests on x86. Added: trunk/memcheck/tests/x86/sse1_memory.stderr.exp trunk/memcheck/tests/x86/sse1_memory.stdout.exp trunk/memcheck/tests/x86/sse1_memory.vgtest trunk/memcheck/tests/x86/sse2_memory.stderr.exp trunk/memcheck/tests/x86/sse2_memory.stdout.exp trunk/memcheck/tests/x86/sse2_memory.vgtest trunk/memcheck/tests/x86/sse_memory.c Modified: trunk/memcheck/tests/x86/Makefile.am [... diff too large to include ...] |
|
From: <sv...@va...> - 2006-01-01 14:27:12
|
Author: sewardj Date: 2006-01-01 14:27:04 +0000 (Sun, 01 Jan 2006) New Revision: 5466 Log: Add a test program which checks for memory overruns in the SSE insn decoder. Added: trunk/memcheck/tests/amd64/sse_memory.c trunk/memcheck/tests/amd64/sse_memory.stderr.exp trunk/memcheck/tests/amd64/sse_memory.stdout.exp trunk/memcheck/tests/amd64/sse_memory.vgtest Modified: trunk/memcheck/tests/amd64/Makefile.am [... diff too large to include ...] |
|
From: <sv...@va...> - 2006-01-01 13:17:48
|
Author: sewardj
Date: 2006-01-01 13:17:38 +0000 (Sun, 01 Jan 2006)
New Revision: 1521
Log:
For SSE scalar comparison operations where one operand is in memory,
do not read more memory than needed.
Modified:
trunk/priv/guest-amd64/toIR.c
Modified: trunk/priv/guest-amd64/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/toIR.c 2005-12-30 15:04:29 UTC (rev 1520)
+++ trunk/priv/guest-amd64/toIR.c 2006-01-01 13:17:38 UTC (rev 1521)
@@ -7601,7 +7601,7 @@
vpanic("findSSECmpOp(amd64,guest)");
}
=20
-/* Handles SSE 32F comparisons. */
+/* Handles SSE 32F/64F comparisons. */
=20
static ULong dis_SSEcmp_E_to_G ( Prefix pfx, Long delta,=20
HChar* opname, Bool all_lanes, Int sz )
@@ -7629,8 +7629,15 @@
addr =3D disAMode ( &alen, pfx, delta, dis_buf, 1 );
imm8 =3D getUChar(delta+alen);
findSSECmpOp(&needNot, &op, imm8, all_lanes, sz);
- assign( plain, binop(op, getXMMReg(gregOfRexRM(pfx,rm)),=20
- loadLE(Ity_V128, mkexpr(addr))) );
+ assign( plain,=20
+ binop(
+ op,
+ getXMMReg(gregOfRexRM(pfx,rm)),=20
+ all_lanes ? loadLE(Ity_V128, mkexpr(addr))
+ : sz =3D=3D 8 ? unop( Iop_64UtoV128, loadLE(Ity_I64,=
mkexpr(addr)))
+ : /*sz=3D=3D4*/ unop( Iop_32UtoV128, loadLE(Ity_I32,=
mkexpr(addr)))
+ )=20
+ );
delta +=3D alen+1;
DIP("%s $%d,%s,%s\n", opname,
(Int)imm8,
|
|
From: <js...@ac...> - 2006-01-01 03:55:52
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-01 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 208 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2006-01-01 03:54:46
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-01 04:40: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 == 176 tests, 15 stderr failures, 1 stdout failure ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/xml1 (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) |
|
From: Tom H. <to...@co...> - 2006-01-01 03:42:46
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-01 03:30:05 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 == 210 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 210 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 1 03:36:28 2006 --- new.short Sun Jan 1 03:42:39 2006 *************** *** 8,12 **** ! == 210 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) - memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) --- 8,11 ---- ! == 210 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) |