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
(13) |
2
(33) |
3
(25) |
4
(22) |
5
(22) |
6
(21) |
7
(19) |
|
8
(29) |
9
(34) |
10
(29) |
11
(37) |
12
(36) |
13
(28) |
14
(25) |
|
15
(28) |
16
(23) |
17
(36) |
18
(21) |
19
(12) |
20
(14) |
21
(10) |
|
22
(7) |
23
(15) |
24
(41) |
25
(15) |
26
(9) |
27
(7) |
28
(6) |
|
29
(16) |
30
(24) |
31
(22) |
|
|
|
|
|
From: <sv...@va...> - 2005-05-08 23:03:56
|
Author: sewardj
Date: 2005-05-09 00:03:48 +0100 (Mon, 09 May 2005)
New Revision: 1170
Modified:
trunk/priv/guest-amd64/gdefs.h
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/hdefs.c
trunk/priv/host-amd64/hdefs.h
trunk/priv/host-amd64/isel.c
Log:
Make a whole bunch more x87 instructions work on amd64.
Modified: trunk/priv/guest-amd64/gdefs.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/gdefs.h 2005-05-07 01:01:24 UTC (rev 1169)
+++ trunk/priv/guest-amd64/gdefs.h 2005-05-08 23:03:48 UTC (rev 1170)
@@ -168,10 +168,10 @@
#define AMD64G_CC_MASK_P (1 << AMD64G_CC_SHIFT_P)
=20
/* FPU flag masks */
-//#define AMD64G_FC_MASK_C3 (1 << 14)
-//#define AMD64G_FC_MASK_C2 (1 << 10)
-//#define AMD64G_FC_MASK_C1 (1 << 9)
-//#define AMD64G_FC_MASK_C0 (1 << 8)
+#define AMD64G_FC_MASK_C3 (1 << 14)
+#define AMD64G_FC_MASK_C2 (1 << 10)
+#define AMD64G_FC_MASK_C1 (1 << 9)
+#define AMD64G_FC_MASK_C0 (1 << 8)
=20
/* %RFLAGS thunk descriptors. A four-word thunk is used to record
details of the most recent flag-setting operation, so the flags can
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-05-07 01:01:24 UTC (rev 1169)
+++ trunk/priv/guest-amd64/toIR.c 2005-05-08 23:03:48 UTC (rev 1170)
@@ -338,7 +338,7 @@
#define OFFB_DFLAG offsetof(VexGuestAMD64State,guest_DFLAG)
#define OFFB_IDFLAG offsetof(VexGuestAMD64State,guest_IDFLAG)
#define OFFB_FTOP offsetof(VexGuestAMD64State,guest_FTOP)
-//.. #define OFFB_FC3210 offsetof(VexGuestX86State,guest_FC3210)
+#define OFFB_FC3210 offsetof(VexGuestAMD64State,guest_FC3210)
#define OFFB_FPROUND offsetof(VexGuestAMD64State,guest_FPROUND)
//..=20
//.. #define OFFB_CS offsetof(VexGuestX86State,guest_CS)
@@ -4124,18 +4124,19 @@
stmt( IRStmt_Put( OFFB_FTOP, e ) );
}
=20
-//.. /* --------- Get/put the C3210 bits. --------- */
-//..=20
-//.. static IRExpr* get_C3210 ( void )
-//.. {
-//.. return IRExpr_Get( OFFB_FC3210, Ity_I32 );
-//.. }
-//..=20
-//.. static void put_C3210 ( IRExpr* e )
-//.. {
-//.. stmt( IRStmt_Put( OFFB_FC3210, e ) );
-//.. }
+/* --------- Get/put the C3210 bits. --------- */
=20
+static IRExpr* /* :: Ity_I64 */ get_C3210 ( void )
+{
+ return IRExpr_Get( OFFB_FC3210, Ity_I64 );
+}
+
+static void put_C3210 ( IRExpr* e /* :: Ity_I64 */ )
+{
+ vassert(typeOfIRExpr(irbb->tyenv, e) =3D=3D Ity_I64);
+ stmt( IRStmt_Put( OFFB_FC3210, e ) );
+}
+
/* --------- Get/put the FPU rounding mode. --------- */
static IRExpr* /* :: Ity_I32 */ get_fpround ( void )
{
@@ -4257,15 +4258,15 @@
put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
}
=20
-//.. /* Clear the C2 bit of the FPU status register, for
-//.. sin/cos/tan/sincos. */
-//..=20
-//.. static void clear_C2 ( void )
-//.. {
-//.. put_C3210( binop(Iop_And32, get_C3210(), mkU32(~X86G_FC_MASK_C2)=
) );
-//.. }
+/* Clear the C2 bit of the FPU status register, for
+ sin/cos/tan/sincos. */
=20
+static void clear_C2 ( void )
+{
+ put_C3210( binop(Iop_And64, get_C3210(), mkU64(~AMD64G_FC_MASK_C2)) )=
;
+}
=20
+
/* ------------------------------------------------------- */
/* Given all that stack-mangling junk, we can now go ahead
and describe FP instructions.=20
@@ -4824,18 +4825,18 @@
put_ST(0, IRExpr_Const(IRConst_F64i(0x0000000000000000ULL=
)));
break;
=20
-//.. case 0xF0: /* F2XM1 */
-//.. DIP("f2xm1\n");
-//.. put_ST_UNCHECKED(0, unop(Iop_2xm1F64, get_ST(0)));
-//.. break;
-//..=20
-//.. case 0xF1: /* FYL2X */
-//.. DIP("fyl2x\n");
-//.. put_ST_UNCHECKED(1, binop(Iop_Yl2xF64,
-//.. get_ST(1), get_ST(0)));
-//.. fp_pop();
-//.. break;
-//..=20
+ case 0xF0: /* F2XM1 */
+ DIP("f2xm1\n");
+ put_ST_UNCHECKED(0, unop(Iop_2xm1F64, get_ST(0)));
+ break;
+
+ case 0xF1: /* FYL2X */
+ DIP("fyl2x\n");
+ put_ST_UNCHECKED(1, binop(Iop_Yl2xF64,
+ get_ST(1), get_ST(0)));
+ fp_pop();
+ break;
+
//.. case 0xF2: /* FPTAN */
//.. DIP("ftan\n");
//.. put_ST_UNCHECKED(0, unop(Iop_TanF64, get_ST(0)));
@@ -4843,14 +4844,14 @@
//.. put_ST(0, IRExpr_Const(IRConst_F64(1.0)));
//.. clear_C2(); /* HACK */
//.. break;
-//..=20
-//.. case 0xF3: /* FPATAN */
-//.. DIP("fpatan\n");
-//.. put_ST_UNCHECKED(1, binop(Iop_AtanF64,
-//.. get_ST(1), get_ST(0)));
-//.. fp_pop();
-//.. break;
-//..=20
+
+ case 0xF3: /* FPATAN */
+ DIP("fpatan\n");
+ put_ST_UNCHECKED(1, binop(Iop_AtanF64,
+ get_ST(1), get_ST(0)));
+ fp_pop();
+ break;
+
//.. case 0xF5: { /* FPREM1 -- IEEE compliant */
//.. IRTemp a1 =3D newTemp(Ity_F64);
//.. IRTemp a2 =3D newTemp(Ity_F64);
@@ -4896,41 +4897,41 @@
put_ST_UNCHECKED(0, unop(Iop_SqrtF64, get_ST(0)));
break;
=20
-//.. case 0xFB: { /* FSINCOS */
-//.. IRTemp a1 =3D newTemp(Ity_F64);
-//.. assign( a1, get_ST(0) );
-//.. DIP("fsincos\n");
-//.. put_ST_UNCHECKED(0, unop(Iop_SinF64, mkexpr(a1)));
-//.. fp_push();
-//.. put_ST(0, unop(Iop_CosF64, mkexpr(a1)));
-//.. clear_C2(); /* HACK */
-//.. break;
-//.. }
-//..=20
-//.. case 0xFC: /* FRNDINT */
-//.. DIP("frndint\n");
-//.. put_ST_UNCHECKED(0,
-//.. binop(Iop_RoundF64, get_roundingmode(), get_ST(0)=
) );
-//.. break;
-//..=20
-//.. case 0xFD: /* FSCALE */
-//.. DIP("fscale\n");
-//.. put_ST_UNCHECKED(0, binop(Iop_ScaleF64,
-//.. get_ST(0), get_ST(1)));
-//.. break;
-//..=20
-//.. case 0xFE: /* FSIN */
-//.. DIP("fsin\n");
-//.. put_ST_UNCHECKED(0, unop(Iop_SinF64, get_ST(0)));
-//.. clear_C2(); /* HACK */
-//.. break;
-//..=20
-//.. case 0xFF: /* FCOS */
-//.. DIP("fcos\n");
-//.. put_ST_UNCHECKED(0, unop(Iop_CosF64, get_ST(0)));
-//.. clear_C2(); /* HACK */
-//.. break;
+ case 0xFB: { /* FSINCOS */
+ IRTemp a1 =3D newTemp(Ity_F64);
+ assign( a1, get_ST(0) );
+ DIP("fsincos\n");
+ put_ST_UNCHECKED(0, unop(Iop_SinF64, mkexpr(a1)));
+ fp_push();
+ put_ST(0, unop(Iop_CosF64, mkexpr(a1)));
+ clear_C2(); /* HACK */
+ break;
+ }
=20
+ case 0xFC: /* FRNDINT */
+ DIP("frndint\n");
+ put_ST_UNCHECKED(0,
+ binop(Iop_RoundF64, get_roundingmode(), get_ST(0)) );
+ break;
+
+ case 0xFD: /* FSCALE */
+ DIP("fscale\n");
+ put_ST_UNCHECKED(0, binop(Iop_ScaleF64,
+ get_ST(0), get_ST(1)));
+ break;
+
+ case 0xFE: /* FSIN */
+ DIP("fsin\n");
+ put_ST_UNCHECKED(0, unop(Iop_SinF64, get_ST(0)));
+ clear_C2(); /* HACK */
+ break;
+
+ case 0xFF: /* FCOS */
+ DIP("fcos\n");
+ put_ST_UNCHECKED(0, unop(Iop_CosF64, get_ST(0)));
+ clear_C2(); /* HACK */
+ break;
+
default:
goto decode_fail;
}
@@ -5037,6 +5038,16 @@
get_ST(0), get_ST(r_src)) );
break;
=20
+ case 0xD8 ... 0xDF: /* FCMOVU ST(i), ST(0) */
+ r_src =3D (UInt)modrm - 0xD8;
+ DIP("fcmovu %%st(%u), %%st(0)\n", r_src);
+ put_ST_UNCHECKED(0,=20
+ IRExpr_Mux0X(=20
+ unop(Iop_1Uto8,
+ mk_amd64g_calculate_condition(A=
MD64CondP)),=20
+ get_ST(0), get_ST(r_src)) );
+ break;
+
//.. case 0xE9: /* FUCOMPP %st(0),%st(1) */
//.. DIP("fucompp %%st(0),%%st(1)\n");
//.. /* This forces C1 to zero, which isn't right. */
Modified: trunk/priv/host-amd64/hdefs.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-amd64/hdefs.c 2005-05-07 01:01:24 UTC (rev 1169)
+++ trunk/priv/host-amd64/hdefs.c 2005-05-08 23:03:48 UTC (rev 1170)
@@ -558,30 +558,30 @@
}
}
=20
-//.. HChar* showAMD64FpOp ( AMD64FpOp op ) {
-//.. switch (op) {
+HChar* showA87FpOp ( A87FpOp op ) {
+ switch (op) {
//.. case Xfp_ADD: return "add";
//.. case Xfp_SUB: return "sub";
//.. case Xfp_MUL: return "mul";
//.. case Xfp_DIV: return "div";
-//.. case Xfp_SCALE: return "scale";
-//.. case Xfp_ATAN: return "atan";
-//.. case Xfp_YL2X: return "yl2x";
+ case Afp_SCALE: return "scale";
+ case Afp_ATAN: return "atan";
+ case Afp_YL2X: return "yl2x";
//.. case Xfp_YL2XP1: return "yl2xp1";
//.. case Xfp_PREM: return "prem";
//.. case Xfp_PREM1: return "prem1";
-//.. case Xfp_SQRT: return "sqrt";
+ case Afp_SQRT: return "sqrt";
//.. case Xfp_ABS: return "abs";
//.. case Xfp_NEG: return "chs";
//.. case Xfp_MOV: return "mov";
-//.. case Xfp_SIN: return "sin";
-//.. case Xfp_COS: return "cos";
+ case Afp_SIN: return "sin";
+ case Afp_COS: return "cos";
//.. case Xfp_TAN: return "tan";
-//.. case Xfp_ROUND: return "round";
-//.. case Xfp_2XM1: return "2xm1";
-//.. default: vpanic("showAMD64FpOp");
-//.. }
-//.. }
+ case Afp_ROUND: return "round";
+ case Afp_2XM1: return "2xm1";
+ default: vpanic("showA87FpOp");
+ }
+}
=20
HChar* showAMD64SseOp ( AMD64SseOp op ) {
switch (op) {
@@ -807,10 +807,40 @@
}
AMD64Instr* AMD64Instr_MFence ( void )
{
- AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
- i->tag =3D Ain_MFence;
+ AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
+ i->tag =3D Ain_MFence;
return i;
}
+AMD64Instr* AMD64Instr_A87Free ( Int nregs )
+{
+ AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
+ i->tag =3D Ain_A87Free;
+ i->Ain.A87Free.nregs =3D nregs;
+ vassert(nregs >=3D 1 && nregs <=3D 7);
+ return i;
+}
+AMD64Instr* AMD64Instr_A87PushPop ( AMD64AMode* addr, Bool isPush )
+{
+ AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
+ i->tag =3D Ain_A87PushPop;
+ i->Ain.A87PushPop.addr =3D addr;
+ i->Ain.A87PushPop.isPush =3D isPush;
+ return i;
+}
+AMD64Instr* AMD64Instr_A87FpOp ( A87FpOp op )
+{
+ AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
+ i->tag =3D Ain_A87FpOp;
+ i->Ain.A87FpOp.op =3D op;
+ return i;
+}
+AMD64Instr* AMD64Instr_A87LdCW ( AMD64AMode* addr )
+{
+ AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
+ i->tag =3D Ain_A87LdCW;
+ i->Ain.A87LdCW.addr =3D addr;
+ return i;
+}
=20
//.. AMD64Instr* AMD64Instr_FpUnary ( AMD64FpOp op, HReg src, HReg dst )=
{
//.. AMD64Instr* i =3D LibVEX_Alloc(sizeof(AMD64Instr));
@@ -1147,6 +1177,20 @@
case Ain_MFence:
vex_printf("mfence" );
return;
+ case Ain_A87Free:
+ vex_printf("ffree %%st(7..%d)\n", 7 - i->Ain.A87Free.nregs );
+ break;
+ case Ain_A87PushPop:
+ vex_printf(i->Ain.A87PushPop.isPush ? "fldl " : "fstpl ");
+ ppAMD64AMode(i->Ain.A87PushPop.addr);
+ break;
+ case Ain_A87FpOp:
+ vex_printf("f%s\n", showA87FpOp(i->Ain.A87FpOp.op));
+ break;
+ case Ain_A87LdCW:
+ vex_printf("fldcw ");
+ ppAMD64AMode(i->Ain.A87LdCW.addr);
+ break;
//.. case Xin_FpUnary:
//.. vex_printf("g%sD ", showAMD64FpOp(i->Xin.FpUnary.op));
//.. ppHRegAMD64(i->Xin.FpUnary.src);
@@ -1457,6 +1501,16 @@
return;
case Ain_MFence:
return;
+ case Ain_A87Free:
+ return;
+ case Ain_A87PushPop:
+ addRegUsage_AMD64AMode(u, i->Ain.A87PushPop.addr);
+ return;
+ case Ain_A87FpOp:
+ return;
+ case Ain_A87LdCW:
+ addRegUsage_AMD64AMode(u, i->Ain.A87LdCW.addr);
+ return;
//.. case Xin_FpUnary:
//.. addHRegUse(u, HRmRead, i->Xin.FpUnary.src);
//.. addHRegUse(u, HRmWrite, i->Xin.FpUnary.dst);
@@ -1583,7 +1637,7 @@
}
=20
/* local helper */
-static void mapReg(HRegRemap* m, HReg* r)
+static inline void mapReg(HRegRemap* m, HReg* r)
{
*r =3D lookupHRegRemap(m, *r);
}
@@ -1655,6 +1709,16 @@
return;
case Ain_MFence:
return;
+ case Ain_A87Free:
+ return;
+ case Ain_A87PushPop:
+ mapRegs_AMD64AMode(m, i->Ain.A87PushPop.addr);
+ return;
+ case Ain_A87FpOp:
+ return;
+ case Ain_A87LdCW:
+ mapRegs_AMD64AMode(m, i->Ain.A87LdCW.addr);
+ return;
//.. case Xin_FpUnary:
//.. mapReg(m, &i->Xin.FpUnary.src);
//.. mapReg(m, &i->Xin.FpUnary.dst);
@@ -2080,14 +2144,15 @@
}
=20
=20
-//.. /* Emit ffree %st(7) */
-//.. static UChar* do_ffree_st7 ( UChar* p )
-//.. {
-//.. *p++ =3D 0xDD;
-//.. *p++ =3D 0xC7;
-//.. return p;
-//.. }
-//..=20
+/* Emit ffree %st(N) */
+static UChar* do_ffree_st ( UChar* p, Int n )
+{
+ vassert(n >=3D 0 && n <=3D 7);
+ *p++ =3D 0xDD;
+ *p++ =3D toUChar(0xC0 + n);
+ return p;
+}
+
//.. /* Emit fstp %st(i), 1 <=3D i <=3D 7 */
//.. static UChar* do_fstp_st ( UChar* p, Int i )
//.. {
@@ -2187,6 +2252,7 @@
UChar rex;
UChar* p =3D &buf[0];
UChar* ptmp;
+ Int j;
vassert(nbuf >=3D 32);
=20
/* Wrap an integer as a int register, for use assembling
@@ -2744,6 +2810,51 @@
*p++ =3D 0x0F; *p++ =3D 0xAE; *p++ =3D 0xF0;
goto done;
=20
+ case Ain_A87Free:
+ vassert(i->Ain.A87Free.nregs > 0 && i->Ain.A87Free.nregs <=3D 7);
+ for (j =3D 0; j < i->Ain.A87Free.nregs; j++) {
+ p =3D do_ffree_st(p, 7-j);
+ }
+ goto done;
+
+ case Ain_A87PushPop:
+ if (i->Ain.A87PushPop.isPush) {
+ /* Load from memory into %st(0): fldl amode */
+ *p++ =3D clearWBit(
+ rexAMode_M(fake(0), i->Ain.A87PushPop.addr) );
+ *p++ =3D 0xDD;
+ p =3D doAMode_M(p, fake(0)/*subopcode*/, i->Ain.A87PushPop.addr);
+ } else {
+ /* Dump %st(0) to memory: fstpl amode */
+ *p++ =3D clearWBit(
+ rexAMode_M(fake(3), i->Ain.A87PushPop.addr) );
+ *p++ =3D 0xDD;
+ p =3D doAMode_M(p, fake(3)/*subopcode*/, i->Ain.A87PushPop.addr=
);
+ goto done;
+ }
+ goto done;
+
+ case Ain_A87FpOp:
+ switch (i->Ain.A87FpOp.op) {
+ case Afp_SQRT: *p++ =3D 0xD9; *p++ =3D 0xFA; break;
+ case Afp_SIN: *p++ =3D 0xD9; *p++ =3D 0xFE; break;
+ case Afp_COS: *p++ =3D 0xD9; *p++ =3D 0xFF; break;
+ case Afp_ROUND: *p++ =3D 0xD9; *p++ =3D 0xFC; break;
+ case Afp_2XM1: *p++ =3D 0xD9; *p++ =3D 0xF0; break;
+ case Afp_SCALE: *p++ =3D 0xD9; *p++ =3D 0xFD; break;
+ case Afp_ATAN: *p++ =3D 0xD9; *p++ =3D 0xF3; break;
+ case Afp_YL2X: *p++ =3D 0xD9; *p++ =3D 0xF1; break;
+ default: goto bad;
+ }
+ goto done;
+
+ case Ain_A87LdCW:
+ *p++ =3D clearWBit(
+ rexAMode_M(fake(5), i->Ain.A87LdCW.addr) );
+ *p++ =3D 0xD9;
+ p =3D doAMode_M(p, fake(5)/*subopcode*/, i->Ain.A87LdCW.addr);
+ goto done;
+
case Ain_Store:
if (i->Ain.Store.sz =3D=3D 2) {
/* This just goes to show the crazyness of the instruction
Modified: trunk/priv/host-amd64/hdefs.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-amd64/hdefs.h 2005-05-07 01:01:24 UTC (rev 1169)
+++ trunk/priv/host-amd64/hdefs.h 2005-05-08 23:03:48 UTC (rev 1170)
@@ -291,22 +291,23 @@
extern HChar* showAMD64ShiftOp ( AMD64ShiftOp );
=20
=20
-//.. /* --------- */
-//.. typedef
-//.. enum {
-//.. Xfp_INVALID,
-//.. /* Binary */
+/* --------- */
+typedef
+ enum {
+ Afp_INVALID,
+ /* Binary */
//.. Xfp_ADD, Xfp_SUB, Xfp_MUL, Xfp_DIV,=20
-//.. Xfp_SCALE, Xfp_ATAN, Xfp_YL2X, Xfp_YL2XP1, Xfp_PREM, Xfp_PREM=
1,
-//.. /* Unary */
-//.. Xfp_SQRT, Xfp_ABS, Xfp_NEG, Xfp_MOV, Xfp_SIN, Xfp_COS, Xfp_TA=
N,
-//.. Xfp_ROUND, Xfp_2XM1
-//.. }
-//.. X86FpOp;
-//..=20
-//.. extern HChar* showX86FpOp ( X86FpOp );
+ Afp_SCALE, Afp_ATAN, Afp_YL2X, //Xfp_YL2XP1, Xfp_PREM, Xfp_PREM1,
+ /* Unary */
+ Afp_SQRT, //Xfp_ABS, Xfp_NEG, Xfp_MOV,=20
+ Afp_SIN, Afp_COS, //Xfp_TAN,
+ Afp_ROUND, Afp_2XM1
+ }
+ A87FpOp;
=20
+extern HChar* showA87FpOp ( A87FpOp );
=20
+
/* --------- */
typedef
enum {
@@ -357,25 +358,29 @@
/* --------- */
typedef
enum {
- Ain_Imm64, /* Generate 64-bit literal to register */
- Ain_Alu64R, /* 64-bit mov/arith/logical, dst=3DREG */
- Ain_Alu64M, /* 64-bit mov/arith/logical, dst=3DMEM */
- Ain_Sh64, /* 64-bit shift/rotate, dst=3DREG or MEM */
- Ain_Test64, /* 64-bit test (AND, set flags, discard result) */
- Ain_Unary64, /* 64-bit not and neg */
- Ain_MulL, /* widening multiply */
- Ain_Div, /* div and mod */
+ Ain_Imm64, /* Generate 64-bit literal to register */
+ Ain_Alu64R, /* 64-bit mov/arith/logical, dst=3DREG */
+ Ain_Alu64M, /* 64-bit mov/arith/logical, dst=3DMEM */
+ Ain_Sh64, /* 64-bit shift/rotate, dst=3DREG or MEM */
+ Ain_Test64, /* 64-bit test (AND, set flags, discard result) *=
/
+ Ain_Unary64, /* 64-bit not and neg */
+ Ain_MulL, /* widening multiply */
+ Ain_Div, /* div and mod */
//.. Xin_Sh3232, /* shldl or shrdl */
- Ain_Push, /* push 64-bit value on stack */
- Ain_Call, /* call to address in register */
- Ain_Goto, /* conditional/unconditional jmp to dst */
- Ain_CMov64, /* conditional move */
- Ain_MovZLQ, /* reg-reg move, zeroing out top half */
- Ain_LoadEX, /* mov{s,z}{b,w,l}q from mem to reg */
- Ain_Store, /* store 32/16/8 bit value in memory */
- Ain_Set64, /* convert condition code to 64-bit value */
- Ain_Bsfr64, /* 64-bit bsf/bsr */
- Ain_MFence, /* mem fence */
+ Ain_Push, /* push 64-bit value on stack */
+ Ain_Call, /* call to address in register */
+ Ain_Goto, /* conditional/unconditional jmp to dst */
+ Ain_CMov64, /* conditional move */
+ Ain_MovZLQ, /* reg-reg move, zeroing out top half */
+ Ain_LoadEX, /* mov{s,z}{b,w,l}q from mem to reg */
+ Ain_Store, /* store 32/16/8 bit value in memory */
+ Ain_Set64, /* convert condition code to 64-bit value */
+ Ain_Bsfr64, /* 64-bit bsf/bsr */
+ Ain_MFence, /* mem fence */
+ Ain_A87Free, /* free up x87 registers */
+ Ain_A87PushPop, /* x87 loads/stores */
+ Ain_A87FpOp, /* x87 operations */
+ Ain_A87LdCW, /* load x87 control word */
//..=20
//.. Xin_FpUnary, /* FP fake unary op */
//.. Xin_FpBinary, /* FP fake binary op */
@@ -383,25 +388,25 @@
//.. Xin_FpLdStI, /* FP fake load/store, converting to/from Int =
*/
//.. Xin_Fp64to32, /* FP round IEEE754 double to IEEE754 single *=
/
//.. Xin_FpCMov, /* FP fake floating point conditional move */
- Ain_LdMXCSR, /* load %mxcsr */
+ Ain_LdMXCSR, /* load %mxcsr */
//.. Xin_FpStSW_AX, /* fstsw %ax */
- Ain_SseUComIS, /* ucomisd/ucomiss, then get %rflags into int
- register */
- Ain_SseSI2SF, /* scalar 32/64 int to 32/64 float conversion */
- Ain_SseSF2SI, /* scalar 32/64 float to 32/64 int conversion */
- Ain_SseSDSS, /* scalar float32 to/from float64 */
+ Ain_SseUComIS, /* ucomisd/ucomiss, then get %rflags into int
+ register */
+ Ain_SseSI2SF, /* scalar 32/64 int to 32/64 float conversion */
+ Ain_SseSF2SI, /* scalar 32/64 float to 32/64 int conversion */
+ Ain_SseSDSS, /* scalar float32 to/from float64 */
//..=20
//.. Xin_SseConst, /* Generate restricted SSE literal */
- Ain_SseLdSt, /* SSE load/store 32/64/128 bits, no alignment
- constraints, upper 96/64/0 bits arbitrary */
- Ain_SseLdzLO, /* SSE load low 32/64 bits, zero remainder of reg *=
/
- Ain_Sse32Fx4, /* SSE binary, 32Fx4 */
- Ain_Sse32FLo, /* SSE binary, 32F in lowest lane only */
- Ain_Sse64Fx2, /* SSE binary, 64Fx2 */
- Ain_Sse64FLo, /* SSE binary, 64F in lowest lane only */
- Ain_SseReRg, /* SSE binary general reg-reg, Re, Rg */
- Ain_SseCMov, /* SSE conditional move */
- Ain_SseShuf /* SSE2 shuffle (pshufd) */
+ Ain_SseLdSt, /* SSE load/store 32/64/128 bits, no alignment
+ constraints, upper 96/64/0 bits arbitrary */
+ Ain_SseLdzLO, /* SSE load low 32/64 bits, zero remainder of reg=
*/
+ Ain_Sse32Fx4, /* SSE binary, 32Fx4 */
+ Ain_Sse32FLo, /* SSE binary, 32F in lowest lane only */
+ Ain_Sse64Fx2, /* SSE binary, 64Fx2 */
+ Ain_Sse64FLo, /* SSE binary, 64F in lowest lane only */
+ Ain_SseReRg, /* SSE binary general reg-reg, Re, Rg */
+ Ain_SseCMov, /* SSE conditional move */
+ Ain_SseShuf /* SSE2 shuffle (pshufd) */
}
AMD64InstrTag;
=20
@@ -519,47 +524,38 @@
struct {
} MFence;
=20
-//.. /* X86 Floating point (fake 3-operand, "flat reg file" ins=
ns) */
-//.. struct {
-//.. X86FpOp op;
-//.. HReg src;
-//.. HReg dst;
-//.. } FpUnary;
-//.. struct {
-//.. X86FpOp op;
-//.. HReg srcL;
-//.. HReg srcR;
-//.. HReg dst;
-//.. } FpBinary;
-//.. struct {
-//.. Bool isLoad;
-//.. UChar sz; /* only 4 (IEEE single) or 8 (IEEE double=
) */
-//.. HReg reg;
-//.. X86AMode* addr;
-//.. } FpLdSt;
-//.. /* Move 64-bit float to/from memory, converting to/from
-//.. signed int on the way. Note the conversions will obser=
ve
-//.. the host FPU rounding mode currently in force. */
-//.. struct {
-//.. Bool isLoad;
-//.. UChar sz; /* only 2, 4 or 8 */
-//.. HReg reg;
-//.. X86AMode* addr;
-//.. } FpLdStI;
-//.. /* By observing the current FPU rounding mode, round (etc)
-//.. src into dst given that dst should be interpreted as an
-//.. IEEE754 32-bit (float) type. */
-//.. struct {
-//.. HReg src;
-//.. HReg dst;
-//.. } Fp64to32;
-//.. /* Mov src to dst on the given condition, which may not
-//.. be the bogus Xcc_ALWAYS. */
-//.. struct {
-//.. X86CondCode cond;
-//.. HReg src;
-//.. HReg dst;
-//.. } FpCMov;
+ /* --- X87 --- */
+
+ /* A very minimal set of x87 insns, that operate exactly in a
+ stack-like way so no need to think about x87 registers. */
+
+ /* Do 'ffree' on %st(7) .. %st(7-nregs) */
+ struct {
+ Int nregs; /* 1 <=3D nregs <=3D 7 */
+ } A87Free;
+
+ /* Push a 64-bit FP value from memory onto the stack, or move
+ a value from the stack to memory and remove it from the
+ stack. */
+ struct {
+ AMD64AMode* addr;
+ Bool isPush;
+ } A87PushPop;
+
+ /* Do an operation on the top-of-stack. This can be unary, in
+ which case it is %st0 =3D OP( %st0 ), or binary: %st0 =3D OP=
(
+ %st0, %st1 ). */
+ struct {
+ A87FpOp op;
+ } A87FpOp;
+
+ /* Load the FPU control word. */
+ struct {
+ AMD64AMode* addr;
+ } A87LdCW;
+
+ /* --- SSE --- */
+
/* Load 32 bits into %mxcsr. */
struct {
AMD64AMode* addr;
@@ -656,26 +652,30 @@
}
AMD64Instr;
=20
-extern AMD64Instr* AMD64Instr_Imm64 ( ULong imm64, HReg dst );
-extern AMD64Instr* AMD64Instr_Alu64R ( AMD64AluOp, AMD64RMI*, HReg );
-extern AMD64Instr* AMD64Instr_Alu64M ( AMD64AluOp, AMD64RI*, AMD64AM=
ode* );
-extern AMD64Instr* AMD64Instr_Unary64 ( AMD64UnaryOp op, AMD64RM* dst =
);
-extern AMD64Instr* AMD64Instr_Sh64 ( AMD64ShiftOp, UInt, AMD64RM* )=
;
-extern AMD64Instr* AMD64Instr_Test64 ( AMD64RI* src, AMD64RM* dst );
-extern AMD64Instr* AMD64Instr_MulL ( Bool syned, Int sz, AMD64RM* )=
;
-extern AMD64Instr* AMD64Instr_Div ( Bool syned, Int sz, AMD64RM* )=
;
+extern AMD64Instr* AMD64Instr_Imm64 ( ULong imm64, HReg dst );
+extern AMD64Instr* AMD64Instr_Alu64R ( AMD64AluOp, AMD64RMI*, HReg )=
;
+extern AMD64Instr* AMD64Instr_Alu64M ( AMD64AluOp, AMD64RI*, AMD64A=
Mode* );
+extern AMD64Instr* AMD64Instr_Unary64 ( AMD64UnaryOp op, AMD64RM* dst=
);
+extern AMD64Instr* AMD64Instr_Sh64 ( AMD64ShiftOp, UInt, AMD64RM* =
);
+extern AMD64Instr* AMD64Instr_Test64 ( AMD64RI* src, AMD64RM* dst );
+extern AMD64Instr* AMD64Instr_MulL ( Bool syned, Int sz, AMD64RM* =
);
+extern AMD64Instr* AMD64Instr_Div ( Bool syned, Int sz, AMD64RM* =
);
//.. extern AMD64Instr* AMD64Instr_Sh3232 ( AMD64ShiftOp, UInt amt, H=
Reg src, HReg dst );
-extern AMD64Instr* AMD64Instr_Push ( AMD64RMI* );
-extern AMD64Instr* AMD64Instr_Call ( AMD64CondCode, Addr64, Int );
-extern AMD64Instr* AMD64Instr_Goto ( IRJumpKind, AMD64CondCode cond=
, AMD64RI* dst );
-extern AMD64Instr* AMD64Instr_CMov64 ( AMD64CondCode, AMD64RM* src, H=
Reg dst );
-extern AMD64Instr* AMD64Instr_MovZLQ ( HReg src, HReg dst );
-extern AMD64Instr* AMD64Instr_LoadEX ( UChar szSmall, Bool syned,
- AMD64AMode* src, HReg dst );
-extern AMD64Instr* AMD64Instr_Store ( UChar sz, HReg src, AMD64AMode=
* dst );
-extern AMD64Instr* AMD64Instr_Set64 ( AMD64CondCode cond, HReg dst )=
;
-extern AMD64Instr* AMD64Instr_Bsfr64 ( Bool isFwds, HReg src, HReg ds=
t );
-extern AMD64Instr* AMD64Instr_MFence ( void );
+extern AMD64Instr* AMD64Instr_Push ( AMD64RMI* );
+extern AMD64Instr* AMD64Instr_Call ( AMD64CondCode, Addr64, Int );
+extern AMD64Instr* AMD64Instr_Goto ( IRJumpKind, AMD64CondCode con=
d, AMD64RI* dst );
+extern AMD64Instr* AMD64Instr_CMov64 ( AMD64CondCode, AMD64RM* src, =
HReg dst );
+extern AMD64Instr* AMD64Instr_MovZLQ ( HReg src, HReg dst );
+extern AMD64Instr* AMD64Instr_LoadEX ( UChar szSmall, Bool syned,
+ AMD64AMode* src, HReg dst );
+extern AMD64Instr* AMD64Instr_Store ( UChar sz, HReg src, AMD64AMod=
e* dst );
+extern AMD64Instr* AMD64Instr_Set64 ( AMD64CondCode cond, HReg dst =
);
+extern AMD64Instr* AMD64Instr_Bsfr64 ( Bool isFwds, HReg src, HReg d=
st );
+extern AMD64Instr* AMD64Instr_MFence ( void );
+extern AMD64Instr* AMD64Instr_A87Free ( Int nregs );
+extern AMD64Instr* AMD64Instr_A87PushPop ( AMD64AMode* addr, Bool isPush=
);
+extern AMD64Instr* AMD64Instr_A87FpOp ( A87FpOp op );
+extern AMD64Instr* AMD64Instr_A87LdCW ( AMD64AMode* addr );
//..=20
//.. extern AMD64Instr* AMD64Instr_FpUnary ( AMD64FpOp op, HReg src, H=
Reg dst );
//.. extern AMD64Instr* AMD64Instr_FpBinary ( AMD64FpOp op, HReg srcL, =
HReg srcR, HReg dst );
@@ -683,23 +683,23 @@
//.. extern AMD64Instr* AMD64Instr_FpLdStI ( Bool isLoad, UChar sz, HR=
eg reg, AMD64AMode* );
//.. extern AMD64Instr* AMD64Instr_Fp64to32 ( HReg src, HReg dst );
//.. extern AMD64Instr* AMD64Instr_FpCMov ( AMD64CondCode, HReg src, =
HReg dst );
-extern AMD64Instr* AMD64Instr_LdMXCSR ( AMD64AMode* );
+extern AMD64Instr* AMD64Instr_LdMXCSR ( AMD64AMode* );
//.. extern AMD64Instr* AMD64Instr_FpStSW_AX ( void );
-extern AMD64Instr* AMD64Instr_SseUComIS ( Int sz, HReg srcL, HReg srcR, =
HReg dst );
-extern AMD64Instr* AMD64Instr_SseSI2SF ( Int szS, Int szD, HReg src, HR=
eg dst );
-extern AMD64Instr* AMD64Instr_SseSF2SI ( Int szS, Int szD, HReg src, HR=
eg dst );
-extern AMD64Instr* AMD64Instr_SseSDSS ( Bool from64, HReg src, HReg ds=
t );
+extern AMD64Instr* AMD64Instr_SseUComIS ( Int sz, HReg srcL, HReg srcR,=
HReg dst );
+extern AMD64Instr* AMD64Instr_SseSI2SF ( Int szS, Int szD, HReg src, H=
Reg dst );
+extern AMD64Instr* AMD64Instr_SseSF2SI ( Int szS, Int szD, HReg src, H=
Reg dst );
+extern AMD64Instr* AMD64Instr_SseSDSS ( Bool from64, HReg src, HReg d=
st );
//..=20
//.. extern AMD64Instr* AMD64Instr_SseConst ( UShort con, HReg dst );
-extern AMD64Instr* AMD64Instr_SseLdSt ( Bool isLoad, Int sz, HReg, AMD=
64AMode* );
-extern AMD64Instr* AMD64Instr_SseLdzLO ( Int sz, HReg, AMD64AMode* );
-extern AMD64Instr* AMD64Instr_Sse32Fx4 ( AMD64SseOp, HReg, HReg );
-extern AMD64Instr* AMD64Instr_Sse32FLo ( AMD64SseOp, HReg, HReg );
-extern AMD64Instr* AMD64Instr_Sse64Fx2 ( AMD64SseOp, HReg, HReg );
-extern AMD64Instr* AMD64Instr_Sse64FLo ( AMD64SseOp, HReg, HReg );
-extern AMD64Instr* AMD64Instr_SseReRg ( AMD64SseOp, HReg, HReg );
-extern AMD64Instr* AMD64Instr_SseCMov ( AMD64CondCode, HReg src, HReg =
dst );
-extern AMD64Instr* AMD64Instr_SseShuf ( Int order, HReg src, HReg dst =
);
+extern AMD64Instr* AMD64Instr_SseLdSt ( Bool isLoad, Int sz, HReg, AM=
D64AMode* );
+extern AMD64Instr* AMD64Instr_SseLdzLO ( Int sz, HReg, AMD64AMode* );
+extern AMD64Instr* AMD64Instr_Sse32Fx4 ( AMD64SseOp, HReg, HReg );
+extern AMD64Instr* AMD64Instr_Sse32FLo ( AMD64SseOp, HReg, HReg );
+extern AMD64Instr* AMD64Instr_Sse64Fx2 ( AMD64SseOp, HReg, HReg );
+extern AMD64Instr* AMD64Instr_Sse64FLo ( AMD64SseOp, HReg, HReg );
+extern AMD64Instr* AMD64Instr_SseReRg ( AMD64SseOp, HReg, HReg );
+extern AMD64Instr* AMD64Instr_SseCMov ( AMD64CondCode, HReg src, HReg=
dst );
+extern AMD64Instr* AMD64Instr_SseShuf ( Int order, HReg src, HReg dst=
);
=20
=20
extern void ppAMD64Instr ( AMD64Instr* );
Modified: trunk/priv/host-amd64/isel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-amd64/isel.c 2005-05-07 01:01:24 UTC (rev 1169)
+++ trunk/priv/host-amd64/isel.c 2005-05-08 23:03:48 UTC (rev 1170)
@@ -618,20 +618,19 @@
add_to_rsp(env, 8);
}
=20
-//.. /* Mess with the FPU's rounding mode: set to the default rounding m=
ode
-//.. (DEFAULT_FPUCW). */
-//.. static=20
-//.. void set_FPU_rounding_default ( ISelEnv* env )
-//.. {
-//.. /* pushl $DEFAULT_FPUCW
-//.. fldcw 0(%esp)
-//.. addl $4, %esp=20
-//.. */
-//.. X86AMode* zero_esp =3D X86AMode_IR(0, hregX86_ESP());
-//.. addInstr(env, X86Instr_Push(X86RMI_Imm(DEFAULT_FPUCW)));
-//.. addInstr(env, X86Instr_FpLdStCW(True/*load*/, zero_esp));
-//.. add_to_esp(env, 4);
-//.. }
+/* Mess with the FPU's rounding mode: set to the default rounding mode
+ (DEFAULT_FPUCW). */
+static=20
+void set_FPU_rounding_default ( ISelEnv* env )
+{
+ /* movq $DEFAULT_FPUCW, -8(%rsp)
+ fldcw -8(%esp)
+ */
+ AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
+ addInstr(env, AMD64Instr_Alu64M(
+ Aalu_MOV, AMD64RI_Imm(DEFAULT_FPUCW), m8_rsp));
+ addInstr(env, AMD64Instr_A87LdCW(m8_rsp));
+}
=20
=20
/* Mess with the SSE unit's rounding mode: 'mode' is an I32-typed
@@ -669,36 +668,36 @@
}
=20
=20
-//.. /* Mess with the FPU's rounding mode: 'mode' is an I32-typed
-//.. expression denoting a value in the range 0 .. 3, indicating a ro=
und
-//.. mode encoded as per type IRRoundingMode. Set the x87 FPU to hav=
e
-//.. the same rounding.
-//.. */
-//.. static
-//.. void set_FPU_rounding_mode ( ISelEnv* env, IRExpr* mode )
-//.. {
-//.. HReg rrm =3D iselIntExpr_R(env, mode);
-//.. HReg rrm2 =3D newVRegI(env);
-//.. X86AMode* zero_esp =3D X86AMode_IR(0, hregX86_ESP());
-//..=20
-//.. /* movl %rrm, %rrm2
-//.. andl $3, %rrm2 -- shouldn't be needed; paranoia
-//.. shll $10, %rrm2
-//.. orl $DEFAULT_FPUCW, %rrm2
-//.. pushl %rrm2
-//.. fldcw 0(%esp)
-//.. addl $4, %esp
-//.. */
-//.. addInstr(env, mk_iMOVsd_RR(rrm, rrm2));
-//.. addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(3), rrm2));
-//.. addInstr(env, X86Instr_Sh32(Xsh_SHL, 10, X86RM_Reg(rrm2)));
-//.. addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Imm(DEFAULT_FPUCW)=
, rrm2));
-//.. addInstr(env, X86Instr_Push(X86RMI_Reg(rrm2)));
-//.. addInstr(env, X86Instr_FpLdStCW(True/*load*/, zero_esp));
-//.. add_to_esp(env, 4);
-//.. }
+/* Mess with the FPU's rounding mode: 'mode' is an I32-typed
+ expression denoting a value in the range 0 .. 3, indicating a round
+ mode encoded as per type IRRoundingMode. Set the x87 FPU to have
+ the same rounding.
+*/
+static
+void set_FPU_rounding_mode ( ISelEnv* env, IRExpr* mode )
+{
+ HReg rrm =3D iselIntExpr_R(env, mode);
+ HReg rrm2 =3D newVRegI(env);
+ AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
=20
+ /* movq %rrm, %rrm2
+ andq $3, %rrm2 -- shouldn't be needed; paranoia
+ shlq $10, %rrm2
+ orq $DEFAULT_FPUCW, %rrm2
+ movq %rrm2, -8(%rsp)
+ fldcw -8(%esp)
+ */
+ addInstr(env, mk_iMOVsd_RR(rrm, rrm2));
+ addInstr(env, AMD64Instr_Alu64R(Aalu_AND, AMD64RMI_Imm(3), rrm2));
+ addInstr(env, AMD64Instr_Sh64(Ash_SHL, 10, AMD64RM_Reg(rrm2)));
+ addInstr(env, AMD64Instr_Alu64R(Aalu_OR,=20
+ AMD64RMI_Imm(DEFAULT_FPUCW), rrm2));
+ addInstr(env, AMD64Instr_Alu64M(Aalu_MOV,=20
+ AMD64RI_Reg(rrm2), m8_rsp));
+ addInstr(env, AMD64Instr_A87LdCW(m8_rsp));
+}
=20
+
/* Generate !src into a new vector register. Amazing that there isn't
a less crappy way to do this.
*/
@@ -1315,7 +1314,7 @@
sub_from_rsp(env, 16);
addInstr(env, AMD64Instr_SseLdSt(False/*store*/, 16, vec, rs=
p0));
addInstr(env, AMD64Instr_Alu64R( Aalu_MOV,=20
- AMD64RMI_Mem(rspN), dst ));
+ AMD64RMI_Mem(rspN), dst ));
add_to_rsp(env, 16);
return dst;
}
@@ -2811,26 +2810,74 @@
//.. return res;
//.. }
//.. }
-//..=20
-//.. if (e->tag =3D=3D Iex_Binop && e->Iex.Binop.op =3D=3D Iop_RoundF=
64) {
-//.. HReg rf =3D iselDblExpr(env, e->Iex.Binop.arg2);
-//.. HReg dst =3D newVRegF(env);
-//..=20
-//.. /* rf now holds the value to be rounded. The first thing to =
do
-//.. is set the FPU's rounding mode accordingly. */
-//..=20
-//.. /* Set host rounding mode */
-//.. set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
-//..=20
-//.. /* grndint %rf, %dst */
-//.. addInstr(env, X86Instr_FpUnary(Xfp_ROUND, rf, dst));
-//..=20
-//.. /* Restore default FPU rounding. */
-//.. set_FPU_rounding_default( env );
-//..=20
-//.. return dst;
-//.. }
=20
+ if (e->tag =3D=3D Iex_Binop && e->Iex.Binop.op =3D=3D Iop_RoundF64) {
+ AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
+ HReg arg =3D iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg dst =3D newVRegV(env);
+
+ /* rf now holds the value to be rounded. The first thing to do
+ is set the FPU's rounding mode accordingly. */
+
+ /* Set host x87 rounding mode */
+ set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
+
+ addInstr(env, AMD64Instr_SseLdSt(False/*store*/, 8, arg, m8_rsp));
+ addInstr(env, AMD64Instr_A87Free(1));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
+ addInstr(env, AMD64Instr_A87FpOp(Afp_ROUND));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/));
+ addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
+
+ /* Restore default x87 rounding. */
+ set_FPU_rounding_default( env );
+
+ return dst;
+ }
+
+ if (e->tag =3D=3D Iex_Binop=20
+ && (e->Iex.Binop.op =3D=3D Iop_ScaleF64
+ || e->Iex.Binop.op =3D=3D Iop_AtanF64
+ || e->Iex.Binop.op =3D=3D Iop_Yl2xF64)
+ ) {
+ AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
+ HReg arg1 =3D iselDblExpr(env, e->Iex.Binop.arg1);
+ HReg arg2 =3D iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg dst =3D newVRegV(env);
+ Bool arg2first =3D toBool(e->Iex.Binop.op =3D=3D Iop_ScaleF64)=
;
+ addInstr(env, AMD64Instr_A87Free(2));
+
+ /* one arg -> top of x87 stack */
+ addInstr(env, AMD64Instr_SseLdSt(
+ False/*store*/, 8, arg2first ? arg2 : arg1, m8_rs=
p));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
+
+ /* other arg -> top of x87 stack */
+ addInstr(env, AMD64Instr_SseLdSt(
+ False/*store*/, 8, arg2first ? arg1 : arg2, m8_rs=
p));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
+
+ /* do it */
+ switch (e->Iex.Binop.op) {
+ case Iop_ScaleF64:=20
+ addInstr(env, AMD64Instr_A87FpOp(Afp_SCALE));
+ break;
+ case Iop_AtanF64:=20
+ addInstr(env, AMD64Instr_A87FpOp(Afp_ATAN));
+ break;
+ case Iop_Yl2xF64:=20
+ addInstr(env, AMD64Instr_A87FpOp(Afp_YL2X));
+ break;
+ default:=20
+ vassert(0);
+ }
+
+ /* save result */
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/));
+ addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
+ return dst;
+ }
+
if (e->tag =3D=3D Iex_Binop && e->Iex.Binop.op =3D=3D Iop_I64toF64) {
HReg dst =3D newVRegV(env);
HReg src =3D iselIntExpr_R(env, e->Iex.Binop.arg2);
@@ -2874,28 +2921,31 @@
return dst;
}
=20
-//.. if (e->tag =3D=3D Iex_Unop) {
-//.. X86FpOp fpop =3D Xfp_INVALID;
-//.. switch (e->Iex.Unop.op) {
+ if (e->tag =3D=3D Iex_Unop) {
+ A87FpOp fpop =3D Afp_INVALID;
+ switch (e->Iex.Unop.op) {
//.. case Iop_NegF64: fpop =3D Xfp_NEG; break;
//.. case Iop_AbsF64: fpop =3D Xfp_ABS; break;
-//.. case Iop_SqrtF64: fpop =3D Xfp_SQRT; break;
-//.. case Iop_SinF64: fpop =3D Xfp_SIN; break;
-//.. case Iop_CosF64: fpop =3D Xfp_COS; break;
+ case Iop_SqrtF64: fpop =3D Afp_SQRT; break;
+ case Iop_SinF64: fpop =3D Afp_SIN; break;
+ case Iop_CosF64: fpop =3D Afp_COS; break;
//.. case Iop_TanF64: fpop =3D Xfp_TAN; break;
-//.. case Iop_2xm1F64: fpop =3D Xfp_2XM1; break;
-//.. default: break;
-//.. }
-//.. if (fpop !=3D Xfp_INVALID) {
-//.. HReg res =3D newVRegF(env);
-//.. HReg src =3D iselDblExpr(env, e->Iex.Unop.arg);
-//.. addInstr(env, X86Instr_FpUnary(fpop,src,res));
-//.. if (fpop !=3D Xfp_SQRT
-//.. && fpop !=3D Xfp_NEG && fpop !=3D Xfp_ABS)
-//.. roundToF64(env, res);
-//.. return res;
-//.. }
-//.. }
+ case Iop_2xm1F64: fpop =3D Afp_2XM1; break;
+ default: break;
+ }
+ if (fpop !=3D Afp_INVALID) {
+ AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
+ HReg arg =3D iselDblExpr(env, e->Iex.Unop.arg);
+ HReg dst =3D newVRegV(env);
+ addInstr(env, AMD64Instr_SseLdSt(False/*store*/, 8, arg, m8_rsp=
));
+ addInstr(env, AMD64Instr_A87Free(1));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
+ addInstr(env, AMD64Instr_A87FpOp(fpop));
+ addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/));
+ addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp))=
;
+ return dst;
+ }
+ }
=20
if (e->tag =3D=3D Iex_Unop) {
switch (e->Iex.Unop.op) {
|
|
From: Benoit P. <ben...@en...> - 2005-05-08 21:28:19
|
On Wed, 4 May 2005 09:57:37 -0500 (CDT) Nicholas Nethercote <nj...@cs...> wrote: > On Wed, 4 May 2005, Benoit Peccatte wrote: > > >> I believe Eric Estievenart may have posted a patch for this for his Valgui > >> tool on the valgrind-developers list at some point last year. I haven't > >> looked for it myself, but if you find it I'd like to know. I have taken this patch and modified it a bit so that it be more generic. Which means it now uses an option named --long-filenames to enable the display of full path for source files. This patch is made for valgrind 3.0 from subversion. This can be usefull not only for cover but for cachegrind too. So I'm wondering if such a patch could be included in valgrind. |
|
From: <sv...@va...> - 2005-05-08 19:09:00
|
Author: njn
Date: 2005-05-08 20:08:54 +0100 (Sun, 08 May 2005)
New Revision: 3643
Removed:
trunk/coregrind/vg_default.c
Modified:
trunk/coregrind/Makefile.am
trunk/coregrind/core.h
trunk/coregrind/vg_main.c
trunk/coregrind/vg_pthreadmodel.c
Log:
Removed vg_default.c, hooray.
Modified: trunk/coregrind/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.am 2005-05-08 19:04:53 UTC (rev 3642)
+++ trunk/coregrind/Makefile.am 2005-05-08 19:08:54 UTC (rev 3643)
@@ -75,7 +75,6 @@
ume.c \
\
vg_scheduler.c \
- vg_default.c \
vg_demangle.c \
vg_hashtable.c \
vg_replace_malloc.c \
Modified: trunk/coregrind/core.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/core.h 2005-05-08 19:04:53 UTC (rev 3642)
+++ trunk/coregrind/core.h 2005-05-08 19:08:54 UTC (rev 3643)
@@ -508,14 +508,6 @@
=20
=20
/* ---------------------------------------------------------------------
- Exports of vg_defaults.c
- ------------------------------------------------------------------ */
-
-extern Bool VG_(tl_malloc_called_deliberately);
-
-
-
-/* ---------------------------------------------------------------------
Exports of vg_scheduler.c
------------------------------------------------------------------ */
=20
Deleted: trunk/coregrind/vg_default.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/vg_default.c 2005-05-08 19:04:53 UTC (rev 3642)
+++ trunk/coregrind/vg_default.c 2005-05-08 19:08:54 UTC (rev 3643)
@@ -1,96 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Default panicky definitions of template functions that tools ---*/
-/*--- should override. ---*/
-/*--- vg_defaults.c ---*/
-/*--------------------------------------------------------------------*/
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@va...
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-
-#include "core.h"
-
-/* ---------------------------------------------------------------------
- Error messages (for malformed tools)
- ------------------------------------------------------------------ */
-
-/* If the tool fails to define one or more of the required functions,
- * make it very clear what went wrong! */
-
-__attribute__ ((noreturn))
-void VG_(missing_tool_func) ( const Char* fn )
-{
- VG_(printf)(
- "\nTool error:\n"
- " The tool you have selected is missing the function `%s',\n"
- " which is required.\n\n",
- fn);
- VG_(tool_panic)("Missing tool function");
-}
-
-static __attribute__ ((noreturn))
-void malloc_panic ( const Char* fn )
-{
- VG_(printf)(
- "\nTool error:\n"
- " The tool you have selected is missing the function `%s'\n"
- " required because it is replacing malloc() et al.\n\n",
- fn);
- VG_(tool_panic)("Missing tool function");
-}
-
-/*------------------------------------------------------------*/
-/*--- Replacing malloc et al ---*/
-/*------------------------------------------------------------*/
-
-Bool VG_(tl_malloc_called_deliberately) =3D False;
-
-/* If the tool hasn't replaced malloc(), this one can be called
- deliberately. The lock variable ensures that this isn't called by
- accident, which could happen if a malloc()-replacing tool forgot to
- implement TL_(malloc)() or TL_(free)(). */
-__attribute__ ((weak))
-void* TL_(malloc)( ThreadId tid, SizeT size )
-{
- if (VG_(tl_malloc_called_deliberately))
- return VG_(cli_malloc)(VG_MIN_MALLOC_SZB, size);
- else=20
- malloc_panic(__PRETTY_FUNCTION__);
-}
-
-__attribute__ ((weak))
-void TL_(free)( ThreadId tid, void* p )
-{
- /* see comment for TL_(malloc)() above */
- if (VG_(tl_malloc_called_deliberately))
- VG_(cli_free)(p);
- else=20
- malloc_panic(__PRETTY_FUNCTION__);
-}
-
-/*--------------------------------------------------------------------*/
-/*--- end vg_defaults.c ---*/
-/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/vg_main.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/vg_main.c 2005-05-08 19:04:53 UTC (rev 3642)
+++ trunk/coregrind/vg_main.c 2005-05-08 19:08:54 UTC (rev 3643)
@@ -2872,7 +2872,21 @@
/* Print Vex storage stats */
if (0)
LibVEX_ShowAllocStats();
+}
=20
+/* If the tool fails to define one or more of the required functions,
+ * make it very clear what went wrong! */
+// XXX: this is not a very good place for this function. Hopefully we'l=
l be
+// able to remove it in the future.
+__attribute__ ((noreturn))
+void VG_(missing_tool_func) ( const Char* fn )
+{
+ VG_(printf)(
+ "\nTool error:\n"
+ " The tool you have selected is missing the function `%s',\n"
+ " which is required.\n\n",
+ fn);
+ VG_(tool_panic)("Missing tool function");
}
=20
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/vg_pthreadmodel.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/vg_pthreadmodel.c 2005-05-08 19:04:53 UTC (rev 3642)
+++ trunk/coregrind/vg_pthreadmodel.c 2005-05-08 19:08:54 UTC (rev 3643)
@@ -201,10 +201,20 @@
// [Possible: When using a tool that replaces malloc(), we want to ca=
ll
// the replacement version. Otherwise, we want to use VG_(cli_mallo=
c)().
// So we go via the default version of TL_(malloc)() in vg_default?]
- VG_(tl_malloc_called_deliberately) =3D True;
- data =3D TL_(malloc)(sizeof(*data));
- VG_(tl_malloc_called_deliberately) =3D False;
+ tl_assert2(0, "read the comment in the code about this...");
=20
+ // XXX: These three lines are going to have to change. They relied o=
n
+ // TL_(malloc) being a weak symbol, and it just doesn't fit with the
+ // VG_(tdict) approach that we've switched to. The right way to do t=
his
+ // will be to provide a function in the core that checks if
+ // VG_(tdict).malloc_malloc has been set (or perhaps it would be bett=
er
+ // to check whether VG_USERREQ__GET_MALLOCFUNCS has been called, ie.
+ // whether replace_malloc.c:init() has been called); if so, it shoul=
d
+ // call it, if not, it should call VG_(cli_malloc)().
+// VG_(tl_malloc_called_deliberately) =3D True;
+// data =3D TL_(malloc)(sizeof(*data));
+// VG_(tl_malloc_called_deliberately) =3D False;
+
VG_TRACK(pre_mem_write, Vg_CorePThread, tst->tid, "new thread data",
(Addr)data, sizeof(*data));
data->startfunc =3D start;
|
|
From: <sv...@va...> - 2005-05-08 19:04:59
|
Author: njn
Date: 2005-05-08 20:04:53 +0100 (Sun, 08 May 2005)
New Revision: 3642
Modified:
trunk/memcheck/mc_main.c
Log:
Avoid compiler warnings.
Modified: trunk/memcheck/mc_main.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/mc_main.c 2005-05-08 18:34:59 UTC (rev 3641)
+++ trunk/memcheck/mc_main.c 2005-05-08 19:04:53 UTC (rev 3642)
@@ -1271,7 +1271,7 @@
/* Creates a copy of the `extra' part, updates the copy with address inf=
o if
necessary, and returns the copy. */
/* This one called from generated code and non-generated code. */
-void mc_record_value_error ( ThreadId tid, Int size )
+static void mc_record_value_error ( ThreadId tid, Int size )
{
MAC_Error err_extra;
=20
@@ -1283,8 +1283,8 @@
=20
/* This called from non-generated code */
=20
-void mc_record_user_error ( ThreadId tid, Addr a, Bool isWrite,
- Bool isUnaddr )
+static void mc_record_user_error ( ThreadId tid, Addr a, Bool isWrite,
+ Bool isUnaddr )
{
MAC_Error err_extra;
=20
|
|
From: <sv...@va...> - 2005-05-08 18:35:07
|
Author: njn
Date: 2005-05-08 19:34:59 +0100 (Sun, 08 May 2005)
New Revision: 3641
Removed:
trunk/memcheck/mc_errcontext.c
Modified:
trunk/memcheck/Makefile.am
trunk/memcheck/mc_include.h
trunk/memcheck/mc_main.c
Log:
Moved mc_errcontext.c into mc_main.c, since it was very small and there w=
as
no benefit in having it separate. This allows some exports to be removed
from mc_include.h.
Modified: trunk/memcheck/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.am 2005-05-08 18:21:15 UTC (rev 3640)
+++ trunk/memcheck/Makefile.am 2005-05-08 18:34:59 UTC (rev 3641)
@@ -17,7 +17,6 @@
mac_leakcheck.c \
mac_malloc_wrappers.c \
mac_needs.c \
- mc_errcontext.c \
mc_main.c \
mc_translate.c
vgtool_memcheck_so_LDFLAGS =3D -shared
Deleted: trunk/memcheck/mc_errcontext.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/mc_errcontext.c 2005-05-08 18:21:15 UTC (rev 3640)
+++ trunk/memcheck/mc_errcontext.c 2005-05-08 18:34:59 UTC (rev 3641)
@@ -1,152 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Management of memory error messages. ---*/
-/*--- mc_errcontext.c ---*/
-/*--------------------------------------------------------------------*/
-
-/*
- This file is part of MemCheck, a heavyweight Valgrind tool for
- detecting memory errors.
-
- Copyright (C) 2000-2005 Julian Seward=20
- js...@ac...
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#include "mc_include.h"
-
-/*------------------------------------------------------------*/
-/*--- Printing errors ---*/
-/*------------------------------------------------------------*/
-
-void TL_(pp_Error) ( Error* err )
-{
- MAC_Error* err_extra =3D VG_(get_error_extra)(err);
-
- switch (VG_(get_error_kind)(err)) {
- case CoreMemErr: {
- Char* s =3D ( err_extra->isUnaddr ? "unaddressable" : "uninitia=
lised" );
- VG_(message)(Vg_UserMsg, "%s contains %s byte(s)",=20
- VG_(get_error_string)(err), s);
- VG_(pp_ExeContext)( VG_(get_error_where)(err) );
- break;
- =20
- }=20
- =20
- case ValueErr:
- if (err_extra->size =3D=3D 0) {
- VG_(message)(Vg_UserMsg,
- "Conditional jump or move depends on uninitialised value=
(s)");
- } else {
- VG_(message)(Vg_UserMsg,
- "Use of uninitialised value of size %d",
- err_extra->size);
- }
- VG_(pp_ExeContext)( VG_(get_error_where)(err) );
- break;
-
- case ParamErr: {
- Bool isReg =3D ( Register =3D=3D err_extra->addrinfo.akind );
- Char* s1 =3D ( isReg ? "contains" : "points to" );
- Char* s2 =3D ( err_extra->isUnaddr ? "unaddressable" : "uniniti=
alised" );
- if (isReg) tl_assert(!err_extra->isUnaddr);
-
- VG_(message)(Vg_UserMsg, "Syscall param %s %s %s byte(s)",
- VG_(get_error_string)(err), s1, s2);
-
- VG_(pp_ExeContext)( VG_(get_error_where)(err) );
- MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addr=
info);
- break;
- }
- case UserErr: {
- Char* s =3D ( err_extra->isUnaddr ? "Unaddressable" : "Uninitia=
lised" );
-
- VG_(message)(Vg_UserMsg,=20
- "%s byte(s) found during client check request", s);
-
- VG_(pp_ExeContext)( VG_(get_error_where)(err) );
- MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addr=
info);
- break;
- }
- default:=20
- MAC_(pp_shared_Error)(err);
- break;
- }
-}
-
-/*------------------------------------------------------------*/
-/*--- Recording errors ---*/
-/*------------------------------------------------------------*/
-
-/* Creates a copy of the `extra' part, updates the copy with address inf=
o if
- necessary, and returns the copy. */
-/* This one called from generated code and non-generated code. */
-void MC_(record_value_error) ( ThreadId tid, Int size )
-{
- MAC_Error err_extra;
-
- MAC_(clear_MAC_Error)( &err_extra );
- err_extra.size =3D size;
- err_extra.isUnaddr =3D False;
- VG_(maybe_record_error)( tid, ValueErr, /*addr*/0, /*s*/NULL, &err_ex=
tra );
-}
-
-/* This called from non-generated code */
-
-void MC_(record_user_error) ( ThreadId tid, Addr a, Bool isWrite,
- Bool isUnaddr )
-{
- MAC_Error err_extra;
-
- tl_assert(VG_INVALID_THREADID !=3D tid);
- MAC_(clear_MAC_Error)( &err_extra );
- err_extra.addrinfo.akind =3D Undescribed;
- err_extra.isUnaddr =3D isUnaddr;
- VG_(maybe_record_error)( tid, UserErr, a, /*s*/NULL, &err_extra );
-}
-
-/*------------------------------------------------------------*/
-/*--- Suppressions ---*/
-/*------------------------------------------------------------*/
-
-Bool TL_(recognised_suppression) ( Char* name, Supp* su )
-{
- SuppKind skind;
-
- if (MAC_(shared_recognised_suppression)(name, su))
- return True;
-
- /* Extra suppressions not used by Addrcheck */
- else if (VG_STREQ(name, "Cond")) skind =3D Value0Supp;
- else if (VG_STREQ(name, "Value0")) skind =3D Value0Supp;/* backwards=
compat */
- else if (VG_STREQ(name, "Value1")) skind =3D Value1Supp;
- else if (VG_STREQ(name, "Value2")) skind =3D Value2Supp;
- else if (VG_STREQ(name, "Value4")) skind =3D Value4Supp;
- else if (VG_STREQ(name, "Value8")) skind =3D Value8Supp;
- else if (VG_STREQ(name, "Value16")) skind =3D Value16Supp;
- else=20
- return False;
-
- VG_(set_supp_kind)(su, skind);
- return True;
-}
-
-/*--------------------------------------------------------------------*/
-/*--- end mc_errcontext.c ---*/
-/*--------------------------------------------------------------------*/
Modified: trunk/memcheck/mc_include.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_include.h 2005-05-08 18:21:15 UTC (rev 3640)
+++ trunk/memcheck/mc_include.h 2005-05-08 18:34:59 UTC (rev 3641)
@@ -70,12 +70,6 @@
extern VGA_REGPARM(1) UWord MC_(helperc_LOADV4) ( Addr );
extern VGA_REGPARM(1) ULong MC_(helperc_LOADV8) ( Addr );
=20
-/* Functions defined in mc_errcontext.c */
-extern void MC_(record_value_error) ( ThreadId tid, Int size );
-extern void MC_(record_user_error) ( ThreadId tid, Addr a, Bool isWrit=
e,
- Bool isUnaddr );
-
-
#endif
=20
/*--------------------------------------------------------------------*/
Modified: trunk/memcheck/mc_main.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/mc_main.c 2005-05-08 18:21:15 UTC (rev 3640)
+++ trunk/memcheck/mc_main.c 2005-05-08 18:34:59 UTC (rev 3641)
@@ -1206,6 +1206,122 @@
=20
=20
/*------------------------------------------------------------*/
+/*--- Printing errors ---*/
+/*------------------------------------------------------------*/
+
+void TL_(pp_Error) ( Error* err )
+{
+ MAC_Error* err_extra =3D VG_(get_error_extra)(err);
+
+ switch (VG_(get_error_kind)(err)) {
+ case CoreMemErr: {
+ Char* s =3D ( err_extra->isUnaddr ? "unaddressable" : "uninitia=
lised" );
+ VG_(message)(Vg_UserMsg, "%s contains %s byte(s)",=20
+ VG_(get_error_string)(err), s);
+ VG_(pp_ExeContext)( VG_(get_error_where)(err) );
+ break;
+ =20
+ }=20
+ =20
+ case ValueErr:
+ if (err_extra->size =3D=3D 0) {
+ VG_(message)(Vg_UserMsg,
+ "Conditional jump or move depends on uninitialised value=
(s)");
+ } else {
+ VG_(message)(Vg_UserMsg,
+ "Use of uninitialised value of size %d",
+ err_extra->size);
+ }
+ VG_(pp_ExeContext)( VG_(get_error_where)(err) );
+ break;
+
+ case ParamErr: {
+ Bool isReg =3D ( Register =3D=3D err_extra->addrinfo.akind );
+ Char* s1 =3D ( isReg ? "contains" : "points to" );
+ Char* s2 =3D ( err_extra->isUnaddr ? "unaddressable" : "uniniti=
alised" );
+ if (isReg) tl_assert(!err_extra->isUnaddr);
+
+ VG_(message)(Vg_UserMsg, "Syscall param %s %s %s byte(s)",
+ VG_(get_error_string)(err), s1, s2);
+
+ VG_(pp_ExeContext)( VG_(get_error_where)(err) );
+ MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addr=
info);
+ break;
+ }
+ case UserErr: {
+ Char* s =3D ( err_extra->isUnaddr ? "Unaddressable" : "Uninitia=
lised" );
+
+ VG_(message)(Vg_UserMsg,=20
+ "%s byte(s) found during client check request", s);
+
+ VG_(pp_ExeContext)( VG_(get_error_where)(err) );
+ MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addr=
info);
+ break;
+ }
+ default:=20
+ MAC_(pp_shared_Error)(err);
+ break;
+ }
+}
+
+/*------------------------------------------------------------*/
+/*--- Recording errors ---*/
+/*------------------------------------------------------------*/
+
+/* Creates a copy of the `extra' part, updates the copy with address inf=
o if
+ necessary, and returns the copy. */
+/* This one called from generated code and non-generated code. */
+void mc_record_value_error ( ThreadId tid, Int size )
+{
+ MAC_Error err_extra;
+
+ MAC_(clear_MAC_Error)( &err_extra );
+ err_extra.size =3D size;
+ err_extra.isUnaddr =3D False;
+ VG_(maybe_record_error)( tid, ValueErr, /*addr*/0, /*s*/NULL, &err_ex=
tra );
+}
+
+/* This called from non-generated code */
+
+void mc_record_user_error ( ThreadId tid, Addr a, Bool isWrite,
+ Bool isUnaddr )
+{
+ MAC_Error err_extra;
+
+ tl_assert(VG_INVALID_THREADID !=3D tid);
+ MAC_(clear_MAC_Error)( &err_extra );
+ err_extra.addrinfo.akind =3D Undescribed;
+ err_extra.isUnaddr =3D isUnaddr;
+ VG_(maybe_record_error)( tid, UserErr, a, /*s*/NULL, &err_extra );
+}
+
+/*------------------------------------------------------------*/
+/*--- Suppressions ---*/
+/*------------------------------------------------------------*/
+
+Bool TL_(recognised_suppression) ( Char* name, Supp* su )
+{
+ SuppKind skind;
+
+ if (MAC_(shared_recognised_suppression)(name, su))
+ return True;
+
+ /* Extra suppressions not used by Addrcheck */
+ else if (VG_STREQ(name, "Cond")) skind =3D Value0Supp;
+ else if (VG_STREQ(name, "Value0")) skind =3D Value0Supp;/* backwards=
compat */
+ else if (VG_STREQ(name, "Value1")) skind =3D Value1Supp;
+ else if (VG_STREQ(name, "Value2")) skind =3D Value2Supp;
+ else if (VG_STREQ(name, "Value4")) skind =3D Value4Supp;
+ else if (VG_STREQ(name, "Value8")) skind =3D Value8Supp;
+ else if (VG_STREQ(name, "Value16")) skind =3D Value16Supp;
+ else=20
+ return False;
+
+ VG_(set_supp_kind)(su, skind);
+ return True;
+}
+
+/*------------------------------------------------------------*/
/*--- Functions called directly from generated code: ---*/
/*--- Load/store handlers. ---*/
/*------------------------------------------------------------*/
@@ -1605,27 +1721,27 @@
=20
void MC_(helperc_value_check0_fail) ( void )
{
- MC_(record_value_error) ( VG_(get_running_tid)(), 0 );
+ mc_record_value_error ( VG_(get_running_tid)(), 0 );
}
=20
void MC_(helperc_value_check1_fail) ( void )
{
- MC_(record_value_error) ( VG_(get_running_tid)(), 1 );
+ mc_record_value_error ( VG_(get_running_tid)(), 1 );
}
=20
void MC_(helperc_value_check4_fail) ( void )
{
- MC_(record_value_error) ( VG_(get_running_tid)(), 4 );
+ mc_record_value_error ( VG_(get_running_tid)(), 4 );
}
=20
void MC_(helperc_value_check8_fail) ( void )
{
- MC_(record_value_error) ( VG_(get_running_tid)(), 8 );
+ mc_record_value_error ( VG_(get_running_tid)(), 8 );
}
=20
VGA_REGPARM(1) void MC_(helperc_complain_undef) ( HWord sz )
{
- MC_(record_value_error) ( VG_(get_running_tid)(), (Int)sz );
+ mc_record_value_error ( VG_(get_running_tid)(), (Int)sz );
}
=20
=20
@@ -1687,7 +1803,7 @@
//zz /* setting */
//zz for (i =3D 0; i < szW; i++) {
//zz if (get_vbytes4_ALIGNED( (Addr)&vbits[i] ) !=3D VGM_WORD_V=
ALID)
-//zz MC_(record_value_error)(tid, 4);
+//zz mc_record_value_error(tid, 4);
//zz set_vbytes4_ALIGNED( (Addr)&data[i], vbits[i] );
//zz }
//zz } else {
@@ -2108,8 +2224,8 @@
case VG_USERREQ__CHECK_WRITABLE: /* check writable */
ok =3D mc_check_writable ( arg[1], arg[2], &bad_addr );
if (!ok)
- MC_(record_user_error) ( tid, bad_addr, /*isWrite*/True,
- /*isUnaddr*/True );
+ mc_record_user_error ( tid, bad_addr, /*isWrite*/True,
+ /*isUnaddr*/True );
*ret =3D ok ? (UWord)NULL : bad_addr;
break;
=20
@@ -2117,11 +2233,11 @@
MC_ReadResult res;
res =3D mc_check_readable ( arg[1], arg[2], &bad_addr );
if (MC_AddrErr =3D=3D res)
- MC_(record_user_error) ( tid, bad_addr, /*isWrite*/False,
- /*isUnaddr*/True );
+ mc_record_user_error ( tid, bad_addr, /*isWrite*/False,
+ /*isUnaddr*/True );
else if (MC_ValueErr =3D=3D res)
- MC_(record_user_error) ( tid, bad_addr, /*isWrite*/False,
- /*isUnaddr*/False );
+ mc_record_user_error ( tid, bad_addr, /*isWrite*/False,
+ /*isUnaddr*/False );
*ret =3D ( res=3D=3DMC_Ok ? (UWord)NULL : bad_addr );
break;
}
|
|
From: <sv...@va...> - 2005-05-08 18:21:21
|
Author: njn
Date: 2005-05-08 19:21:15 +0100 (Sun, 08 May 2005)
New Revision: 3640
Removed:
trunk/coregrind/amd64/amd64_private_asm.h
trunk/coregrind/x86/x86_private_asm.h
Modified:
trunk/coregrind/amd64/Makefile.am
trunk/coregrind/amd64/amd64_private.h
trunk/coregrind/amd64/dispatch.S
trunk/coregrind/x86/Makefile.am
trunk/coregrind/x86/dispatch.S
trunk/coregrind/x86/state.c
trunk/coregrind/x86/x86_private.h
Log:
Remove pointless platform-specific private_asm.h files.
Modified: trunk/coregrind/amd64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/Makefile.am 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/amd64/Makefile.am 2005-05-08 18:21:15 UTC (rev 3640)
@@ -6,8 +6,7 @@
noinst_HEADERS =3D \
core_arch.h \
core_arch_asm.h \
- amd64_private.h \
- amd64_private_asm.h
+ amd64_private.h
=20
noinst_LIBRARIES =3D libarch.a
=20
Modified: trunk/coregrind/amd64/amd64_private.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/amd64_private.h 2005-05-08 17:49:37 UTC (rev 36=
39)
+++ trunk/coregrind/amd64/amd64_private.h 2005-05-08 18:21:15 UTC (rev 36=
40)
@@ -32,7 +32,6 @@
#define __AMD64_PRIVATE_H
=20
#include "core_arch_asm.h" // arch-specific asm stuff
-#include "amd64_private_asm.h" // private arch-specific asm stuff
#include "tool_arch.h" // arch-specific tool stuff
=20
/* ---------------------------------------------------------------------
Deleted: trunk/coregrind/amd64/amd64_private_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/amd64_private_asm.h 2005-05-08 17:49:37 UTC (re=
v 3639)
+++ trunk/coregrind/amd64/amd64_private_asm.h 2005-05-08 18:21:15 UTC (re=
v 3640)
@@ -1,43 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Private arch-specific asm stuff. amd64/amd64_private_asm.h ---*/
-/*--------------------------------------------------------------------*/
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@va...
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#ifndef __AMD64_PRIVATE_ASM_H
-#define __AMD64_PRIVATE_ASM_H
-
-#if 0
-/* Client address space segment limit descriptor entry */
-#define VG_POINTERCHECK_SEGIDX 1
-#endif
-
-#endif // __AMD64_PRIVATE_ASM_H
-
-/*--------------------------------------------------------------------*/
-/*--- end ---*/
-/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/amd64/dispatch.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/dispatch.S 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/amd64/dispatch.S 2005-05-08 18:21:15 UTC (rev 3640)
@@ -30,7 +30,6 @@
*/
=20
#include "core_asm.h"
-#include "amd64_private_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_amd64_RIP */
=20
=20
Modified: trunk/coregrind/x86/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/x86/Makefile.am 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/x86/Makefile.am 2005-05-08 18:21:15 UTC (rev 3640)
@@ -6,8 +6,7 @@
noinst_HEADERS =3D \
core_arch.h \
core_arch_asm.h \
- x86_private.h \
- x86_private_asm.h
+ x86_private.h
=20
noinst_LIBRARIES =3D libarch.a
=20
Modified: trunk/coregrind/x86/dispatch.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/x86/dispatch.S 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/x86/dispatch.S 2005-05-08 18:21:15 UTC (rev 3640)
@@ -30,7 +30,6 @@
*/
=20
#include "core_asm.h"
-#include "x86_private_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_x86_EIP */
=20
=20
Modified: trunk/coregrind/x86/state.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/x86/state.c 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/x86/state.c 2005-05-08 18:21:15 UTC (rev 3640)
@@ -287,10 +287,13 @@
/*--- pointercheck ---*/
/*------------------------------------------------------------*/
=20
+/* Client address space segment limit descriptor entry */
+#define POINTERCHECK_SEGIDX 1
+
Bool VGA_(setup_pointercheck)(void)
{
vki_modify_ldt_t ldt =3D {=20
- VG_POINTERCHECK_SEGIDX, // entry_number
+ POINTERCHECK_SEGIDX, // entry_number
VG_(client_base), // base_addr
(VG_(client_end)-VG_(client_base)) / VKI_PAGE_SIZE, // limit
1, // seg_32bit
Modified: trunk/coregrind/x86/x86_private.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/x86_private.h 2005-05-08 17:49:37 UTC (rev 3639)
+++ trunk/coregrind/x86/x86_private.h 2005-05-08 18:21:15 UTC (rev 3640)
@@ -32,7 +32,6 @@
#define __X86_PRIVATE_H
=20
#include "core_arch_asm.h" // arch-specific asm stuff
-#include "x86_private_asm.h" // private arch-specific asm stuff
#include "tool_arch.h" // arch-specific tool stuff
=20
#include "libvex_guest_x86.h" // for VexGuestX86SegDescr
Deleted: trunk/coregrind/x86/x86_private_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/x86_private_asm.h 2005-05-08 17:49:37 UTC (rev 36=
39)
+++ trunk/coregrind/x86/x86_private_asm.h 2005-05-08 18:21:15 UTC (rev 36=
40)
@@ -1,41 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Private arch-specific asm stuff. x86/x86_private_asm.h ---*/
-/*--------------------------------------------------------------------*/
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@va...
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#ifndef __X86_PRIVATE_ASM_H
-#define __X86_PRIVATE_ASM_H
-
-/* Client address space segment limit descriptor entry */
-#define VG_POINTERCHECK_SEGIDX 1
-
-#endif // __X86_PRIVATE_ASM_H
-
-/*--------------------------------------------------------------------*/
-/*--- end ---*/
-/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2005-05-08 17:49:45
|
Author: njn
Date: 2005-05-08 18:49:37 +0100 (Sun, 08 May 2005)
New Revision: 3639
Modified:
trunk/NOTES.txt
trunk/cachegrind/cg_main.c
trunk/coregrind/m_aspacemgr/aspacemgr.c
trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
trunk/coregrind/m_sigframe/sigframe-x86-linux.c
trunk/coregrind/m_stacktrace.c
trunk/coregrind/vg_signals.c
trunk/include/amd64/tool_arch.h
trunk/include/arm/tool_arch.h
trunk/include/x86/tool_arch.h
trunk/memcheck/mac_shared.h
Log:
Rename some _SIZE macros as _SZB to make their units clear. This change =
is
in response to a mixed-units (bytes and words) error we had involving
VGA_STACK_REDZONE_SIZE (which is now VGA_STACK_REDZONE_SZB).
Modified: trunk/NOTES.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/NOTES.txt 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/NOTES.txt 2005-05-08 17:49:37 UTC (rev 3639)
@@ -2,7 +2,7 @@
23 Apr 05 (memcheck-on-amd64 notes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* If a thread is given an initial stack with address range [lo .. hi],
- we need to tell memcheck that the area [lo - VGA_STACK_REDZONE_SIZE
+ we need to tell memcheck that the area [lo - VGA_STACK_REDZONE_SZB
.. hi] is valid, rather than just [lo .. hi] as has been the case on
x86-only systems. However, am not sure where to look for the call
into memcheck that states the new stack area.
Modified: trunk/cachegrind/cg_main.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/cachegrind/cg_main.c 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/cachegrind/cg_main.c 2005-05-08 17:49:37 UTC (rev 3639)
@@ -535,8 +535,8 @@
=20
// Nb: instrLen will be zero if Vex failed to decode it.
tl_assert( 0 =3D=3D instrLen ||
- (instrLen >=3D VGA_MIN_INSTR_SIZE &&=20
- instrLen <=3D VGA_MAX_INSTR_SIZE) );
+ (instrLen >=3D VGA_MIN_INSTR_SZB &&=20
+ instrLen <=3D VGA_MAX_INSTR_SZB) );
=20
// Large (eg. 28B, 108B, 512B on x86) data-sized instructions will be
// done inaccurately, but they're very rare and this avoids errors fr=
om
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.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_aspacemgr/aspacemgr.c 2005-05-08 15:52:18 UTC (rev =
3638)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-05-08 17:49:37 UTC (rev =
3639)
@@ -1042,7 +1042,7 @@
the kernel as the stack pointer moves down. Initially, a 1-page
(4k) stack is allocated. When SP moves below that for the first
time, presumably a page fault occurs. The kernel detects that the
- faulting address is in the range from SP - VGA_STACK_REDZONE_SIZE
+ faulting address is in the range from SP - VGA_STACK_REDZONE_SZB
upwards to the current valid stack. It then extends the stack
segment downwards for enough to cover the faulting address, and
resumes the process (invisibly). The process is unaware of any of
@@ -1062,12 +1062,12 @@
When SP goes back up, mark the area receded over as unreadable and
unwritable.
=20
- Just to record the SP boundary conditions somewhere convenient: SP
- - VGA_STACK_REDZONE_SIZE always points to the lowest live byte in
- the stack. All addresses below SP - VGA_STACK_REDZONE_SIZE are not
+ Just to record the SP boundary conditions somewhere convenient:=20
+ SP - VGA_STACK_REDZONE_SZB always points to the lowest live byte in
+ the stack. All addresses below SP - VGA_STACK_REDZONE_SZB are not
live; those at and above it are.
=20
- We do not concern ourselves here with the VGA_STACK_REDZONE_SIZE
+ We do not concern ourselves here with the VGA_STACK_REDZONE_SZB
bias; that is handled by new_mem_stack/die_mem_stack.
*/
=20
Modified: trunk/coregrind/m_sigframe/sigframe-amd64-linux.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_sigframe/sigframe-amd64-linux.c 2005-05-08 15:52:18=
UTC (rev 3638)
+++ trunk/coregrind/m_sigframe/sigframe-amd64-linux.c 2005-05-08 17:49:37=
UTC (rev 3639)
@@ -399,8 +399,8 @@
=20
/* For tracking memory events, indicate the entire frame has been
allocated. */
- VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SIZE,
- size + VGA_STACK_REDZONE_SIZE );
+ VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SZB,
+ size + VGA_STACK_REDZONE_SZB );
=20
return True;
}
@@ -597,8 +597,8 @@
=20
size =3D restore_rt_sigframe(tst, (struct rt_sigframe *)rsp, &sigNo);
=20
- VG_TRACK( die_mem_stack_signal, rsp - VGA_STACK_REDZONE_SIZE,
- size + VGA_STACK_REDZONE_SIZE );
+ VG_TRACK( die_mem_stack_signal, rsp - VGA_STACK_REDZONE_SZB,
+ size + VGA_STACK_REDZONE_SZB );
=20
if (VG_(clo_trace_signals))
VG_(message)(
Modified: trunk/coregrind/m_sigframe/sigframe-x86-linux.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_sigframe/sigframe-x86-linux.c 2005-05-08 15:52:18 U=
TC (rev 3638)
+++ trunk/coregrind/m_sigframe/sigframe-x86-linux.c 2005-05-08 17:49:37 U=
TC (rev 3639)
@@ -420,8 +420,8 @@
=20
/* For tracking memory events, indicate the entire frame has been
allocated. */
- VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SIZE,
- size + VGA_STACK_REDZONE_SIZE );
+ VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SZB,
+ size + VGA_STACK_REDZONE_SZB );
=20
return True;
}
@@ -679,8 +679,8 @@
else
size =3D restore_rt_sigframe(tst, (struct rt_sigframe *)esp, &sigN=
o);
=20
- VG_TRACK( die_mem_stack_signal, esp - VGA_STACK_REDZONE_SIZE,
- size + VGA_STACK_REDZONE_SIZE );
+ VG_TRACK( die_mem_stack_signal, esp - VGA_STACK_REDZONE_SZB,
+ size + VGA_STACK_REDZONE_SZB );
=20
if (VG_(clo_trace_signals))
VG_(message)(
Modified: trunk/coregrind/m_stacktrace.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_stacktrace.c 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/coregrind/m_stacktrace.c 2005-05-08 17:49:37 UTC (rev 3639)
@@ -205,7 +205,7 @@
do {
Addr ip =3D ips[i];
if (i > 0)=20
- ip -=3D VGA_MIN_INSTR_SIZE; // point to calling line
+ ip -=3D VGA_MIN_INSTR_SZB; // point to calling line
=20
// Stop after "main"; if main() is recursive, stop after last mai=
n().
if ( ! VG_(clo_show_below_main)) {
Modified: trunk/coregrind/vg_signals.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/vg_signals.c 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/coregrind/vg_signals.c 2005-05-08 17:49:37 UTC (rev 3639)
@@ -797,7 +797,7 @@
VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/True );
=20
} else {
- esp_top_of_frame =3D STACK_PTR(tst->arch) - VGA_STACK_REDZONE_SIZE=
;
+ esp_top_of_frame =3D STACK_PTR(tst->arch) - VGA_STACK_REDZONE_SZB;
=20
/* Signal delivery to tools */
VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/False );
@@ -1831,14 +1831,14 @@
VG_(shadow_base), VG_(shadow_end));
}
if (info->si_code =3D=3D 1 /* SEGV_MAPERR */
- && fault >=3D (esp - VGA_STACK_REDZONE_SIZE)
+ && fault >=3D (esp - VGA_STACK_REDZONE_SZB)
&& fault < VG_(client_end)) {
/* If the fault address is above esp but below the current known
stack segment base, and it was a fault because there was
nothing mapped there (as opposed to a permissions fault),
then extend the stack segment.=20
*/
- Addr base =3D PGROUNDDN(esp - VGA_STACK_REDZONE_SIZE);
+ Addr base =3D PGROUNDDN(esp - VGA_STACK_REDZONE_SZB);
if (VG_(extend_stack)(base, VG_(threads)[tid].client_stack_szB)) {
if (VG_(clo_trace_signals))
VG_(message)(Vg_DebugMsg,=20
Modified: trunk/include/amd64/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/amd64/tool_arch.h 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/include/amd64/tool_arch.h 2005-05-08 17:49:37 UTC (rev 3639)
@@ -34,14 +34,14 @@
#define VGA_REGPARM(n) /* */
=20
=20
-#define VGA_MIN_INSTR_SIZE 1
-#define VGA_MAX_INSTR_SIZE 16
+#define VGA_MIN_INSTR_SZB 1
+#define VGA_MAX_INSTR_SZB 16
=20
=20
/* How many bytes below the stack pointer are validly addressible?
On amd64, the answer is: 128.
*/
-#define VGA_STACK_REDZONE_SIZE 128
+#define VGA_STACK_REDZONE_SZB 128
=20
=20
#endif // __AMD64_TOOL_ARCH_H
Modified: trunk/include/arm/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/arm/tool_arch.h 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/include/arm/tool_arch.h 2005-05-08 17:49:37 UTC (rev 3639)
@@ -36,8 +36,8 @@
=20
#define VGA_REGPARM(n)
=20
-#define VGA_MIN_INSTR_SIZE 4
-#define VGA_MAX_INSTR_SIZE 4=20
+#define VGA_MIN_INSTR_SZB 4
+#define VGA_MAX_INSTR_SZB 4=20
=20
#endif // __ARM_TOOL_ARCH_H
=20
Modified: trunk/include/x86/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/x86/tool_arch.h 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/include/x86/tool_arch.h 2005-05-08 17:49:37 UTC (rev 3639)
@@ -34,14 +34,14 @@
#define VGA_REGPARM(n) __attribute__((regparm(n)))
=20
=20
-#define VGA_MIN_INSTR_SIZE 1
-#define VGA_MAX_INSTR_SIZE 16
+#define VGA_MIN_INSTR_SZB 1
+#define VGA_MAX_INSTR_SZB 16
=20
=20
/* How many bytes below the stack pointer are validly addressible?
On x86, the answer is: none.
*/
-#define VGA_STACK_REDZONE_SIZE 0
+#define VGA_STACK_REDZONE_SZB 0
=20
=20
#endif // __X86_TOOL_ARCH_H
Modified: trunk/memcheck/mac_shared.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mac_shared.h 2005-05-08 15:52:18 UTC (rev 3638)
+++ trunk/memcheck/mac_shared.h 2005-05-08 17:49:37 UTC (rev 3639)
@@ -451,9 +451,9 @@
{ \
PROF_EVENT(110, "new_mem_stack_4"); \
if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
} else { \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP, 4 ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + new_SP, 4 ); \
} \
} \
\
@@ -461,9 +461,9 @@
{ \
PROF_EVENT(120, "die_mem_stack_4"); \
if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4 ); \
} else { \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4, 4 ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4, 4 ); \
} \
} \
\
@@ -471,12 +471,12 @@
{ \
PROF_EVENT(111, "new_mem_stack_8"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+4 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+4 ); \
} else { \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP, 8 ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + new_SP, 8 ); \
} \
} \
\
@@ -484,12 +484,12 @@
{ \
PROF_EVENT(121, "die_mem_stack_8"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-8 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-8 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-8 ); \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-8 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4 ); \
} else { \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-8, 8 ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-8, 8 ); \
} \
} \
\
@@ -497,13 +497,13 @@
{ \
PROF_EVENT(112, "new_mem_stack_12"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+8 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+8 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+4 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+4 ); \
} else { \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP, 12 ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + new_SP, 12 ); \
} \
} \
\
@@ -512,13 +512,13 @@
PROF_EVENT(122, "die_mem_stack_12"); \
/* Note the -12 in the test */ \
if (VG_IS_8_ALIGNED(new_SP-12)) { \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-12 ); \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-12 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-12 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-8 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-12 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-8 ); \
} else { \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-12, 12 ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-12, 12 ); \
} \
} \
\
@@ -526,14 +526,14 @@
{ \
PROF_EVENT(113, "new_mem_stack_16"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+8 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+8 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+4 ); \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+12 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+4 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+12 ); \
} else { \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP, 16 ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + new_SP, 16 ); \
} \
} \
\
@@ -541,14 +541,14 @@
{ \
PROF_EVENT(123, "die_mem_stack_16"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-16 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-8 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-16 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-8 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-16 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-12 ); \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-16 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-12 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4 ); \
} else { \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-16, 16 ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-16, 16 ); \
} \
} \
\
@@ -556,18 +556,18 @@
{ \
PROF_EVENT(114, "new_mem_stack_32"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+8 ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+16 ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+24 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+8 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+16 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+24 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+4 ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+12 ); \
- ALIGNED8_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+20 ); \
- ALIGNED4_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP+28 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+4 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+12 ); \
+ ALIGNED8_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+20 ); \
+ ALIGNED4_NEW ( -VGA_STACK_REDZONE_SZB + new_SP+28 ); \
} else { \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + new_SP, 32 ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + new_SP, 32 ); \
} \
} \
\
@@ -575,31 +575,31 @@
{ \
PROF_EVENT(124, "die_mem_stack_32"); \
if (VG_IS_8_ALIGNED(new_SP)) { \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-32 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-24 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-16 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP- 8 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-32 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-24 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-16 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP- 8 ); \
} else if (VG_IS_4_ALIGNED(new_SP)) { \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-32 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-28 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-20 ); \
- ALIGNED8_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-12 ); \
- ALIGNED4_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-4 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-32 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-28 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-20 ); \
+ ALIGNED8_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-12 ); \
+ ALIGNED4_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-4 ); \
} else { \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + new_SP-32, 32 ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + new_SP-32, 32 ); \
} \
} \
\
void MAC_(new_mem_stack) ( Addr a, SizeT len ) \
{ \
PROF_EVENT(115, "new_mem_stack"); \
- UNALIGNED_NEW ( -VGA_STACK_REDZONE_SIZE + a, len ); \
+ UNALIGNED_NEW ( -VGA_STACK_REDZONE_SZB + a, len ); \
} \
\
void MAC_(die_mem_stack) ( Addr a, SizeT len ) \
{ \
PROF_EVENT(125, "die_mem_stack"); \
- UNALIGNED_DIE ( -VGA_STACK_REDZONE_SIZE + a, len ); \
+ UNALIGNED_DIE ( -VGA_STACK_REDZONE_SZB + a, len ); \
}
=20
#endif /* __MAC_SHARED_H */
|
|
From: <sv...@va...> - 2005-05-08 15:52:22
|
Author: njn
Date: 2005-05-08 16:52:18 +0100 (Sun, 08 May 2005)
New Revision: 3638
Modified:
trunk/coregrind/m_syscalls/syscalls-amd64-linux.c
Log:
Reinstate Tom's epoll commit which I lost when I made m_syscalls.
Modified: trunk/coregrind/m_syscalls/syscalls-amd64-linux.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_syscalls/syscalls-amd64-linux.c 2005-05-08 15:26:00=
UTC (rev 3637)
+++ trunk/coregrind/m_syscalls/syscalls-amd64-linux.c 2005-05-08 15:52:18=
UTC (rev 3638)
@@ -1158,7 +1158,7 @@
LINXY(__NR_io_cancel, sys_io_cancel), // 210=20
// (__NR_get_thread_area, sys_ni_syscall), // 211=20
// (__NR_lookup_dcookie, sys_lookup_dcookie), // 212=20
- // (__NR_epoll_create, sys_epoll_create), // 213=20
+ LINXY(__NR_epoll_create, sys_epoll_create), // 213=20
// (__NR_epoll_ctl_old, sys_ni_syscall), // 214=20
=20
// (__NR_epoll_wait_old, sys_ni_syscall), // 215=20
@@ -1181,8 +1181,8 @@
=20
// (__NR_clock_nanosleep, sys_clock_nanosleep),// 230=20
LINX_(__NR_exit_group, sys_exit_group), // 231=20
- // (__NR_epoll_wait, sys_epoll_wait), // 232=20
- // (__NR_epoll_ctl, sys_epoll_ctl), // 233=20
+ LINXY(__NR_epoll_wait, sys_epoll_wait), // 232=20
+ LINX_(__NR_epoll_ctl, sys_epoll_ctl), // 233=20
LINXY(__NR_tgkill, sys_tgkill), // 234=20
=20
// (__NR_utimes, sys_utimes), // 235=20
|
|
From: <sv...@va...> - 2005-05-08 15:26:06
|
Author: njn
Date: 2005-05-08 16:26:00 +0100 (Sun, 08 May 2005)
New Revision: 3637
Modified:
trunk/memcheck/mac_needs.c
Log:
Add some comments about Param errors, and slightly rewrite a tiny=20
bit of code in a cleaner way.
Modified: trunk/memcheck/mac_needs.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/mac_needs.c 2005-05-08 14:45:13 UTC (rev 3636)
+++ trunk/memcheck/mac_needs.c 2005-05-08 15:26:00 UTC (rev 3637)
@@ -164,12 +164,18 @@
return False;
}
=20
+ // Perhaps we should also check the addrinfo.akinds for equality.
+ // That would result in more error reports, but only in cases wher=
e
+ // a register contains uninitialised bytes and points to memory
+ // containing uninitialised bytes. Currently, the 2nd of those to=
be
+ // detected won't be reported. That is (nearly?) always the memor=
y
+ // error, which is good.
+ case ParamErr:
+ if (0 !=3D VG_(strcmp)(VG_(get_error_string)(e1),
+ VG_(get_error_string)(e2))) return False=
;
+ // fall through
case UserErr:
- case ParamErr:
- if (e1_extra->isUnaddr !=3D e2_extra->isUnaddr) return =
False;
- if (VG_(get_error_kind)(e1) =3D=3D ParamErr=20
- && 0 !=3D VG_(strcmp)(VG_(get_error_string)(e1),
- VG_(get_error_string)(e2))) return Fa=
lse;
+ if (e1_extra->isUnaddr !=3D e2_extra->isUnaddr) return Fal=
se;
return True;
=20
case FreeErr:
@@ -470,12 +476,18 @@
VG_(maybe_record_error)( tid, CoreMemErr, /*addr*/0, msg, &err_extra =
);
}
=20
+// Three kinds of param errors:
+// - register arg contains undefined bytes
+// - memory arg is unaddressable
+// - memory arg contains undefined bytes
+// 'isReg' and 'isUnaddr' dictate which of these it is.
void MAC_(record_param_error) ( ThreadId tid, Addr a, Bool isReg,
Bool isUnaddr, Char* msg )
{
MAC_Error err_extra;
=20
tl_assert(VG_INVALID_THREADID !=3D tid);
+ if (isUnaddr) tl_assert(!isReg); // unaddressable register is impo=
ssible
MAC_(clear_MAC_Error)( &err_extra );
err_extra.addrinfo.akind =3D ( isReg ? Register : Undescribed );
err_extra.isUnaddr =3D isUnaddr;
|
|
From: Tom H. <th...@cy...> - 2005-05-08 10:52:30
|
Nightly build on dellow ( x86_64, Fedora Core 3 ) started at 2005-05-08 11:42:57 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 150 tests, 23 stderr failures, 3 stdout failures ================= memcheck/tests/badloop (stderr) memcheck/tests/brk (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/manuel1 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/weirdioctl (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) |
|
From: Tom H. <to...@co...> - 2005-05-08 09:42:52
|
In message <87b...@tr...>
Michael Poole <md...@tr...> wrote:
> The following patch enables the amd64-linux epoll_*() syscalls, which
> are used by one app I regularly run under valgrind on x86-linux. The
> choices of LINXY() vs LINX_() are copied from x86-linux/syscalls.c Is
> anything else (test cases, etc) required for this kind of patch to go
> in?
Committed, thanks.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-05-08 09:42:20
|
Author: tom
Date: 2005-05-08 10:42:14 +0100 (Sun, 08 May 2005)
New Revision: 3635
Modified:
trunk/coregrind/amd64-linux/syscalls.c
Log:
Enable the epoll system calls on amd64.
Modified: trunk/coregrind/amd64-linux/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64-linux/syscalls.c 2005-05-08 02:59:50 UTC (rev 3=
634)
+++ trunk/coregrind/amd64-linux/syscalls.c 2005-05-08 09:42:14 UTC (rev 3=
635)
@@ -1156,7 +1156,7 @@
LINXY(__NR_io_cancel, sys_io_cancel), // 210=20
// (__NR_get_thread_area, sys_ni_syscall), // 211=20
// (__NR_lookup_dcookie, sys_lookup_dcookie), // 212=20
- // (__NR_epoll_create, sys_epoll_create), // 213=20
+ LINXY(__NR_epoll_create, sys_epoll_create), // 213=20
// (__NR_epoll_ctl_old, sys_ni_syscall), // 214=20
=20
// (__NR_epoll_wait_old, sys_ni_syscall), // 215=20
@@ -1179,8 +1179,8 @@
=20
// (__NR_clock_nanosleep, sys_clock_nanosleep),// 230=20
LINX_(__NR_exit_group, sys_exit_group), // 231=20
- // (__NR_epoll_wait, sys_epoll_wait), // 232=20
- // (__NR_epoll_ctl, sys_epoll_ctl), // 233=20
+ LINXY(__NR_epoll_wait, sys_epoll_wait), // 232=20
+ LINX_(__NR_epoll_ctl, sys_epoll_ctl), // 233=20
LINXY(__NR_tgkill, sys_tgkill), // 234=20
=20
// (__NR_utimes, sys_utimes), // 235=20
|
|
From: <js...@ac...> - 2005-05-08 03:04:02
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-05-08 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_mmx: valgrind ./insn_mmx insn_mmxext: (skipping, prereq failed: ../../../tests/cputest x86-mmxext) insn_sse: valgrind ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 201 tests, 5 stderr failures, 0 stdout failures ================= memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/writev (stderr) corecheck/tests/fdleak_fcntl (stderr) make: *** [regtest] Error 1 |
|
From: <sv...@va...> - 2005-05-08 02:59:54
|
Author: njn
Date: 2005-05-08 03:59:50 +0100 (Sun, 08 May 2005)
New Revision: 3634
Modified:
trunk/memcheck/mc_main.c
Log:
Avoid bogus compiler warning.
Modified: trunk/memcheck/mc_main.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/mc_main.c 2005-05-08 02:13:47 UTC (rev 3633)
+++ trunk/memcheck/mc_main.c 2005-05-08 02:59:50 UTC (rev 3634)
@@ -1105,7 +1105,7 @@
Char* s, Addr str )
{
MC_ReadResult res;
- Addr bad_addr;
+ Addr bad_addr =3D 0; // shut GCC up
/* VG_(message)(Vg_DebugMsg,"check is readable asciiz: 0x%x",str); */
=20
VGP_PUSHCC(VgpCheckMem);
|
|
From: Tom H. <to...@co...> - 2005-05-08 02:35:53
|
Nightly build on dunsmere ( athlon, Fedora Core 3 ) started at 2005-05-08 03:30:03 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 175 tests, 167 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/overlap (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) memcheck/tests/x86/fpeflags (stderr) memcheck/tests/x86/pushfpopf (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_exit_group (stderr) memcheck/tests/x86/scalar_fork (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/scalar_vfork (stderr) memcheck/tests/x86/tronical (stderr) memcheck/tests/zeropage (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stderr) cachegrind/tests/x86/fpu-28-108 (stderr) corecheck/tests/as_mmap (stderr) corecheck/tests/as_shm (stderr) corecheck/tests/erringfds (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) corecheck/tests/pth_atfork1 (stderr) corecheck/tests/pth_cancel1 (stderr) corecheck/tests/pth_cancel2 (stderr) corecheck/tests/pth_cvsimple (stderr) corecheck/tests/pth_empty (stderr) corecheck/tests/pth_exit (stderr) corecheck/tests/pth_exit2 (stderr) corecheck/tests/pth_mutexspeed (stderr) corecheck/tests/pth_once (stderr) corecheck/tests/pth_rwlock (stderr) corecheck/tests/res_search (stderr) corecheck/tests/sigkill (stderr) corecheck/tests/threadederrno (stderr) corecheck/tests/vgprintf (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) lackey/tests/true (stderr) none/tests/args (stderr) none/tests/async-sigs (stderr) none/tests/bitfield1 (stderr) none/tests/blockfault (stderr) none/tests/closeall (stderr) none/tests/coolo_sigaction (stderr) none/tests/coolo_strlen (stderr) none/tests/discard (stderr) none/tests/exec-sigmask (stderr) none/tests/execve (stderr) none/tests/faultstatus (stderr) none/tests/fcntl_setown (stderr) none/tests/floored (stderr) none/tests/fork (stderr) none/tests/fucomip (stderr) none/tests/gxx304 (stderr) none/tests/manythreads (stderr) none/tests/map_unaligned (stderr) none/tests/map_unmap (stderr) none/tests/mq (stderr) none/tests/mremap (stderr) none/tests/munmap_exe (stderr) none/tests/pending (stderr) none/tests/pth_blockedsig (stderr) none/tests/pth_stackalign (stderr) none/tests/rcrl (stderr) none/tests/readline1 (stderr) none/tests/resolv (stderr) none/tests/rlimit_nofile (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/sem (stderr) none/tests/semlimit (stderr) none/tests/sha1_test (stderr) none/tests/shortpush (stderr) none/tests/shorts (stderr) none/tests/sigstackgrowth (stderr) none/tests/smc1 (stderr) none/tests/stackgrowth (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/system (stderr) none/tests/thread-exits (stderr) none/tests/threaded-fork (stderr) none/tests/tls (stderr) none/tests/x86/badseg (stderr) none/tests/x86/bt_everything (stderr) none/tests/x86/bt_literal (stderr) none/tests/x86/cpuid (stderr) none/tests/x86/fpu_lazy_eflags (stderr) none/tests/x86/getseg (stderr) none/tests/x86/insn_basic (stderr) none/tests/x86/insn_cmov (stderr) none/tests/x86/insn_fpu (stderr) none/tests/x86/insn_mmx (stderr) none/tests/x86/insn_mmxext (stderr) none/tests/x86/insn_sse (stderr) none/tests/x86/int (stderr) none/tests/x86/pushpopseg (stderr) none/tests/x86/seg_override (stderr) none/tests/x86/sigcontext (stderr) none/tests/yield (stderr) |
|
From: Tom H. <th...@cy...> - 2005-05-08 02:31:06
|
Nightly build on audi ( i686, Red Hat 9 ) started at 2005-05-08 03:25:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 174 tests, 3 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/yield (stdout) |
|
From: Tom H. <to...@co...> - 2005-05-08 02:26:13
|
Nightly build on dunsmere ( Fedora Core 3 ) started at 2005-05-08 03:20:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind ./int sh: line 1: 14706 Segmentation fault VALGRINDLIB=/tmp/valgrind.21460/valgrind/.in_place /tmp/valgrind.21460/valgrind/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --addrcheck:leak-check=no --tool=none ./int >int.stdout.out 2>int.stderr.out pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 207 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_supp (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-05-08 02:25:43
|
Nightly build on audi ( Red Hat 9 ) started at 2005-05-08 03:15:01 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow fpu_lazy_eflags: valgrind ./fpu_lazy_eflags insn_basic: valgrind ./insn_basic insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 206 tests, 1 stderr failure, 0 stdout failures ================= memcheck/tests/scalar (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-05-08 02:25:38
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-05-08 03:20:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 173 tests, 3 stderr failures, 0 stdout failures ================= corecheck/tests/fdleak_cmsg (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-05-08 02:20:50
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-05-08 03:15:02 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 173 tests, 12 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vgtest_ume (stderr) corecheck/tests/fdleak_cmsg (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-05-08 02:16:29
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2005-05-08 03:10:01 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 205 tests, 3 stderr failures, 0 stdout failures ================= memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) make: *** [regtest] Error 1 |
|
From: <sv...@va...> - 2005-05-08 02:13:52
|
Author: njn
Date: 2005-05-08 03:13:47 +0100 (Sun, 08 May 2005)
New Revision: 3633
Modified:
trunk/coregrind/vg_mylibc.c
trunk/include/tool.h.base
Log:
Remove dead function VG_(exit_single)().
Modified: trunk/coregrind/vg_mylibc.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/vg_mylibc.c 2005-05-08 02:10:27 UTC (rev 3632)
+++ trunk/coregrind/vg_mylibc.c 2005-05-08 02:13:47 UTC (rev 3633)
@@ -358,16 +358,6 @@
return VG_(is_kerror)(res) ? -1 : 0;
}
=20
-/* Terminate this single thread */
-void VG_(exit_single)( Int status )
-{
- (void)VG_(do_syscall1)(__NR_exit, status );
- /* Why are we still alive here? */
- /*NOTREACHED*/
- *(volatile Int *)0 =3D 'x';
- vg_assert(2+2 =3D=3D 5);
-}
-
/* Pull down the entire world */
void VG_(exit)( Int status )
{
Modified: trunk/include/tool.h.base
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/include/tool.h.base 2005-05-08 02:10:27 UTC (rev 3632)
+++ trunk/include/tool.h.base 2005-05-08 02:13:47 UTC (rev 3633)
@@ -333,10 +333,6 @@
extern void VG_(exit)( Int status )
__attribute__ ((__noreturn__));
=20
-/* terminate the calling thread - probably not what you want */
-extern void VG_(exit_single)( Int status )
- __attribute__ ((__noreturn__));
-
/* Prints a panic message (a constant string), appends newline and bug
reporting info, aborts. */
__attribute__ ((__noreturn__))
|
|
From: Tom H. <th...@cy...> - 2005-05-08 02:11:35
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2005-05-08 03:05:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow == 205 tests, 17 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/distinguished-writes (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/vgtest_ume (stderr) addrcheck/tests/leak-0 (stderr) addrcheck/tests/leak-cycle (stderr) addrcheck/tests/leak-regroot (stderr) addrcheck/tests/leak-tree (stderr) make: *** [regtest] Error 1 |
|
From: <sv...@va...> - 2005-05-08 02:10:41
|
Author: njn
Date: 2005-05-08 03:10:27 +0100 (Sun, 08 May 2005)
New Revision: 3632
Modified:
trunk/README
trunk/cachegrind/amd64/cg_arch.c
trunk/cachegrind/arm/cg_arch.c
trunk/cachegrind/cg_annotate.in
trunk/cachegrind/cg_arch.h
trunk/cachegrind/cg_main.c
trunk/cachegrind/cg_sim.c
trunk/cachegrind/x86/cg_arch.c
trunk/corecheck/cc_main.c
trunk/coregrind/amd64-linux/core_platform.h
trunk/coregrind/amd64-linux/syscalls.c
trunk/coregrind/amd64/amd64_private.h
trunk/coregrind/amd64/amd64_private_asm.h
trunk/coregrind/amd64/core_arch.h
trunk/coregrind/amd64/core_arch_asm.h
trunk/coregrind/amd64/state.c
trunk/coregrind/arm-linux/core_platform.h
trunk/coregrind/arm-linux/syscalls.c
trunk/coregrind/arm/core_arch.h
trunk/coregrind/arm/core_arch_asm.h
trunk/coregrind/arm/state.c
trunk/coregrind/linux/core_os.h
trunk/coregrind/linux/syscalls.c
trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
trunk/coregrind/m_sigframe/sigframe-arm-linux.c
trunk/coregrind/m_sigframe/sigframe-x86-linux.c
trunk/coregrind/vg_default.c
trunk/coregrind/vg_needs.c
trunk/coregrind/x86-linux/core_platform.h
trunk/coregrind/x86-linux/syscalls.c
trunk/coregrind/x86/core_arch.h
trunk/coregrind/x86/core_arch_asm.h
trunk/coregrind/x86/state.c
trunk/coregrind/x86/x86_private.h
trunk/coregrind/x86/x86_private_asm.h
trunk/helgrind/hg_main.c
trunk/include/amd64/tool_arch.h
trunk/include/arm/tool_arch.h
trunk/include/x86/tool_arch.h
trunk/lackey/lk_main.c
trunk/massif/ms_main.c
trunk/none/nl_main.c
trunk/tests/vg_regtest.in
Log:
A crucial, crucial change: update my email address.
Modified: trunk/README
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/README 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/README 2005-05-08 02:10:27 UTC (rev 3632)
@@ -96,5 +96,5 @@
=20
=20
Julian Seward (js...@ac...)
-Nick Nethercote (nj...@ca...)
+Nick Nethercote (nj...@va...)
Jeremy Fitzhardinge (je...@go...)
Modified: trunk/cachegrind/amd64/cg_arch.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/cachegrind/amd64/cg_arch.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/amd64/cg_arch.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/arm/cg_arch.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/cachegrind/arm/cg_arch.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/arm/cg_arch.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/cg_annotate.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/cachegrind/cg_annotate.in 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/cg_annotate.in 2005-05-08 02:10:27 UTC (rev 3632)
@@ -10,7 +10,7 @@
# profiling programs.
#
# Copyright (C) 2002-2005 Nicholas Nethercote
-# nj...@ca...
+# nj...@va...
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/cg_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/cachegrind/cg_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/cg_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/cg_main.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/cachegrind/cg_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/cg_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/cg_sim.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/cachegrind/cg_sim.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/cg_sim.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/cachegrind/x86/cg_arch.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/cachegrind/x86/cg_arch.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/cachegrind/x86/cg_arch.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
profiling programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/corecheck/cc_main.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/corecheck/cc_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/corecheck/cc_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
detecting certain basic program errors.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64/amd64_private.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/amd64_private.h 2005-05-08 02:06:33 UTC (rev 36=
31)
+++ trunk/coregrind/amd64/amd64_private.h 2005-05-08 02:10:27 UTC (rev 36=
32)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64/amd64_private_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/amd64_private_asm.h 2005-05-08 02:06:33 UTC (re=
v 3631)
+++ trunk/coregrind/amd64/amd64_private_asm.h 2005-05-08 02:10:27 UTC (re=
v 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64/core_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/core_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/amd64/core_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64/core_arch_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/core_arch_asm.h 2005-05-08 02:06:33 UTC (rev 36=
31)
+++ trunk/coregrind/amd64/core_arch_asm.h 2005-05-08 02:10:27 UTC (rev 36=
32)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64/state.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64/state.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/amd64/state.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64-linux/core_platform.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64-linux/core_platform.h 2005-05-08 02:06:33 UTC (=
rev 3631)
+++ trunk/coregrind/amd64-linux/core_platform.h 2005-05-08 02:10:27 UTC (=
rev 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/amd64-linux/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/amd64-linux/syscalls.c 2005-05-08 02:06:33 UTC (rev 3=
631)
+++ trunk/coregrind/amd64-linux/syscalls.c 2005-05-08 02:10:27 UTC (rev 3=
632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/arm/core_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/arm/core_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/arm/core_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/arm/core_arch_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/arm/core_arch_asm.h 2005-05-08 02:06:33 UTC (rev 3631=
)
+++ trunk/coregrind/arm/core_arch_asm.h 2005-05-08 02:10:27 UTC (rev 3632=
)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/arm/state.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/arm/state.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/arm/state.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/arm-linux/core_platform.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/arm-linux/core_platform.h 2005-05-08 02:06:33 UTC (re=
v 3631)
+++ trunk/coregrind/arm-linux/core_platform.h 2005-05-08 02:10:27 UTC (re=
v 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/arm-linux/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/arm-linux/syscalls.c 2005-05-08 02:06:33 UTC (rev 363=
1)
+++ trunk/coregrind/arm-linux/syscalls.c 2005-05-08 02:10:27 UTC (rev 363=
2)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/linux/core_os.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/linux/core_os.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/linux/core_os.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/linux/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/linux/syscalls.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/linux/syscalls.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/m_sigframe/sigframe-amd64-linux.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_sigframe/sigframe-amd64-linux.c 2005-05-08 02:06:33=
UTC (rev 3631)
+++ trunk/coregrind/m_sigframe/sigframe-amd64-linux.c 2005-05-08 02:10:27=
UTC (rev 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/m_sigframe/sigframe-arm-linux.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_sigframe/sigframe-arm-linux.c 2005-05-08 02:06:33 U=
TC (rev 3631)
+++ trunk/coregrind/m_sigframe/sigframe-arm-linux.c 2005-05-08 02:10:27 U=
TC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/m_sigframe/sigframe-x86-linux.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_sigframe/sigframe-x86-linux.c 2005-05-08 02:06:33 U=
TC (rev 3631)
+++ trunk/coregrind/m_sigframe/sigframe-x86-linux.c 2005-05-08 02:10:27 U=
TC (rev 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/vg_default.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/vg_default.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/vg_default.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -10,7 +10,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/vg_needs.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/vg_needs.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/vg_needs.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86/core_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/core_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/x86/core_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86/core_arch_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/core_arch_asm.h 2005-05-08 02:06:33 UTC (rev 3631=
)
+++ trunk/coregrind/x86/core_arch_asm.h 2005-05-08 02:10:27 UTC (rev 3632=
)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86/state.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/x86/state.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/x86/state.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86/x86_private.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/x86_private.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/coregrind/x86/x86_private.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86/x86_private_asm.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86/x86_private_asm.h 2005-05-08 02:06:33 UTC (rev 36=
31)
+++ trunk/coregrind/x86/x86_private_asm.h 2005-05-08 02:10:27 UTC (rev 36=
32)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86-linux/core_platform.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86-linux/core_platform.h 2005-05-08 02:06:33 UTC (re=
v 3631)
+++ trunk/coregrind/x86-linux/core_platform.h 2005-05-08 02:10:27 UTC (re=
v 3632)
@@ -9,7 +9,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/coregrind/x86-linux/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/x86-linux/syscalls.c 2005-05-08 02:06:33 UTC (rev 363=
1)
+++ trunk/coregrind/x86-linux/syscalls.c 2005-05-08 02:10:27 UTC (rev 363=
2)
@@ -8,7 +8,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/helgrind/hg_main.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/helgrind/hg_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/helgrind/hg_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
data races in threaded programs.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/include/amd64/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/amd64/tool_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/include/amd64/tool_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/include/arm/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/arm/tool_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/include/arm/tool_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/include/x86/tool_arch.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/x86/tool_arch.h 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/include/x86/tool_arch.h 2005-05-08 02:10:27 UTC (rev 3632)
@@ -7,7 +7,7 @@
framework.
=20
Copyright (C) 2000-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/lackey/lk_main.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/lackey/lk_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/lackey/lk_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -9,7 +9,7 @@
some simple program measurement.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/massif/ms_main.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/massif/ms_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/massif/ms_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
usage of programs.
=20
Copyright (C) 2003-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/none/nl_main.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/none/nl_main.c 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/none/nl_main.c 2005-05-08 02:10:27 UTC (rev 3632)
@@ -8,7 +8,7 @@
which does nothing.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
- nj...@ca...
+ nj...@va...
=20
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
Modified: trunk/tests/vg_regtest.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/vg_regtest.in 2005-05-08 02:06:33 UTC (rev 3631)
+++ trunk/tests/vg_regtest.in 2005-05-08 02:10:27 UTC (rev 3632)
@@ -7,7 +7,7 @@
# framework.
#
# Copyright (C) 2003 Nicholas Nethercote
-# nj...@ca...
+# nj...@va...
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
|
|
From: <sv...@va...> - 2005-05-08 02:06:46
|
Author: njn
Date: 2005-05-08 03:06:33 +0100 (Sun, 08 May 2005)
New Revision: 3631
Modified:
trunk/coregrind/vg_main.c
Log:
Avoid compiler warnings.
Modified: trunk/coregrind/vg_main.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/vg_main.c 2005-05-08 02:04:49 UTC (rev 3630)
+++ trunk/coregrind/vg_main.c 2005-05-08 02:06:33 UTC (rev 3631)
@@ -2175,7 +2175,7 @@
if (start >=3D VG_(client_end) && start < VG_(valgrind_last)) {
VG_(debugLog)(2, "main",
"valgrind-seg: %p-%p prot 0x%x file=3D%s\n",
- start, start+size, prot, filename);
+ (void*)start, (void*)(start+size), prot, filename);
VG_(map_file_segment)(start, size, prot,
SF_MMAP|SF_NOSYMS|SF_VALGRIND,
dev, ino, foffset, filename);
@@ -2211,7 +2211,8 @@
=20
VG_(debugLog)(2, "main",
"any-seg: %p-%p prot 0x%x stack=3D%d file=3D%s\n",
- start, start+size, prot, is_stack_segment, filename);
+ (void*)start, (void*)(start+size), prot, is_stack_segme=
nt,=20
+ filename);
=20
if (is_stack_segment)
flags =3D SF_STACK | SF_GROWDOWN;
|