From: Julian Seward Date: Sat, 23 Apr 2005 23:41:46 +0000 (+0000) Subject: Handle some artefacts resulting from memchecking of x87 floating-point X-Git-Tag: svn/VALGRIND_3_0_1^2~196 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0e7eda91e6aac952dcb7883cbceece3d3de3ba17;p=thirdparty%2Fvalgrind.git Handle some artefacts resulting from memchecking of x87 floating-point code (I64-typed PutI/GetI). git-svn-id: svn://svn.valgrind.org/vex/trunk@1138 --- diff --git a/VEX/priv/host-amd64/isel.c b/VEX/priv/host-amd64/isel.c index d734ec66af..4019c14c20 100644 --- a/VEX/priv/host-amd64/isel.c +++ b/VEX/priv/host-amd64/isel.c @@ -1403,6 +1403,10 @@ static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e ) addInstr(env, AMD64Instr_LoadEX( 1, False, am, dst )); return dst; } + if (ty == Ity_I64) { + addInstr(env, AMD64Instr_Alu64R( Aalu_MOV, AMD64RMI_Mem(am), dst )); + return dst; + } break; } @@ -3547,14 +3551,11 @@ static void iselStmt ( ISelEnv* env, IRStmt* stmt ) addInstr(env, AMD64Instr_Store( 1, r, am )); return; } -//.. if (ty == Ity_I64) { -//.. HReg rHi, rLo; -//.. X86AMode* am4 = advance4(am); -//.. iselInt64Expr(&rHi, &rLo, env, stmt->Ist.PutI.data); -//.. addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rLo), am )); -//.. addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rHi), am4 )); -//.. return; -//.. } + if (ty == Ity_I64) { + AMD64RI* ri = iselIntExpr_RI(env, stmt->Ist.PutI.data); + addInstr(env, AMD64Instr_Alu64M( Aalu_MOV, ri, am )); + return; + } break; }