|
From: <sv...@va...> - 2005-04-23 23:41:52
|
Author: sewardj
Date: 2005-04-24 00:41:46 +0100 (Sun, 24 Apr 2005)
New Revision: 1138
Modified:
trunk/priv/host-amd64/isel.c
Log:
Handle some artefacts resulting from memchecking of x87 floating-point
code (I64-typed PutI/GetI).
Modified: trunk/priv/host-amd64/isel.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-amd64/isel.c 2005-04-23 01:15:47 UTC (rev 1137)
+++ trunk/priv/host-amd64/isel.c 2005-04-23 23:41:46 UTC (rev 1138)
@@ -1403,6 +1403,10 @@
addInstr(env, AMD64Instr_LoadEX( 1, False, am, dst ));
return dst;
}
+ if (ty =3D=3D Ity_I64) {
+ addInstr(env, AMD64Instr_Alu64R( Aalu_MOV, AMD64RMI_Mem(am), ds=
t ));
+ return dst;
+ }
break;
}
=20
@@ -3547,14 +3551,11 @@
addInstr(env, AMD64Instr_Store( 1, r, am ));
return;
}
-//.. if (ty =3D=3D Ity_I64) {
-//.. HReg rHi, rLo;
-//.. X86AMode* am4 =3D advance4(am);
-//.. iselInt64Expr(&rHi, &rLo, env, stmt->Ist.PutI.data);
-//.. addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rLo), a=
m ));
-//.. addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rHi), a=
m4 ));
-//.. return;
-//.. }
+ if (ty =3D=3D Ity_I64) {
+ AMD64RI* ri =3D iselIntExpr_RI(env, stmt->Ist.PutI.data);
+ addInstr(env, AMD64Instr_Alu64M( Aalu_MOV, ri, am ));
+ return;
+ }
break;
}
=20
|