aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c16
2 files changed, 11 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e72be38..2217302 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
2011-08-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_binary_operator_ok): Use
+ satisfies_constraint_L.
+
+2011-08-20 Uros Bizjak <ubizjak@gmail.com>
Michael Matz <matz@suse.de>
* config/i386/i386.c (ix86_expand_round_sse4): Expand as
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index bdcbd26..7b7ac87 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -15787,16 +15787,12 @@ ix86_binary_operator_ok (enum rtx_code code, enum machine_mode mode,
/* Source 1 cannot be a non-matching memory. */
if (MEM_P (src1) && !rtx_equal_p (dst, src1))
- {
- /* Support "andhi/andsi/anddi" as a zero-extending move. */
- return (code == AND
- && (mode == HImode
- || mode == SImode
- || (TARGET_64BIT && mode == DImode))
- && CONST_INT_P (src2)
- && (INTVAL (src2) == 0xff
- || INTVAL (src2) == 0xffff));
- }
+ /* Support "andhi/andsi/anddi" as a zero-extending move. */
+ return (code == AND
+ && (mode == HImode
+ || mode == SImode
+ || (TARGET_64BIT && mode == DImode))
+ && satisfies_constraint_L (src2));
return true;
}