You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
(1) |
|
2
(28) |
3
(21) |
4
(27) |
5
(22) |
6
(24) |
7
(25) |
8
(21) |
|
9
(18) |
10
(20) |
11
(10) |
12
(36) |
13
(18) |
14
(18) |
15
(29) |
|
16
(17) |
17
(7) |
18
(11) |
19
(17) |
20
(18) |
21
(12) |
22
(13) |
|
23
(9) |
24
(8) |
25
(7) |
26
(22) |
27
(18) |
28
(9) |
29
(15) |
|
30
(13) |
31
(7) |
|
|
|
|
|
|
From: <sv...@va...> - 2005-10-03 15:35:45
|
Author: njn Date: 2005-10-03 16:35:29 +0100 (Mon, 03 Oct 2005) New Revision: 210 Log: foo Modified: trunk/gallery/users.html Modified: trunk/gallery/users.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/gallery/users.html 2005-10-03 14:28:04 UTC (rev 209) +++ trunk/gallery/users.html 2005-10-03 15:35:29 UTC (rev 210) @@ -229,7 +229,7 @@ <ul> =20 <li><a href=3D"http://renderman.pixar.com/">RenderMan:</a> - Rendering package used all of Pixar's movies, The Lord of the Rings, + Rendering package used for all of Pixar's movies, The Lord of the Ri= ngs, The Matrix Trilogy, the Star Wars prequels, etc.</li> =20 <li><a href=3D"http://www.gimp.org/">The GIMP:</a> |
|
From: Oswald B. <os...@kd...> - 2005-10-03 15:04:14
|
On Fri, Sep 30, 2005 at 04:19:10PM +0100, sv...@va... wrote: > Author: njn > Date: 2005-09-30 16:19:10 +0100 (Fri, 30 Sep 2005) > New Revision: 207 > > Log: > I am a pedant. > i'm a bigger one. :) > - Hadron Collider</a> Data acquisition, reconstruction, > + Hadron Collider:</a> Data acquisition, reconstruction, > i'd put the colons outside the link. > + <li><a href="http://renderman.pixar.com/">RenderMan:</a> > Rendering package used all of Pixar's movies, The Lord of the Rings, > The Matrix Trilogy, the Star Wars prequels, etc.</li> > this sentence still doesn't make sense, though. :-P -- Hi! I'm a .signature virus! Copy me into your ~/.signature, please! -- Chaos, panic, and disorder - my work here is done. |
|
From: <sv...@va...> - 2005-10-03 14:28:12
|
Author: njn Date: 2005-10-03 15:28:04 +0100 (Mon, 03 Oct 2005) New Revision: 209 Log: We have a Turkish user. Modified: trunk/info/about.html Modified: trunk/info/about.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/info/about.html 2005-10-02 15:53:19 UTC (rev 208) +++ trunk/info/about.html 2005-10-03 14:28:04 UTC (rev 209) @@ -64,7 +64,7 @@ Netherlands, Norway, Poland, Portugal, Russia, Slovenia,=20 Sweden, Switzerland, UK, Argentina, Brazil, Canada, USA, Australia, China, India, Japan, New Zeal= and, -Singapore, South Africa and Israel.</li> +Singapore, South Africa, Israel and Turkey.</li> =20 <li>Valgrind works with programs written in any language. Because Valgrind works directly with program binaries, it works with |
|
From: <sv...@va...> - 2005-10-03 11:40:50
|
Author: sewardj
Date: 2005-10-03 12:40:44 +0100 (Mon, 03 Oct 2005)
New Revision: 4850
Log:
Update
Modified:
trunk/docs/internals/3_0_BUGSTATUS.txt
Modified: trunk/docs/internals/3_0_BUGSTATUS.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-03 09:06:36 UTC (rev 4=
849)
+++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-03 11:40:44 UTC (rev 4=
850)
@@ -107,7 +107,7 @@
112941 vex x86: 0xD9 0xF4 (fxtract)
110201 =3D=3D
=20
-FIXED-TRUNK: TODO
+FIXED-TRUNK: vex:1405
=20
----------------------------------------------------------------
113015 vex amd64->IR: 0xE3 0x14 0x48 0x83
@@ -191,14 +191,14 @@
----------------------------------------------------------------
111829 vex x86->IR: unhandled instruction bytes: sbb Al, Ib
=20
-FIXED-TRUNK: TODO
+FIXED-TRUNK: vex:1406
FIXED-30BRANCH: TODO
=20
----------------------------------------------------------------
111851 vex x86->IR: unhandled instruction bytes: 0x9F 0x89
(lahf/sahf)
=20
-FIXED-TRUNK: TODO
+FIXED-TRUNK: vex:1409
FIXED-30BRANCH: TODO
=20
----------------------------------------------------------------
@@ -212,7 +212,7 @@
112167 =3D=3D
112789 =3D=3D
=20
-FIXED-TRUNK: TODO
+FIXED-TRUNK: vex:1407
FIXED-30BRANCH: TODO
=20
----------------------------------------------------------------
@@ -225,7 +225,7 @@
112501 vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)
113583 =3D=3D
=20
-FIXED-TRUNK: TODO
+FIXED-TRUNK: vex:1408
FIXED-30BRANCH: TODO
=20
----------------------------------------------------------------
|
|
From: <sv...@va...> - 2005-10-03 11:39:06
|
Author: sewardj
Date: 2005-10-03 12:39:02 +0100 (Mon, 03 Oct 2005)
New Revision: 1409
Log:
Implement LAHF.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-10-03 02:44:01 UTC (rev 1408)
+++ trunk/priv/guest-x86/toIR.c 2005-10-03 11:39:02 UTC (rev 1409)
@@ -5978,27 +5978,31 @@
}
=20
=20
-//-- static=20
-//-- void codegen_LAHF ( UCodeBlock* cb )
-//-- {
-//-- Int t =3D newTemp(cb);
-//--=20
-//-- /* Pushed arg is ignored, it just provides somewhere to put the
-//-- return value. */
-//-- uInstr2(cb, GET, 4, ArchReg, R_EAX, TempReg, t);
-//-- uInstr0(cb, CALLM_S, 0);
-//-- uInstr1(cb, PUSH, 4, TempReg, t);
-//-- uInstr1(cb, CALLM, 0, Lit16, VGOFF_(helper_LAHF));
-//-- uFlagsRWU(cb, FlagsSZACP, FlagsEmpty, FlagsEmpty);
-//-- uInstr1(cb, POP, 4, TempReg, t);
-//-- uInstr0(cb, CALLM_E, 0);
-//--=20
-//-- /* At this point, the %ah sub-register in %eax has been updated,
-//-- the rest is the same, so do a PUT of the whole thing. */
-//-- uInstr2(cb, PUT, 4, TempReg, t, ArchReg, R_EAX);
-//-- }
-//--=20
+static=20
+void codegen_LAHF ( void )
+{
+ /* AH <- EFLAGS(SF:ZF:0:AF:0:PF:1:CF) */
+ IRExpr* eax_with_hole;
+ IRExpr* new_byte;
+ IRExpr* new_eax;
+ UInt mask_SZACP =3D X86G_CC_MASK_S|X86G_CC_MASK_Z|X86G_CC_MASK_A
+ |X86G_CC_MASK_C|X86G_CC_MASK_P;
=20
+ IRTemp flags =3D newTemp(Ity_I32);
+ assign( flags, mk_x86g_calculate_eflags_all() );
+
+ eax_with_hole=20
+ =3D binop(Iop_And32, getIReg(4, R_EAX), mkU32(0xFFFF00FF));
+ new_byte=20
+ =3D binop(Iop_Or32, binop(Iop_And32, mkexpr(flags), mkU32(mask_SZA=
CP)),
+ mkU32(1<<1));
+ new_eax=20
+ =3D binop(Iop_Or32, eax_with_hole,
+ binop(Iop_Shl32, new_byte, mkU8(8)));
+ putIReg(4, R_EAX, new_eax);
+}
+
+
static
UInt dis_cmpxchg_G_E ( UChar sorb,
Int size,=20
@@ -10458,11 +10462,11 @@
DIP("sahf\n");
break;
=20
-//-- case 0x9F: /* LAHF */
-//-- codegen_LAHF ( cb );
-//-- DIP("lahf\n");
-//-- break;
-//--=20
+ case 0x9F: /* LAHF */
+ codegen_LAHF();
+ DIP("lahf\n");
+ break;
+
case 0x9B: /* FWAIT */
/* ignore? */
DIP("fwait\n");
|
|
From: Tom H. <to...@co...> - 2005-10-03 09:21:08
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
> This is a good thing; however I'm not sure I understand the logic.
>
> - the first conditional reads
>
> if ( (fd < 0 || fd >= VG_(fd_hard_limit) || fd == VG_(clo_log_fd))
> && VG_(showing_core_errors)() ) {
> ... stuff ...
> return False;
> }
>
> which seems to imply that some part of the decision rests on
> what VG_(showing_core_errors)() produces, iow on what sounds
> like a setting in the error-displaying options. That seems a
> little odd.
I guess it does that test so that it doesn't print the message if
it is not supposed to be showing errors, but it should probably still
return false and it doesn't at the moment.
> - what does the "Bool soft" parameter mean?
Whether or not to consider a file descriptor invalid if it is above
the current soft limit.
Basically if we are testing whether a newly created file descriptor is
valid (in a post handler) then we set soft to true, and if we are
testing whether a file descriptor that is about to be used (in a pre
handler) is valid then we set it to false.
The point is that if the (virtual) soft limit is lowered then any
existing descriptors can still be read/written/closed etc (so long as
they are below the valgrind reserved descriptors) but no new
descriptors can be created above the new soft limit.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-10-03 09:06:43
|
Author: tom
Date: 2005-10-03 10:06:36 +0100 (Mon, 03 Oct 2005)
New Revision: 4849
Log:
Allow scripts less that a page in length to be executed.
Modified:
trunk/coregrind/m_ume.c
Modified: trunk/coregrind/m_ume.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_ume.c 2005-10-03 02:23:17 UTC (rev 4848)
+++ trunk/coregrind/m_ume.c 2005-10-03 09:06:36 UTC (rev 4849)
@@ -794,8 +794,12 @@
return err;
}
=20
- sres =3D VG_(pread)(fd, buf, sizeof(buf), 0);
- if (sres.isError || sres.val !=3D sizeof(buf)) {
+ bufsz =3D VG_(fsize)(fd);
+ if (bufsz > sizeof(buf))
+ bufsz =3D sizeof(buf);
+
+ sres =3D VG_(pread)(fd, buf, bufsz, 0);
+ if (sres.isError || sres.val !=3D bufsz) {
VG_(printf)("Can't read executable header: %s\n",
VG_(strerror)(sres.val));
VG_(close)(fd);
|
|
From: Nicholas N. <nj...@cs...> - 2005-10-03 03:01:22
|
On Fri, 30 Sep 2005, Julian Seward wrote:
> I've been looking a little at ML_(fd_allowed), in syswrap-generic.c.
> This function decides which fds syscalls are allowed to create/use,
> so that V's own fds don't get trashed.
>
> This is a good thing; however I'm not sure I understand the logic.
>
> - the first conditional reads
>
> if ( (fd < 0 || fd >= VG_(fd_hard_limit) || fd == VG_(clo_log_fd))
> && VG_(showing_core_errors)() ) {
> ... stuff ...
> return False;
> }
>
> which seems to imply that some part of the decision rests on
> what VG_(showing_core_errors)() produces, iow on what sounds
> like a setting in the error-displaying options. That seems a
> little odd.
It does look odd. Some of the subsequent "else if" cases cover some of
these cases, but not all. I think it should really be something like
this:
if (some conditions) {
if (showing_core_erros && more specific conditions) {
print error msg
}
return False;
} else {
return True;
}
> - what does the "Bool soft" parameter mean?
There are two fd limits, the soft and hard limits. I think the client can
only access those below the soft limit, and Valgrind can access those
below the hard limit? Something like that.
Nick
|
|
From: <js...@ac...> - 2005-10-03 03:00:50
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-10-03 03:30:00 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 == 188 tests, 2 stderr failures, 0 stdout failures ================= none/tests/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 == 186 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Oct 3 03:47:27 2005 --- new.short Mon Oct 3 04:00:43 2005 *************** *** 10,12 **** ! == 186 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) --- 10,12 ---- ! == 188 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) |
|
From: <sv...@va...> - 2005-10-03 02:44:05
|
Author: sewardj
Date: 2005-10-03 03:44:01 +0100 (Mon, 03 Oct 2005)
New Revision: 1408
Log:
Implement the 0F 7F encoding for movq mmreg, mmreg.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-10-03 02:16:02 UTC (rev 1407)
+++ trunk/priv/guest-x86/toIR.c 2005-10-03 02:44:01 UTC (rev 1408)
@@ -5334,9 +5334,10 @@
goto mmx_decode_failure;
modrm =3D getIByte(delta);
if (epartIsReg(modrm)) {
- /* Fall through. The assembler doesn't appear to generate
- these. */
- goto mmx_decode_failure;
+ delta++;
+ putMMXReg( eregOfRM(modrm), getMMXReg(gregOfRM(modrm)) );
+ DIP("movq %s, %s\n",=20
+ nameMMXReg(gregOfRM(modrm)), nameMMXReg(eregOfRM(modrm))=
);
} else {
IRTemp addr =3D disAMode( &len, sorb, delta, dis_buf );
delta +=3D len;
|
|
From: Tom H. <to...@co...> - 2005-10-03 02:40:42
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-10-03 03:30:04 BST 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 == 190 tests, 9 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fcntl_setown (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 == 188 tests, 9 stderr failures, 1 stdout failure ================= memcheck/tests/clientperm (stdout) memcheck/tests/clientperm (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Oct 3 03:35:22 2005 --- new.short Mon Oct 3 03:40:34 2005 *************** *** 8,12 **** ! == 188 tests, 9 stderr failures, 1 stdout failure ================= ! memcheck/tests/clientperm (stdout) ! memcheck/tests/clientperm (stderr) memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 190 tests, 9 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) *************** *** 18,19 **** --- 16,18 ---- none/tests/faultstatus (stderr) + none/tests/fcntl_setown (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-03 02:27:47
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-10-03 03:15:03 BST 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 == 188 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (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/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/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 == 187 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (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/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/yield (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Oct 3 03:21:44 2005 --- new.short Mon Oct 3 03:27:38 2005 *************** *** 8,10 **** ! == 187 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 188 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) *************** *** 25,27 **** none/tests/x86/int (stderr) - none/tests/x86/yield (stdout) --- 25,26 ---- |
|
From: Tom H. <th...@cy...> - 2005-10-03 02:25:23
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-10-03 03:10:13 BST 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 == 188 tests, 4 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/yield (stdout) ================================================= == 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 == 187 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Oct 3 03:18:58 2005 --- new.short Mon Oct 3 03:25:17 2005 *************** *** 8,10 **** ! == 187 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) --- 8,10 ---- ! == 188 tests, 4 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) *************** *** 13,14 **** --- 13,15 ---- none/tests/x86/int (stderr) + none/tests/x86/yield (stdout) |
|
From: <sv...@va...> - 2005-10-03 02:23:25
|
Author: sewardj
Date: 2005-10-03 03:23:17 +0100 (Mon, 03 Oct 2005)
New Revision: 4848
Log:
Test misc sbb/adc insns.
Added:
trunk/none/tests/x86/sbbmisc.c
trunk/none/tests/x86/sbbmisc.stderr.exp
trunk/none/tests/x86/sbbmisc.stdout.exp
trunk/none/tests/x86/sbbmisc.vgtest
Modified:
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/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/none/tests/x86/Makefile.am 2005-10-03 01:22:29 UTC (rev 4847)
+++ trunk/none/tests/x86/Makefile.am 2005-10-03 02:23:17 UTC (rev 4848)
@@ -19,6 +19,7 @@
$(addsuffix .vgtest,$(INSN_TESTS)) \
looper.stderr.exp looper.stdout.exp looper.vgtest \
pushpopseg.stderr.exp pushpopseg.stdout.exp pushpopseg.vgtest \
+ sbbmisc.stderr.exp sbbmisc.stdout.exp sbbmisc.vgtest \
seg_override.stderr.exp seg_override.stdout.exp seg_override.vgtest \
sigcontext.stdout.exp sigcontext.stderr.exp sigcontext.vgtest \
smc1.stderr.exp smc1.stdout.exp smc1.vgtest \
@@ -28,7 +29,8 @@
badseg bt_everything bt_literal cmpxchg8b cpuid fpu_lazy_eflags \
fxtract \
getseg $(INSN_TESTS) \
- looper int pushpopseg seg_override sigcontext smc1 yield
+ looper int pushpopseg sbbmisc \
+ seg_override sigcontext smc1 yield
=20
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow \
-g -I$(top_srcdir)/include \
Added: trunk/none/tests/x86/sbbmisc.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/tests/x86/sbbmisc.c 2005-10-03 01:22:29 UTC (rev 4847)
+++ trunk/none/tests/x86/sbbmisc.c 2005-10-03 02:23:17 UTC (rev 4848)
@@ -0,0 +1,181 @@
+
+#include <stdio.h>
+
+char in_b, out_b1, out_b2, in_b2;
+
+short in_w, out_w1, out_w2;
+
+int in_l, out_l1, out_l2;
+
+extern void sbb_ib_al ( void );
+asm("\n"
+"sbb_ib_al:\n"
+
+"\tmovb in_b, %al\n"
+"\tclc\n"
+"\tsbbb $5, %al\n"
+"\tmovb %al, out_b1\n"
+
+"\tmovb in_b, %al\n"
+"\tstc\n"
+"\tsbbb $5, %al\n"
+"\tmovb %al, out_b2\n"
+
+"\tret\n"
+);
+
+
+extern void sbb_iw_ax ( void );
+asm("\n"
+"sbb_iw_ax:\n"
+
+"\tmovw in_w, %ax\n"
+"\tclc\n"
+"\tsbbw $555, %ax\n"
+"\tmovw %ax, out_w1\n"
+
+"\tmovw in_w, %ax\n"
+"\tstc\n"
+"\tsbbw $555, %ax\n"
+"\tmovw %ax, out_w2\n"
+
+"\tret\n"
+);
+
+
+extern void sbb_il_eax ( void );
+asm("\n"
+"sbb_il_eax:\n"
+
+"\tmovl in_l, %eax\n"
+"\tclc\n"
+"\tsbbl $555666, %eax\n"
+"\tmovl %eax, out_l1\n"
+
+"\tmovl in_l, %eax\n"
+"\tstc\n"
+"\tsbbl $555666, %eax\n"
+"\tmovl %eax, out_l2\n"
+
+"\tret\n"
+);
+
+
+extern void sbb_eb_gb ( void );
+asm("\n"
+"sbb_eb_gb:\n"
+
+"\tmovb in_b, %al\n"
+"\tclc\n"
+"\tsbbb in_b2, %al\n"
+"\tmovb %al, out_b1\n"
+
+"\tmovb in_b, %al\n"
+"\tstc\n"
+"\tsbbb in_b2, %al\n"
+"\tmovb %al, out_b2\n"
+
+"\tret\n"
+);
+
+
+extern void sbb_eb_gb_2 ( void );
+asm("\n"
+"sbb_eb_gb_2:\n"
+"\tpushl %ecx\n"
+
+"\tmovb in_b, %cl\n"
+"\tmovb in_b2, %dh\n"
+"\tclc\n"
+"\tsbbb %dh,%cl\n"
+"\tmovb %cl, out_b1\n"
+
+"\tmovb in_b, %cl\n"
+"\tmovb in_b2, %dh\n"
+"\tstc\n"
+"\tsbbb %dh,%cl\n"
+"\tmovb %cl, out_b2\n"
+
+"\tpopl %ecx\n"
+"\tret\n"
+);
+
+
+extern void adc_eb_gb ( void );
+asm("\n"
+"adc_eb_gb:\n"
+
+"\tmovb in_b, %al\n"
+"\tclc\n"
+"\tadcb in_b2, %al\n"
+"\tmovb %al, out_b1\n"
+
+"\tmovb in_b, %al\n"
+"\tstc\n"
+"\tadcb in_b2, %al\n"
+"\tmovb %al, out_b2\n"
+
+"\tret\n"
+);
+
+
+extern void adc_eb_gb_2 ( void );
+asm("\n"
+"adc_eb_gb_2:\n"
+"\tpushl %ecx\n"
+
+"\tmovb in_b, %cl\n"
+"\tmovb in_b2, %dh\n"
+"\tclc\n"
+"\tadcb %dh,%cl\n"
+"\tmovb %cl, out_b1\n"
+
+"\tmovb in_b, %cl\n"
+"\tmovb in_b2, %dh\n"
+"\tstc\n"
+"\tadcb %dh,%cl\n"
+"\tmovb %cl, out_b2\n"
+
+"\tpopl %ecx\n"
+"\tret\n"
+);
+
+
+
+
+int main ( void )
+{
+ in_b =3D 99;
+ sbb_ib_al();
+ printf("r1 =3D %d %d\n", (int)out_b1, (int)out_b2);
+
+ in_w =3D 49999;
+ sbb_iw_ax();
+ printf("r2 =3D %d %d\n", (int)out_w1, (int)out_w2);
+
+ in_l =3D 0xF0000000;
+ sbb_il_eax();
+ printf("r3 =3D %d %d\n", (int)out_l1, (int)out_l2);
+
+ in_b =3D 99;
+ in_b2 =3D 88;
+ sbb_eb_gb();
+ printf("r4 =3D %d %d\n", (int)out_b1, (int)out_b2);
+
+ in_b =3D 66;
+ in_b2 =3D 77;
+ sbb_eb_gb_2();
+ printf("r5 =3D %d %d\n", (int)out_b1, (int)out_b2);
+
+ in_b =3D 99;
+ in_b2 =3D 88;
+ adc_eb_gb();
+ printf("r6 =3D %d %d\n", (int)out_b1, (int)out_b2);
+
+ in_b =3D 66;
+ in_b2 =3D 77;
+ adc_eb_gb_2();
+ printf("r7 =3D %d %d\n", (int)out_b1, (int)out_b2);
+
+ return 0;
+}
Added: trunk/none/tests/x86/sbbmisc.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/sbbmisc.stderr.exp 2005-10-03 01:22:29 UTC (rev =
4847)
+++ trunk/none/tests/x86/sbbmisc.stderr.exp 2005-10-03 02:23:17 UTC (rev =
4848)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/x86/sbbmisc.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/sbbmisc.stdout.exp 2005-10-03 01:22:29 UTC (rev =
4847)
+++ trunk/none/tests/x86/sbbmisc.stdout.exp 2005-10-03 02:23:17 UTC (rev =
4848)
@@ -0,0 +1,7 @@
+r1 =3D 94 93
+r2 =3D -16092 -16093
+r3 =3D -268991122 -268991123
+r4 =3D 11 10
+r5 =3D -11 -12
+r6 =3D -69 -68
+r7 =3D -113 -112
Added: trunk/none/tests/x86/sbbmisc.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/sbbmisc.vgtest 2005-10-03 01:22:29 UTC (rev 4847=
)
+++ trunk/none/tests/x86/sbbmisc.vgtest 2005-10-03 02:23:17 UTC (rev 4848=
)
@@ -0,0 +1 @@
+prog: sbbmisc
|
|
From: Tom H. <th...@cy...> - 2005-10-03 02:21:22
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-03 03:10:13 BST 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 == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-03 02:19:21
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-03 03:05:05 BST 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 == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: <sv...@va...> - 2005-10-03 02:16:11
|
Author: sewardj
Date: 2005-10-03 03:16:02 +0100 (Mon, 03 Oct 2005)
New Revision: 1407
Log:
Enable Xin_MFence on VexSubArchX86_sse0.
Modified:
trunk/priv/host-x86/hdefs.c
Modified: trunk/priv/host-x86/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-x86/hdefs.c 2005-10-03 02:07:08 UTC (rev 1406)
+++ trunk/priv/host-x86/hdefs.c 2005-10-03 02:16:02 UTC (rev 1407)
@@ -2315,7 +2315,6 @@
if (0) vex_printf("EMIT FENCE\n");
switch (i->Xin.MFence.subarch) {
case VexSubArchX86_sse0:
- vassert(0); /* awaiting test case */
/* lock addl $0,0(%esp) */
*p++ =3D 0xF0; *p++ =3D 0x83; *p++ =3D 0x44;=20
*p++ =3D 0x24; *p++ =3D 0x00; *p++ =3D 0x00;
|
|
From: Tom H. <th...@cy...> - 2005-10-03 02:14:36
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-03 03:00:03 BST 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 == 165 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) |
|
From: <sv...@va...> - 2005-10-03 02:07:44
|
Author: sewardj
Date: 2005-10-03 03:07:08 +0100 (Mon, 03 Oct 2005)
New Revision: 1406
Log:
Fix various adc/sbb instruction variants.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-10-03 01:02:40 UTC (rev 1405)
+++ trunk/priv/guest-x86/toIR.c 2005-10-03 02:07:08 UTC (rev 1406)
@@ -1976,6 +1976,10 @@
helper_ADC( size, dst1, dst0, src );
}
else
+ if (op8 =3D=3D Iop_Sub8 && carrying) {
+ helper_SBB( size, dst1, dst0, src );
+ }
+ else
vpanic("dis_op_imm_A(x86,guest)");
=20
if (keep)
@@ -10810,13 +10814,13 @@
delta =3D dis_op_imm_A( sz, True, Iop_Add8, True, delta, "adc" );
break;
=20
-//-- case 0x1C: /* SBB Ib, AL */
-//-- delta =3D dis_op_imm_A( 1, SBB, True, delta, "sbb" );
-//-- break;
-//-- case 0x1D: /* SBB Iv, eAX */
-//-- delta =3D dis_op_imm_A( sz, SBB, True, delta, "sbb" );
-//-- break;
-//--=20
+ case 0x1C: /* SBB Ib, AL */
+ delta =3D dis_op_imm_A( 1, True, Iop_Sub8, True, delta, "sbb" );
+ break;
+ case 0x1D: /* SBB Iv, eAX */
+ delta =3D dis_op_imm_A( sz, True, Iop_Sub8, True, delta, "sbb" );
+ break;
+
case 0x24: /* AND Ib, AL */
delta =3D dis_op_imm_A( 1, False, Iop_And8, True, delta, "and" );
break;
@@ -10867,17 +10871,17 @@
case 0x0B: /* OR Ev,Gv */
delta =3D dis_op2_E_G ( sorb, False, Iop_Or8, True, sz, delta, "or=
" );
break;
-//--=20
-//-- case 0x12: /* ADC Eb,Gb */
-//-- delta =3D dis_op2_E_G ( sorb, True, ADC, True, 1, delta, "adc=
" );
-//-- break;
+
+ case 0x12: /* ADC Eb,Gb */
+ delta =3D dis_op2_E_G ( sorb, True, Iop_Add8, True, 1, delta, "adc=
" );
+ break;
case 0x13: /* ADC Ev,Gv */
delta =3D dis_op2_E_G ( sorb, True, Iop_Add8, True, sz, delta, "ad=
c" );
break;
=20
-//-- case 0x1A: /* SBB Eb,Gb */
-//-- delta =3D dis_op2_E_G ( sorb, True, SBB, True, 1, delta, "sbb=
" );
-//-- break;
+ case 0x1A: /* SBB Eb,Gb */
+ delta =3D dis_op2_E_G ( sorb, True, Iop_Sub8, True, 1, delta, "sbb=
" );
+ break;
case 0x1B: /* SBB Ev,Gv */
delta =3D dis_op2_E_G ( sorb, True, Iop_Sub8, True, sz, delta, "sb=
b" );
break;
|
|
From: <sv...@va...> - 2005-10-03 01:22:36
|
Author: sewardj
Date: 2005-10-03 02:22:29 +0100 (Mon, 03 Oct 2005)
New Revision: 4847
Log:
Test simulation of x86 'fxtract'.
Added:
trunk/none/tests/x86/fxtract.c
trunk/none/tests/x86/fxtract.stderr.exp
trunk/none/tests/x86/fxtract.stdout.exp
trunk/none/tests/x86/fxtract.vgtest
Modified:
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/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/none/tests/x86/Makefile.am 2005-10-02 17:50:31 UTC (rev 4846)
+++ trunk/none/tests/x86/Makefile.am 2005-10-03 01:22:29 UTC (rev 4847)
@@ -11,6 +11,7 @@
cmpxchg8b.stderr.exp cmpxchg8b.stdout.exp cmpxchg8b.vgtest \
fpu_lazy_eflags.stderr.exp fpu_lazy_eflags.stdout.exp \
fpu_lazy_eflags.vgtest \
+ fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \
getseg.stdout.exp getseg.stderr.exp getseg.vgtest \
int.stderr.exp int.stdout.exp int.vgtest \
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
@@ -25,6 +26,7 @@
=20
check_PROGRAMS =3D \
badseg bt_everything bt_literal cmpxchg8b cpuid fpu_lazy_eflags \
+ fxtract \
getseg $(INSN_TESTS) \
looper int pushpopseg seg_override sigcontext smc1 yield
=20
@@ -38,6 +40,7 @@
cpuid_SOURCES =3D cpuid_c.c cpuid_s.s
# fpu_lazy_eflags must use these flags -- the bug only occurred with the=
m
fpu_lazy_eflags_CFLAGS =3D -O2 -march=3Dpentiumpro
+fxtract_LDADD =3D -lm
insn_basic_SOURCES =3D insn_basic.def
insn_basic_LDADD =3D -lm
insn_fpu_SOURCES =3D insn_fpu.def
Added: trunk/none/tests/x86/fxtract.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/tests/x86/fxtract.c 2005-10-02 17:50:31 UTC (rev 4846)
+++ trunk/none/tests/x86/fxtract.c 2005-10-03 01:22:29 UTC (rev 4847)
@@ -0,0 +1,99 @@
+
+#include <stdio.h>
+#include <math.h>
+
+double arg, res1, res2;
+
+extern void do_fxtract ( void );
+asm("\n"
+".global do_fxtract\n"
+"do_fxtract:\n"
+"\tfinit\n"
+"\tfldl arg\n"
+"\tfxtract\n"
+"\tfstpl res1\n"
+"\tfstpl res2\n"
+"\tret"
+);
+
+void try ( double x )
+{
+ arg =3D x * 1.414213562373049;
+ res1 =3D res2 =3D 0.0;
+ do_fxtract();
+ printf("%17.10e -> %14.10f %14.10f\n", arg, res1, res2);
+}
+
+int main ( void )
+{
+ int i;
+
+ /* positives */
+
+ for (i =3D 0; i < 40; i++)
+ try( 1.27 + (double)(i*10 - 200) );
+
+ try(+0.0);
+ try(1.0 / 0.0);
+ try(sqrt(-1.0));
+
+ try(5.1e-308);
+ try(4.1e-308);
+ try(3.1e-308);
+ try(2.1e-308);
+ try(1.1e-308);
+ try(0.9e-308);
+ try(0.7e-308);
+ try(0.6e-308);
+ try(0.5e-308);
+ try(0.4e-308);
+ try(0.3e-308);
+ try(0.1e-308);
+
+ try(1.3e-320);
+ try(1.3e-321);
+ try(1.3e-322);
+ try(1.3e-323);
+ try(0.9e-323);
+ try(0.7e-323);
+ try(0.5e-323);
+ try(0.3e-323);
+ try(0.2e-323);
+ try(1.3e-324);
+
+ /* negatives */
+
+ printf("\n");
+ for (i =3D 0; i < 40; i++)
+ try( - (1.27 + (double)(i*10 - 200)) );
+
+ try(-0.0);
+ try(-(1.0 / 0.0));
+ try(-sqrt(-1.0));
+
+ try(-5.1e-308);
+ try(-4.1e-308);
+ try(-3.1e-308);
+ try(-2.1e-308);
+ try(-1.1e-308);
+ try(-0.9e-308);
+ try(-0.7e-308);
+ try(-0.6e-308);
+ try(-0.5e-308);
+ try(-0.4e-308);
+ try(-0.3e-308);
+ try(-0.1e-308);
+
+ try(-1.3e-320);
+ try(-1.3e-321);
+ try(-1.3e-322);
+ try(-1.3e-323);
+ try(-0.9e-323);
+ try(-0.7e-323);
+ try(-0.5e-323);
+ try(-0.3e-323);
+ try(-0.2e-323);
+ try(-1.3e-324);
+
+ return 0;
+}
Added: trunk/none/tests/x86/fxtract.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/fxtract.stderr.exp 2005-10-02 17:50:31 UTC (rev =
4846)
+++ trunk/none/tests/x86/fxtract.stderr.exp 2005-10-03 01:22:29 UTC (rev =
4847)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/x86/fxtract.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/fxtract.stdout.exp 2005-10-02 17:50:31 UTC (rev =
4846)
+++ trunk/none/tests/x86/fxtract.stdout.exp 2005-10-03 01:22:29 UTC (rev =
4847)
@@ -0,0 +1,131 @@
+-2.8104666125e+02 -> -1.0978385205 8.0000000000
+-2.6690452563e+02 -> -1.0425958032 8.0000000000
+-2.5276239000e+02 -> -1.9747061719 7.0000000000
+-2.3862025438e+02 -> -1.8642207373 7.0000000000
+-2.2447811876e+02 -> -1.7537353028 7.0000000000
+-2.1033598313e+02 -> -1.6432498682 7.0000000000
+-1.9619384751e+02 -> -1.5327644337 7.0000000000
+-1.8205171188e+02 -> -1.4222789991 7.0000000000
+-1.6790957626e+02 -> -1.3117935645 7.0000000000
+-1.5376744064e+02 -> -1.2013081300 7.0000000000
+-1.3962530501e+02 -> -1.0908226954 7.0000000000
+-1.2548316939e+02 -> -1.9606745217 6.0000000000
+-1.1134103377e+02 -> -1.7397036526 6.0000000000
+-9.7198898142e+01 -> -1.5187327835 6.0000000000
+-8.3056762518e+01 -> -1.2977619143 6.0000000000
+-6.8914626894e+01 -> -1.0767910452 6.0000000000
+-5.4772491271e+01 -> -1.7116403522 5.0000000000
+-4.0630355647e+01 -> -1.2696986140 5.0000000000
+-2.6488220023e+01 -> -1.6555137515 4.0000000000
+-1.2346084400e+01 -> -1.5432605499 3.0000000000
+ 1.7960512242e+00 -> 1.7960512242 0.0000000000
+ 1.5938186848e+01 -> 1.9922733560 3.0000000000
+ 3.0080322472e+01 -> 1.8800201545 4.0000000000
+ 4.4222458095e+01 -> 1.3819518155 5.0000000000
+ 5.8364593719e+01 -> 1.8238935537 5.0000000000
+ 7.2506729343e+01 -> 1.1329176460 6.0000000000
+ 8.6648864967e+01 -> 1.3538885151 6.0000000000
+ 1.0079100059e+02 -> 1.5748593842 6.0000000000
+ 1.1493313621e+02 -> 1.7958302533 6.0000000000
+ 1.2907527184e+02 -> 1.0084005612 7.0000000000
+ 1.4321740746e+02 -> 1.1188859958 7.0000000000
+ 1.5735954309e+02 -> 1.2293714304 7.0000000000
+ 1.7150167871e+02 -> 1.3398568649 7.0000000000
+ 1.8564381433e+02 -> 1.4503422995 7.0000000000
+ 1.9978594996e+02 -> 1.5608277340 7.0000000000
+ 2.1392808558e+02 -> 1.6713131686 7.0000000000
+ 2.2807022120e+02 -> 1.7817986032 7.0000000000
+ 2.4221235683e+02 -> 1.8922840377 7.0000000000
+ 2.5635449245e+02 -> 1.0013847361 8.0000000000
+ 2.7049662808e+02 -> 1.0566274534 8.0000000000
+ 0.0000000000e+00 -> 0.0000000000 -inf
+ inf -> inf inf
+ nan -> nan nan
+7.2124891681e-308 -> 1.6207302828 -1021.0000000000
+5.7982756057e-308 -> 1.3029400313 -1021.0000000000
+4.3840620434e-308 -> 1.9702995595 -1022.0000000000
+2.9698484810e-308 -> 1.3347190565 -1022.0000000000
+1.5556349186e-308 -> 1.3982771068 -1023.0000000000
+1.2727922061e-308 -> 1.1440449055 -1023.0000000000
+9.8994949366e-309 -> 1.7796254086 -1024.0000000000
+8.4852813742e-309 -> 1.5253932074 -1024.0000000000
+7.0710678119e-309 -> 1.2711610062 -1024.0000000000
+5.6568542495e-309 -> 1.0169288049 -1024.0000000000
+4.2426406871e-309 -> 1.5253932074 -1025.0000000000
+1.4142135624e-309 -> 1.0169288049 -1026.0000000000
+1.8384182682e-320 -> 1.8168945312 -1063.0000000000
+1.8379242025e-321 -> 1.4531250000 -1066.0000000000
+1.8280428896e-322 -> 1.1562500000 -1069.0000000000
+1.9762625834e-323 -> 1.0000000000 -1072.0000000000
+1.4821969375e-323 -> 1.5000000000 -1073.0000000000
+4.9406564584e-324 -> 1.0000000000 -1074.0000000000
+4.9406564584e-324 -> 1.0000000000 -1074.0000000000
+4.9406564584e-324 -> 1.0000000000 -1074.0000000000
+ 0.0000000000e+00 -> 0.0000000000 -inf
+ 0.0000000000e+00 -> 0.0000000000 -inf
+
+ 2.8104666125e+02 -> 1.0978385205 8.0000000000
+ 2.6690452563e+02 -> 1.0425958032 8.0000000000
+ 2.5276239000e+02 -> 1.9747061719 7.0000000000
+ 2.3862025438e+02 -> 1.8642207373 7.0000000000
+ 2.2447811876e+02 -> 1.7537353028 7.0000000000
+ 2.1033598313e+02 -> 1.6432498682 7.0000000000
+ 1.9619384751e+02 -> 1.5327644337 7.0000000000
+ 1.8205171188e+02 -> 1.4222789991 7.0000000000
+ 1.6790957626e+02 -> 1.3117935645 7.0000000000
+ 1.5376744064e+02 -> 1.2013081300 7.0000000000
+ 1.3962530501e+02 -> 1.0908226954 7.0000000000
+ 1.2548316939e+02 -> 1.9606745217 6.0000000000
+ 1.1134103377e+02 -> 1.7397036526 6.0000000000
+ 9.7198898142e+01 -> 1.5187327835 6.0000000000
+ 8.3056762518e+01 -> 1.2977619143 6.0000000000
+ 6.8914626894e+01 -> 1.0767910452 6.0000000000
+ 5.4772491271e+01 -> 1.7116403522 5.0000000000
+ 4.0630355647e+01 -> 1.2696986140 5.0000000000
+ 2.6488220023e+01 -> 1.6555137515 4.0000000000
+ 1.2346084400e+01 -> 1.5432605499 3.0000000000
+-1.7960512242e+00 -> -1.7960512242 0.0000000000
+-1.5938186848e+01 -> -1.9922733560 3.0000000000
+-3.0080322472e+01 -> -1.8800201545 4.0000000000
+-4.4222458095e+01 -> -1.3819518155 5.0000000000
+-5.8364593719e+01 -> -1.8238935537 5.0000000000
+-7.2506729343e+01 -> -1.1329176460 6.0000000000
+-8.6648864967e+01 -> -1.3538885151 6.0000000000
+-1.0079100059e+02 -> -1.5748593842 6.0000000000
+-1.1493313621e+02 -> -1.7958302533 6.0000000000
+-1.2907527184e+02 -> -1.0084005612 7.0000000000
+-1.4321740746e+02 -> -1.1188859958 7.0000000000
+-1.5735954309e+02 -> -1.2293714304 7.0000000000
+-1.7150167871e+02 -> -1.3398568649 7.0000000000
+-1.8564381433e+02 -> -1.4503422995 7.0000000000
+-1.9978594996e+02 -> -1.5608277340 7.0000000000
+-2.1392808558e+02 -> -1.6713131686 7.0000000000
+-2.2807022120e+02 -> -1.7817986032 7.0000000000
+-2.4221235683e+02 -> -1.8922840377 7.0000000000
+-2.5635449245e+02 -> -1.0013847361 8.0000000000
+-2.7049662808e+02 -> -1.0566274534 8.0000000000
+-0.0000000000e+00 -> -0.0000000000 -inf
+ -inf -> -inf inf
+ nan -> nan nan
+-7.2124891681e-308 -> -1.6207302828 -1021.0000000000
+-5.7982756057e-308 -> -1.3029400313 -1021.0000000000
+-4.3840620434e-308 -> -1.9702995595 -1022.0000000000
+-2.9698484810e-308 -> -1.3347190565 -1022.0000000000
+-1.5556349186e-308 -> -1.3982771068 -1023.0000000000
+-1.2727922061e-308 -> -1.1440449055 -1023.0000000000
+-9.8994949366e-309 -> -1.7796254086 -1024.0000000000
+-8.4852813742e-309 -> -1.5253932074 -1024.0000000000
+-7.0710678119e-309 -> -1.2711610062 -1024.0000000000
+-5.6568542495e-309 -> -1.0169288049 -1024.0000000000
+-4.2426406871e-309 -> -1.5253932074 -1025.0000000000
+-1.4142135624e-309 -> -1.0169288049 -1026.0000000000
+-1.8384182682e-320 -> -1.8168945312 -1063.0000000000
+-1.8379242025e-321 -> -1.4531250000 -1066.0000000000
+-1.8280428896e-322 -> -1.1562500000 -1069.0000000000
+-1.9762625834e-323 -> -1.0000000000 -1072.0000000000
+-1.4821969375e-323 -> -1.5000000000 -1073.0000000000
+-4.9406564584e-324 -> -1.0000000000 -1074.0000000000
+-4.9406564584e-324 -> -1.0000000000 -1074.0000000000
+-4.9406564584e-324 -> -1.0000000000 -1074.0000000000
+-0.0000000000e+00 -> -0.0000000000 -inf
+-0.0000000000e+00 -> -0.0000000000 -inf
Added: trunk/none/tests/x86/fxtract.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/tests/x86/fxtract.vgtest 2005-10-02 17:50:31 UTC (rev 4846=
)
+++ trunk/none/tests/x86/fxtract.vgtest 2005-10-03 01:22:29 UTC (rev 4847=
)
@@ -0,0 +1 @@
+prog: fxtract
|
|
From: <sv...@va...> - 2005-10-03 01:02:46
|
Author: sewardj
Date: 2005-10-03 02:02:40 +0100 (Mon, 03 Oct 2005)
New Revision: 1405
Log:
x86 front end: implement FXTRACT. I knew there was a reason I'd been
avoiding this ...
Modified:
trunk/priv/guest-x86/gdefs.h
trunk/priv/guest-x86/ghelpers.c
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/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-x86/gdefs.h 2005-09-16 16:02:11 UTC (rev 1404)
+++ trunk/priv/guest-x86/gdefs.h 2005-10-03 01:02:40 UTC (rev 1405)
@@ -119,6 +119,9 @@
=20
extern UInt x86g_create_mxcsr ( UInt sseround );
=20
+extern ULong x86g_calculate_FXTRACT ( ULong arg, UInt getExp );
+
+
/* Translate a guest virtual_addr into a guest linear address by
consulting the supplied LDT/GDT structures. Their representation
must be as specified in pub/libvex_guest_x86.h. To indicate a
Modified: trunk/priv/guest-x86/ghelpers.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/ghelpers.c 2005-09-16 16:02:11 UTC (rev 1404)
+++ trunk/priv/guest-x86/ghelpers.c 2005-10-03 01:02:40 UTC (rev 1405)
@@ -1243,6 +1243,90 @@
}
=20
=20
+/* CALLED FROM GENERATED CODE: CLEAN HELPER */
+/* Extract the signed significand or exponent component as per
+ fxtract. Arg and result are doubles travelling under the guise of
+ ULongs. Returns significand when getExp is zero and exponent
+ otherwise. */
+ULong x86g_calculate_FXTRACT ( ULong arg, UInt getExp )
+{
+ ULong uSig;
+ Long sSig;
+ Double dSig, dExp;
+ Int sExp, i;
+ UInt sign;
+
+ /*
+ S 7FF 0------0 infinity
+ S 7FF 0X-----X snan
+ S 7FF 1X-----X qnan
+ */
+ const ULong posInf =3D 0x7FF0000000000000ULL;
+ const ULong negInf =3D 0xFFF0000000000000ULL;
+ const ULong nanMask =3D 0x7FF0000000000000ULL;
+ const ULong qNan =3D 0x7FF8000000000000ULL;
+ const ULong posZero =3D 0x0000000000000000ULL;
+ const ULong negZero =3D 0x8000000000000000ULL;
+ const ULong bit51 =3D 1ULL << 51;
+ const ULong bit52 =3D 1ULL << 52;
+
+ /* Mimic PIII behaviour for special cases. */
+ if (arg =3D=3D posInf)
+ return getExp ? posInf : posInf;
+ if (arg =3D=3D negInf)
+ return getExp ? posInf : negInf;
+ if ((arg & nanMask) =3D=3D nanMask)
+ return qNan;
+ if (arg =3D=3D posZero)
+ return getExp ? negInf : posZero;
+ if (arg =3D=3D negZero)
+ return getExp ? negInf : negZero;
+
+ /* Split into sign, exponent and significand. */
+ sign =3D ((UInt)(arg >> 63)) & 1;
+
+ /* Mask off exponent & sign. uSig is in range 0 .. 2^52-1. */
+ uSig =3D arg & (bit52 - 1);
+
+ /* Get the exponent. */
+ sExp =3D ((Int)(arg >> 52)) & 0x7FF;
+
+ /* Deal with denormals: if the exponent is zero, then the
+ significand cannot possibly be zero (negZero/posZero are handled
+ above). Shift the significand left until bit 51 of it becomes
+ 1, and decrease the exponent accordingly.
+ */
+ if (sExp =3D=3D 0) {
+ for (i =3D 0; i < 52; i++) {
+ if (uSig & bit51)
+ break;
+ uSig <<=3D 1;
+ sExp--;
+ }
+ uSig <<=3D 1;
+ } else {
+ /* Add the implied leading-1 in the significand. */
+ uSig |=3D bit52;
+ }
+
+ /* Roll in the sign. */
+ sSig =3D uSig;
+ if (sign) sSig =3D- sSig;
+
+ /* Convert sig into a double. This should be an exact conversion.
+ Then divide by 2^52, which should give a value in the range 1.0
+ to 2.0-epsilon, at least for normalised args. */
+ dSig =3D (Double)sSig;
+ dSig /=3D 67108864.0; /* 2^26 */
+ dSig /=3D 67108864.0; /* 2^26 */
+
+ /* Convert exp into a double. Also an exact conversion. */
+ dExp =3D (Double)(sExp - 1023);
+
+ return *(ULong*)(getExp ? &dExp : &dSig);
+}
+
+
/*----------------------------------------------*/
/*--- The exported fns .. ---*/
/*----------------------------------------------*/
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-09-16 16:02:11 UTC (rev 1404)
+++ trunk/priv/guest-x86/toIR.c 2005-10-03 01:02:40 UTC (rev 1405)
@@ -3863,6 +3863,38 @@
fp_pop();
break;
=20
+ case 0xF4: {
+ IRTemp argF =3D newTemp(Ity_F64);
+ IRTemp sigF =3D newTemp(Ity_F64);
+ IRTemp expF =3D newTemp(Ity_F64);
+ IRTemp argI =3D newTemp(Ity_I64);
+ IRTemp sigI =3D newTemp(Ity_I64);
+ IRTemp expI =3D newTemp(Ity_I64);
+ DIP("fxtract\n");
+ assign( argF, get_ST(0) );
+ assign( argI, unop(Iop_ReinterpF64asI64, mkexpr(argF)));
+ assign( sigI,=20
+ mkIRExprCCall(Ity_I64, 0/*regparms*/,=20
+ "x86g_calculate_FXTRACT",=20
+ &x86g_calculate_FXTRACT,=20
+ mkIRExprVec_2( mkexpr(argI),=20
+ mkU32(0)/*sig*/ )) )=
;
+ assign( expI,=20
+ mkIRExprCCall(Ity_I64, 0/*regparms*/,=20
+ "x86g_calculate_FXTRACT",=20
+ &x86g_calculate_FXTRACT,=20
+ mkIRExprVec_2( mkexpr(argI),=20
+ mkU32(1)/*exp*/ )) )=
;
+ assign( sigF, unop(Iop_ReinterpI64asF64, mkexpr(sigI)) );
+ assign( expF, unop(Iop_ReinterpI64asF64, mkexpr(expI)) );
+ /* exponent */
+ put_ST_UNCHECKED(0, mkexpr(expF) );
+ fp_push();
+ /* significand */
+ put_ST(0, mkexpr(sigF) );
+ break;
+ }
+
case 0xF5: { /* FPREM1 -- IEEE compliant */
IRTemp a1 =3D newTemp(Ity_F64);
IRTemp a2 =3D newTemp(Ity_F64);
|