From a2e49bb27eba6fe675e6a6ceac8c2041218792e5 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 28 Jul 2011 18:40:21 +0200 Subject: [PATCH] predicates.md (pic_32bit_opreand): Do not define as special predicate. * config/i386/predicates.md (pic_32bit_opreand): Do not define as special predicate. Remove explicit mode checks. From-SVN: r176879 --- gcc/ChangeLog | 16 ++++++++++------ gcc/config/i386/predicates.md | 8 +++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 630a8d05da2..7fdc1e5be8b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,12 @@ +2011-07-28 Uros Bizjak + + * config/i386/predicates.md (pic_32bit_opreand): Do not define as + special predicate. Remove explicit mode checks. + 2011-07-28 Jakub Jelinek - * 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 @@ -178,8 +182,8 @@ 2011-07-27 Uros Bizjak - * 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. diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 53988c2fb34..f7a08ffa205 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -366,15 +366,12 @@ ;; 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) { @@ -386,6 +383,7 @@ || XINT (op, 1) == UNSPEC_GOT)) return false; } + return symbolic_operand (op, mode); }) -- 2.30.2