OSDN Git Service

* config/i386/i386.c (ix86_binary_operator_ok): Use
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Aug 2011 11:05:43 +0000 (11:05 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Aug 2011 11:05:43 +0000 (11:05 +0000)
satisfies_constraint_L.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177928 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index e72be38..2217302 100644 (file)
@@ -1,4 +1,9 @@
 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
 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
            Michael Matz  <matz@suse.de>
 
        * config/i386/i386.c (ix86_expand_round_sse4): Expand as
index bdcbd26..7b7ac87 100644 (file)
@@ -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))
 
   /* 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;
 }
 
   return true;
 }