predicates.md (pic_32bit_opreand): Do not define as special predicate.
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 28 Jul 2011 16:40:21 +0000 (18:40 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 28 Jul 2011 16:40:21 +0000 (18:40 +0200)
* config/i386/predicates.md (pic_32bit_opreand): Do not define as
special predicate.  Remove explicit mode checks.

From-SVN: r176879

gcc/ChangeLog
gcc/config/i386/predicates.md

index 630a8d05da29e4858fc4a0203eb8bc000b579965..7fdc1e5be8beb73a64adc5e42fac1d87c83e3827 100644 (file)
@@ -1,8 +1,12 @@
+2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/predicates.md (pic_32bit_opreand): Do not define as
+       special predicate.  Remove explicit mode checks.
+
 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
 
-       * dwarf2out.c (resolve_addr): For -gdwarf-2 don't
-       optimize DW_AT_data_member_location containing just
-       DW_OP_plus_uconst.
+       * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
+       DW_AT_data_member_location containing just DW_OP_plus_uconst.
 
        PR debug/49871
        * dwarf2out.c (size_of_die, value_format, output_die): Use
@@ -38,7 +42,7 @@
 
        * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
        before the core constraints. Adjust attributes.
-       (*thumb2_movdf_vfp"): Likewise.
+       ("*thumb2_movdf_vfp"): Likewise.
 
 2011-07-28  Kai Tietz  <ktietz@redhat.com>
 
 
 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
 
-       * config/i386/predicates.md (x86_64_movabs_operand): Reject
-       pic32_bit_operand RTXes.
+       * config/i386/predicates.md (x86_64_movabs_operand): Return false
+       for pic_32bit_operand RTXes.
        * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
        in DImode.
 
index 53988c2fb34b2cd6d3cf8f1508b16d97fbc9a145..f7a08ffa20597d38709ed24c03ac4788f121e72d 100644 (file)
 
 ;; Return true when operand is PIC expression that can be computed by lea
 ;; operation.
-(define_special_predicate "pic_32bit_operand"
+(define_predicate "pic_32bit_operand"
   (match_code "const,symbol_ref,label_ref")
 {
-  if (GET_MODE (op) != SImode
-      && GET_MODE (op) != DImode)
-    return false;
-
   if (!flag_pic)
     return false;
+
   /* Rule out relocations that translate into 64bit constants.  */
   if (TARGET_64BIT && GET_CODE (op) == CONST)
     {
              || XINT (op, 1) == UNSPEC_GOT))
        return false;
     }
+
   return symbolic_operand (op, mode);
 })