OSDN Git Service

PR target/26347
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Jun 2006 18:31:56 +0000 (18:31 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Jun 2006 18:31:56 +0000 (18:31 +0000)
        PR target/27082
        * config/alpha/predicates.md (small_symbolic_operand): Deny weak
        symbols.
        (global_symbolic_operand): Allow weak symbols, even if local_p.

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

gcc/ChangeLog
gcc/config/alpha/predicates.md

index f612b09..8dcf578 100644 (file)
@@ -1,3 +1,11 @@
+2006-06-21  Richard Henderson  <rth@redhat.com>
+
+       PR target/26347
+       PR target/27082
+       * config/alpha/predicates.md (small_symbolic_operand): Deny weak
+       symbols.
+       (global_symbolic_operand): Allow weak symbols, even if local_p.
+
 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
index a035fff..8d37560 100644 (file)
 
   return (SYMBOL_REF_LOCAL_P (op)
          && SYMBOL_REF_SMALL_P (op)
-         && SYMBOL_REF_TLS_MODEL (op) == 0);
+         && !SYMBOL_REF_WEAK (op)
+         && !SYMBOL_REF_TLS_MODEL (op));
 })
 
 ;; Return true if OP is a SYMBOL_REF or CONST referencing a variable
   if (GET_CODE (op) != SYMBOL_REF)
     return 0;
 
-  return !SYMBOL_REF_LOCAL_P (op) && !SYMBOL_REF_TLS_MODEL (op);
+  return ((!SYMBOL_REF_LOCAL_P (op) || SYMBOL_REF_WEAK (op))
+         && !SYMBOL_REF_TLS_MODEL (op));
 })
 
 ;; Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref,