|
From: <sv...@va...> - 2005-08-01 13:35:51
|
Author: sewardj
Date: 2005-08-01 14:35:18 +0100 (Mon, 01 Aug 2005)
New Revision: 1308
Log:
Specialise NZ after DECW.
Modified:
trunk/priv/guest-amd64/ghelpers.c
Modified: trunk/priv/guest-amd64/ghelpers.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-amd64/ghelpers.c 2005-08-01 13:03:32 UTC (rev 1307)
+++ trunk/priv/guest-amd64/ghelpers.c 2005-08-01 13:35:18 UTC (rev 1308)
@@ -1060,6 +1060,16 @@
mkU64(0)));
}
=20
+ /*---------------- DECW ----------------*/
+
+ if (isU64(cc_op, AMD64G_CC_OP_DECW) && isU64(cond, AMD64CondNZ)) {
+ /* 16-bit dec, then NZ --> test dst !=3D 0 */
+ return unop(Iop_1Uto64,
+ binop(Iop_CmpNE64,=20
+ binop(Iop_Shl64,cc_dep1,mkU8(48)),=20
+ mkU64(0)));
+ }
+
//.. /*---------------- DECL ----------------*/
//..=20
//.. if (isU32(cc_op, AMD64G_CC_OP_DECL) && isU32(cond, X86CondZ))=
{
|