You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(9) |
2
(7) |
3
(15) |
4
(14) |
|
5
(12) |
6
(18) |
7
(16) |
8
(13) |
9
(14) |
10
(20) |
11
(26) |
|
12
(14) |
13
(25) |
14
(20) |
15
(15) |
16
(14) |
17
(13) |
18
(12) |
|
19
(8) |
20
(16) |
21
(15) |
22
(37) |
23
(15) |
24
(18) |
25
(12) |
|
26
(8) |
27
(13) |
28
(12) |
|
|
|
|
|
From: Julian S. <js...@ac...> - 2006-02-05 17:34:54
|
On Monday 30 January 2006 22:39, Dave Nomura wrote: > I keep running across various notes of workarounds (floor()/ceil() hack) > in Valgrind due to the limitations on the implementation of PPC rounding > modes. Is now fixed in both 32- and 64-bit modes. The FP simulation on ppc should now be bit-exact except for the multiply-accumulate style insns, which get broken up into a multiply and an add, and hence suffer 2 roundings instead of 1. J |
|
From: <sv...@va...> - 2006-02-05 16:06:33
|
Author: sewardj
Date: 2006-02-05 16:06:26 +0000 (Sun, 05 Feb 2006)
New Revision: 1567
Log:
Fixups following recent FP rounding mode changes.
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/hdefs.h
trunk/priv/host-amd64/isel.c
Modified: trunk/priv/guest-amd64/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/toIR.c 2006-02-04 15:24:00 UTC (rev 1566)
+++ trunk/priv/guest-amd64/toIR.c 2006-02-05 16:06:26 UTC (rev 1567)
@@ -235,6 +235,11 @@
return IRExpr_Binop(op, a1, a2);
}
=20
+static IRExpr* triop ( IROp op, IRExpr* a1, IRExpr* a2, IRExpr* a3 )
+{
+ return IRExpr_Triop(op, a1, a2, a3);
+}
+
static IRExpr* mkexpr ( IRTemp tmp )
{
return IRExpr_Tmp(tmp);
@@ -4091,7 +4096,12 @@
return binop( Iop_And32, get_fpround(), mkU32(3) );
}
=20
+static IRExpr* /* :: Ity_I32 */ get_FAKE_roundingmode ( void )
+{
+ return mkU32(Irrm_NEAREST);
+}
=20
+
/* --------- Get/set FP register tag bytes. --------- */
=20
/* Given i, and some expression e, generate 'ST_TAG(i) =3D e'. */
@@ -4212,13 +4222,15 @@
DIP("f%s%c %s\n", op_txt, dbl?'l':'s', dis_buf);
if (dbl) {
put_ST_UNCHECKED(0,=20
- binop( op,=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
get_ST(0),=20
loadLE(Ity_F64,mkexpr(addr))
));
} else {
put_ST_UNCHECKED(0,=20
- binop( op,=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
get_ST(0),=20
unop(Iop_F32toF64, loadLE(Ity_F32,mkexpr(addr)))
));
@@ -4236,13 +4248,15 @@
DIP("f%s%c %s\n", op_txt, dbl?'l':'s', dis_buf);
if (dbl) {
put_ST_UNCHECKED(0,=20
- binop( op,=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
loadLE(Ity_F64,mkexpr(addr)),
get_ST(0)
));
} else {
put_ST_UNCHECKED(0,=20
- binop( op,=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
unop(Iop_F32toF64, loadLE(Ity_F32,mkexpr(addr))),
get_ST(0)
));
@@ -4260,7 +4274,10 @@
DIP("f%s%s st(%u), st(%u)\n", op_txt, pop_after?"p":"", st_src, st_ds=
t );
put_ST_UNCHECKED(=20
st_dst,=20
- binop(op, get_ST(st_dst), get_ST(st_src) )=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(st_dst),=20
+ get_ST(st_src) )=20
);
if (pop_after)
fp_pop();
@@ -4276,7 +4293,10 @@
DIP("f%s%s st(%u), st(%u)\n", op_txt, pop_after?"p":"", st_src, st_ds=
t );
put_ST_UNCHECKED(=20
st_dst,=20
- binop(op, get_ST(st_src), get_ST(st_dst) )=20
+ triop( op,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(st_src),=20
+ get_ST(st_dst) )=20
);
if (pop_after)
fp_pop();
@@ -4755,19 +4775,28 @@
=20
case 0xF0: /* F2XM1 */
DIP("f2xm1\n");
- put_ST_UNCHECKED(0, unop(Iop_2xm1F64, get_ST(0)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_2xm1F64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(0)));
break;
=20
case 0xF1: /* FYL2X */
DIP("fyl2x\n");
- put_ST_UNCHECKED(1, binop(Iop_Yl2xF64,
- get_ST(1), get_ST(0)));
+ put_ST_UNCHECKED(1,=20
+ triop(Iop_Yl2xF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(1),=20
+ get_ST(0)));
fp_pop();
break;
=20
case 0xF2: /* FPTAN */
DIP("ftan\n");
- put_ST_UNCHECKED(0, unop(Iop_TanF64, get_ST(0)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_TanF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(0)));
fp_push();
put_ST(0, IRExpr_Const(IRConst_F64(1.0)));
clear_C2(); /* HACK */
@@ -4775,8 +4804,11 @@
=20
case 0xF3: /* FPATAN */
DIP("fpatan\n");
- put_ST_UNCHECKED(1, binop(Iop_AtanF64,
- get_ST(1), get_ST(0)));
+ put_ST_UNCHECKED(1,=20
+ triop(Iop_AtanF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(1),=20
+ get_ST(0)));
fp_pop();
break;
=20
@@ -4815,23 +4847,35 @@
//..=20
case 0xF9: /* FYL2XP1 */
DIP("fyl2xp1\n");
- put_ST_UNCHECKED(1, binop(Iop_Yl2xp1F64,
- get_ST(1), get_ST(0)));
+ put_ST_UNCHECKED(1,=20
+ triop(Iop_Yl2xp1F64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(1),=20
+ get_ST(0)));
fp_pop();
break;
=20
case 0xFA: /* FSQRT */
DIP("fsqrt\n");
- put_ST_UNCHECKED(0, unop(Iop_SqrtF64, get_ST(0)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_SqrtF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ 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)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_SinF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(a1)));
fp_push();
- put_ST(0, unop(Iop_CosF64, mkexpr(a1)));
+ put_ST(0,=20
+ binop(Iop_CosF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(a1)));
clear_C2(); /* HACK */
break;
}
@@ -4844,19 +4888,28 @@
=20
case 0xFD: /* FSCALE */
DIP("fscale\n");
- put_ST_UNCHECKED(0, binop(Iop_ScaleF64,
- get_ST(0), get_ST(1)));
+ put_ST_UNCHECKED(0,=20
+ triop(Iop_ScaleF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(0),=20
+ get_ST(1)));
break;
=20
case 0xFE: /* FSIN */
DIP("fsin\n");
- put_ST_UNCHECKED(0, unop(Iop_SinF64, get_ST(0)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_SinF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(0)));
clear_C2(); /* HACK */
break;
=20
case 0xFF: /* FCOS */
DIP("fcos\n");
- put_ST_UNCHECKED(0, unop(Iop_CosF64, get_ST(0)));
+ put_ST_UNCHECKED(0,=20
+ binop(Iop_CosF64,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ get_ST(0)));
clear_C2(); /* HACK */
break;
=20
@@ -4911,7 +4964,8 @@
=20
do_fop_m32:
put_ST_UNCHECKED(0,=20
- binop(fop,=20
+ triop(fop,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
get_ST(0),
unop(Iop_I32toF64,
loadLE(Ity_I32, mkexpr(addr)))));
@@ -4919,7 +4973,8 @@
=20
do_foprev_m32:
put_ST_UNCHECKED(0,=20
- binop(fop,=20
+ triop(fop,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
unop(Iop_I32toF64,
loadLE(Ity_I32, mkexpr(addr))),
get_ST(0)));
@@ -5548,7 +5603,8 @@
=20
do_fop_m16:
put_ST_UNCHECKED(0,=20
- binop(fop,=20
+ triop(fop,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
get_ST(0),
unop(Iop_I32toF64,
unop(Iop_16Sto32,=20
@@ -5557,7 +5613,8 @@
=20
do_foprev_m16:
put_ST_UNCHECKED(0,=20
- binop(fop,=20
+ triop(fop,=20
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
unop(Iop_I32toF64,
unop(Iop_16Sto32,=20
loadLE(Ity_I16, mkexpr(addr)))),
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 2006-02-04 15:24:00 UTC (rev 1566)
+++ trunk/priv/host-amd64/hdefs.h 2006-02-05 16:06:26 UTC (rev 1567)
@@ -307,10 +307,9 @@
enum {
Afp_INVALID,
/* Binary */
-//.. Xfp_ADD, Xfp_SUB, Xfp_MUL, Xfp_DIV,=20
- Afp_SCALE, Afp_ATAN, Afp_YL2X, Afp_YL2XP1, //Xfp_PREM, Xfp_PREM1,
+ Afp_SCALE, Afp_ATAN, Afp_YL2X, Afp_YL2XP1,=20
/* Unary */
- Afp_SQRT, //Xfp_ABS, Xfp_NEG, Xfp_MOV,=20
+ Afp_SQRT,
Afp_SIN, Afp_COS, Afp_TAN,
Afp_ROUND, Afp_2XM1
}
@@ -333,7 +332,6 @@
Asse_RCPF, Asse_RSQRTF, Asse_SQRTF,=20
/* Bitwise */
Asse_AND, Asse_OR, Asse_XOR, Asse_ANDN,
-//.. /* Integer binary */
Asse_ADD8, Asse_ADD16, Asse_ADD32, Asse_ADD64,
Asse_QADD8U, Asse_QADD16U,
Asse_QADD8S, Asse_QADD16S,
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 2006-02-04 15:24:00 UTC (rev 1566)
+++ trunk/priv/host-amd64/isel.c 2006-02-05 16:06:26 UTC (rev 1567)
@@ -2804,9 +2804,9 @@
return res;
}
=20
- if (e->tag =3D=3D Iex_Binop) {
+ if (e->tag =3D=3D Iex_Triop) {
AMD64SseOp op =3D Asse_INVALID;
- switch (e->Iex.Binop.op) {
+ switch (e->Iex.Triop.op) {
case Iop_AddF64: op =3D Asse_ADDF; break;
case Iop_SubF64: op =3D Asse_SUBF; break;
case Iop_MulF64: op =3D Asse_MULF; break;
@@ -2815,41 +2815,16 @@
}
if (op !=3D Asse_INVALID) {
HReg dst =3D newVRegV(env);
- HReg argL =3D iselDblExpr(env, e->Iex.Binop.arg1);
- HReg argR =3D iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg argL =3D iselDblExpr(env, e->Iex.Triop.arg2);
+ HReg argR =3D iselDblExpr(env, e->Iex.Triop.arg3);
addInstr(env, mk_vMOVsd_RR(argL, dst));
+ /* XXXROUNDINGFIXME */
+ /* set roundingmode here */
addInstr(env, AMD64Instr_Sse64FLo(op, argR, dst));
return dst;
}
}
=20
-//.. if (e->tag =3D=3D Iex_Binop) {
-//.. X86FpOp fpop =3D Xfp_INVALID;
-//.. switch (e->Iex.Binop.op) {
-//.. case Iop_AddF64: fpop =3D Xfp_ADD; break;
-//.. case Iop_SubF64: fpop =3D Xfp_SUB; break;
-//.. case Iop_MulF64: fpop =3D Xfp_MUL; break;
-//.. case Iop_DivF64: fpop =3D Xfp_DIV; break;
-//.. case Iop_ScaleF64: fpop =3D Xfp_SCALE; break;
-//.. case Iop_AtanF64: fpop =3D Xfp_ATAN; break;
-//.. case Iop_Yl2xF64: fpop =3D Xfp_YL2X; break;
-//.. case Iop_Yl2xp1F64: fpop =3D Xfp_YL2XP1; break;
-//.. case Iop_PRemF64: fpop =3D Xfp_PREM; break;
-//.. case Iop_PRem1F64: fpop =3D Xfp_PREM1; break;
-//.. default: break;
-//.. }
-//.. if (fpop !=3D Xfp_INVALID) {
-//.. HReg res =3D newVRegF(env);
-//.. HReg srcL =3D iselDblExpr(env, e->Iex.Binop.arg1);
-//.. HReg srcR =3D iselDblExpr(env, e->Iex.Binop.arg2);
-//.. addInstr(env, X86Instr_FpBinary(fpop,srcL,srcR,res));
-//.. if (fpop !=3D Xfp_ADD && fpop !=3D Xfp_SUB=20
-//.. && fpop !=3D Xfp_MUL && fpop !=3D Xfp_DIV)
-//.. roundToF64(env, res);
-//.. return res;
-//.. }
-//.. }
-
if (e->tag =3D=3D Iex_Binop && e->Iex.Binop.op =3D=3D Iop_RoundF64toI=
nt) {
AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
HReg arg =3D iselDblExpr(env, e->Iex.Binop.arg2);
@@ -2874,17 +2849,17 @@
return dst;
}
=20
- 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
- || e->Iex.Binop.op =3D=3D Iop_Yl2xp1F64)
+ if (e->tag =3D=3D Iex_Triop=20
+ && (e->Iex.Triop.op =3D=3D Iop_ScaleF64
+ || e->Iex.Triop.op =3D=3D Iop_AtanF64
+ || e->Iex.Triop.op =3D=3D Iop_Yl2xF64
+ || e->Iex.Triop.op =3D=3D Iop_Yl2xp1F64)
) {
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 arg1 =3D iselDblExpr(env, e->Iex.Triop.arg2);
+ HReg arg2 =3D iselDblExpr(env, e->Iex.Triop.arg3);
HReg dst =3D newVRegV(env);
- Bool arg2first =3D toBool(e->Iex.Binop.op =3D=3D Iop_ScaleF64)=
;
+ Bool arg2first =3D toBool(e->Iex.Triop.op =3D=3D Iop_ScaleF64)=
;
addInstr(env, AMD64Instr_A87Free(2));
=20
/* one arg -> top of x87 stack */
@@ -2898,7 +2873,9 @@
addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
=20
/* do it */
- switch (e->Iex.Binop.op) {
+ /* XXXROUNDINGFIXME */
+ /* set roundingmode here */
+ switch (e->Iex.Triop.op) {
case Iop_ScaleF64:=20
addInstr(env, AMD64Instr_A87FpOp(Afp_SCALE));
break;
@@ -2964,11 +2941,9 @@
return dst;
}
=20
- if (e->tag =3D=3D Iex_Unop) {
+ if (e->tag =3D=3D Iex_Binop) {
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;
+ switch (e->Iex.Binop.op) {
case Iop_SqrtF64: fpop =3D Afp_SQRT; break;
case Iop_SinF64: fpop =3D Afp_SIN; break;
case Iop_CosF64: fpop =3D Afp_COS; break;
@@ -2978,14 +2953,16 @@
}
if (fpop !=3D Afp_INVALID) {
AMD64AMode* m8_rsp =3D AMD64AMode_IR(-8, hregAMD64_RSP());
- HReg arg =3D iselDblExpr(env, e->Iex.Unop.arg);
+ HReg arg =3D iselDblExpr(env, e->Iex.Binop.arg2);
HReg dst =3D newVRegV(env);
- Int nNeeded =3D e->Iex.Unop.op=3D=3DIop_TanF64 ? 2 : 1;
+ Int nNeeded =3D e->Iex.Binop.op=3D=3DIop_TanF64 ? 2 : 1;
addInstr(env, AMD64Instr_SseLdSt(False/*store*/, 8, arg, m8_rsp=
));
addInstr(env, AMD64Instr_A87Free(nNeeded));
addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/));
+ /* XXXROUNDINGFIXME */
+ /* set roundingmode here */
addInstr(env, AMD64Instr_A87FpOp(fpop));
- if (e->Iex.Unop.op=3D=3DIop_TanF64) {
+ if (e->Iex.Binop.op=3D=3DIop_TanF64) {
/* get rid of the extra 1.0 that fptan pushes */
addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/));
}
|
|
From: <js...@ac...> - 2006-02-05 11:43:13
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-02-05 04:40:00 CET Results differ from 24 hours ago Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-02-05T04:40:00} valgrind svn: Unknown hostname 'svn.valgrind.org' ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-02-04T04:40:00} valgrind svn: Unknown hostname 'svn.valgrind.org' ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 04:40:21 2006 --- new.short Sun Feb 5 04:40:41 2006 *************** *** 5,7 **** ! Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-02-04T04:40:00} valgrind svn: Unknown hostname 'svn.valgrind.org' --- 5,7 ---- ! Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-02-05T04:40:00} valgrind svn: Unknown hostname 'svn.valgrind.org' |
|
From: <js...@ac...> - 2006-02-05 11:17:29
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-02-05 05:00:01 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 190 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <js...@ac...> - 2006-02-05 03:56:50
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-02-05 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 223 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:43:58 2006 --- new.short Sun Feb 5 03:57:32 2006 *************** *** 10,12 **** ! == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 223 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <to...@co...> - 2006-02-05 03:44:22
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-02-05 03:30:07 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 225 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 223 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:37:13 2006 --- new.short Sun Feb 5 03:44:10 2006 *************** *** 8,10 **** ! == 223 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 225 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2006-02-05 03:30:26
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-02-05 03:15:02 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 224 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (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/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 222 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (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/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:22:56 2006 --- new.short Sun Feb 5 03:30:19 2006 *************** *** 8,10 **** ! == 222 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 224 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) |
|
From: Tom H. <th...@cy...> - 2006-02-05 03:24:40
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-02-05 03:10:08 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 244 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 7 stderr failures, 4 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:17:49 2006 --- new.short Sun Feb 5 03:24:25 2006 *************** *** 8,13 **** ! == 242 tests, 7 stderr failures, 4 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) ! memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) --- 8,13 ---- ! == 244 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) ! memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-02-05 03:20:33
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-02-05 03:05:12 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 244 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:13:33 2006 --- new.short Sun Feb 5 03:20:24 2006 *************** *** 8,10 **** ! == 242 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) --- 8,10 ---- ! == 244 tests, 8 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) |
|
From: Tom H. <th...@cy...> - 2006-02-05 03:14:34
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-02-05 03:00:04 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 244 tests, 9 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 9 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) memcheck/tests/amd64/insn_fpu (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/amd64/insn_fpu (stdout) none/tests/amd64/insn_fpu (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 5 03:06:47 2006 --- new.short Sun Feb 5 03:14:28 2006 *************** *** 8,10 **** ! == 242 tests, 9 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) --- 8,10 ---- ! == 244 tests, 9 stderr failures, 3 stdout failures ================= memcheck/tests/amd64/insn_fpu (stdout) |
|
From: Nicholas N. <nj...@cs...> - 2006-02-05 01:04:54
|
On Sun, 5 Feb 2006, Julian Seward wrote: >> Valgrind still has some nested functions in m_debuginfo/symtypes.c >> (newvar and genstring). What's the policy with respect to nested >> functions? Would you all be OK if I recoded this a little to remove the >> nesting? > > I'd love to be rid of them. That'd be great, yes please. I agree. I tried once, but those two are tricky suckers and I didn't want to break anything so I didn't. They're in the the debug sym code that only Helgrind uses, and so it may have bitrotted somewhat. N |
|
From: Julian S. <js...@ac...> - 2006-02-05 00:28:09
|
> Valgrind still has some nested functions in m_debuginfo/symtypes.c > (newvar and genstring). What's the policy with respect to nested > functions? Would you all be OK if I recoded this a little to remove the > nesting? I'd love to be rid of them. That'd be great, yes please. As far as I know they are the only thing standing in the way of being able to build V with icc, although that's based on experimentation from long ago. I don't know what level of gnuisms pathcc can cope with, but if it was also pathcc-buildable that would be good. The real issue is that we've had various regressions in debuginfo reading for non-gcc compilers because the test suite is only routinely built with gcc. So - technically - we could avoid such regressions by building the testsuite with non-gcc, but in general the wider the set of compilers that can build the whole thing successfully, the better, imo. Oh .. and the warnings bug me too. J |