|
From: <sv...@va...> - 2013-08-07 09:45:18
|
sewardj 2013-08-07 10:45:08 +0100 (Wed, 07 Aug 2013)
New Revision: 2738
Log:
Add a spec rule for SUBQ/NLE.
Modified files:
trunk/priv/guest_amd64_helpers.c
Modified: trunk/priv/guest_amd64_helpers.c (+10 -0)
===================================================================
--- trunk/priv/guest_amd64_helpers.c 2013-08-03 21:57:17 +01:00 (rev 2737)
+++ trunk/priv/guest_amd64_helpers.c 2013-08-07 10:45:08 +01:00 (rev 2738)
@@ -1027,6 +1027,16 @@
binop(Iop_CmpLE64U, cc_dep2, cc_dep1));
}
+ if (isU64(cc_op, AMD64G_CC_OP_SUBQ) && isU64(cond, AMD64CondNLE)) {
+ /* long sub/cmp, then NLE (signed greater than)
+ --> test !(dst <=s src)
+ --> test (dst >s src)
+ --> test (src <s dst) */
+ return unop(Iop_1Uto64,
+ binop(Iop_CmpLT64S, cc_dep2, cc_dep1));
+
+ }
+
if (isU64(cc_op, AMD64G_CC_OP_SUBQ) && isU64(cond, AMD64CondBE)) {
/* long long sub/cmp, then BE (unsigned less than or equal)
--> test dst <=u src */
|