]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle some artefacts resulting from memchecking of x87 floating-point
authorJulian Seward <jseward@acm.org>
Sat, 23 Apr 2005 23:41:46 +0000 (23:41 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 23 Apr 2005 23:41:46 +0000 (23:41 +0000)
code (I64-typed PutI/GetI).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1138

VEX/priv/host-amd64/isel.c

index d734ec66af35c9d0767634861c358f612e921dcf..4019c14c206bbf4d38bf0cc2478f277235b30acb 100644 (file)
@@ -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;
    }