From fecf3ea1abd740cba8109488e1ffca408fdbeea4 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Mon, 13 Jun 2005 12:33:36 +0000 Subject: [PATCH] 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. git-svn-id: svn://svn.valgrind.org/vex/trunk@1207 --- VEX/priv/guest-x86/toIR.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/VEX/priv/guest-x86/toIR.c b/VEX/priv/guest-x86/toIR.c index 9f2924ff18..ab7de82aa6 100644 --- a/VEX/priv/guest-x86/toIR.c +++ b/VEX/priv/guest-x86/toIR.c @@ -3749,28 +3749,24 @@ UInt dis_FPU ( Bool* decode_ok, UChar sorb, UInt delta ) d->mSize = 28; /* declare we're writing guest state */ - d->nFxState = 5; + d->nFxState = 4; d->fxState[0].fx = Ifx_Write; d->fxState[0].offset = OFFB_FTOP; d->fxState[0].size = sizeof(UInt); d->fxState[1].fx = Ifx_Write; - d->fxState[1].offset = OFFB_FPREGS; - d->fxState[1].size = 8 * sizeof(ULong); + d->fxState[1].offset = OFFB_FPTAGS; + d->fxState[1].size = 8 * sizeof(UChar); d->fxState[2].fx = Ifx_Write; - d->fxState[2].offset = OFFB_FPTAGS; - d->fxState[2].size = 8 * sizeof(UChar); + d->fxState[2].offset = OFFB_FPROUND; + d->fxState[2].size = sizeof(UInt); d->fxState[3].fx = Ifx_Write; - d->fxState[3].offset = OFFB_FPROUND; + d->fxState[3].offset = OFFB_FC3210; d->fxState[3].size = sizeof(UInt); - d->fxState[4].fx = Ifx_Write; - d->fxState[4].offset = OFFB_FC3210; - d->fxState[4].size = sizeof(UInt); - stmt( IRStmt_Dirty(d) ); /* ew contains any emulation warning we may need to -- 2.47.3