|
From: <sv...@va...> - 2005-06-13 12:33:45
|
Author: sewardj
Date: 2005-06-13 13:33:36 +0100 (Mon, 13 Jun 2005)
New Revision: 1207
Log:
The guest-state effect declaration for x86 'fldenv' has been wrong for
a long time -- it says fldenv writes the FP regs, which isn't true.
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-06-13 12:17:27 UTC (rev 1206)
+++ trunk/priv/guest-x86/toIR.c 2005-06-13 12:33:36 UTC (rev 1207)
@@ -3749,28 +3749,24 @@
d->mSize =3D 28;
=20
/* declare we're writing guest state */
- d->nFxState =3D 5;
+ d->nFxState =3D 4;
=20
d->fxState[0].fx =3D Ifx_Write;
d->fxState[0].offset =3D OFFB_FTOP;
d->fxState[0].size =3D sizeof(UInt);
=20
d->fxState[1].fx =3D Ifx_Write;
- d->fxState[1].offset =3D OFFB_FPREGS;
- d->fxState[1].size =3D 8 * sizeof(ULong);
+ d->fxState[1].offset =3D OFFB_FPTAGS;
+ d->fxState[1].size =3D 8 * sizeof(UChar);
=20
d->fxState[2].fx =3D Ifx_Write;
- d->fxState[2].offset =3D OFFB_FPTAGS;
- d->fxState[2].size =3D 8 * sizeof(UChar);
+ d->fxState[2].offset =3D OFFB_FPROUND;
+ d->fxState[2].size =3D sizeof(UInt);
=20
d->fxState[3].fx =3D Ifx_Write;
- d->fxState[3].offset =3D OFFB_FPROUND;
+ d->fxState[3].offset =3D OFFB_FC3210;
d->fxState[3].size =3D sizeof(UInt);
=20
- d->fxState[4].fx =3D Ifx_Write;
- d->fxState[4].offset =3D OFFB_FC3210;
- d->fxState[4].size =3D sizeof(UInt);
-
stmt( IRStmt_Dirty(d) );
=20
/* ew contains any emulation warning we may need to
|