* config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 Sep 2009 22:42:36 +0000 (22:42 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 Sep 2009 22:42:36 +0000 (22:42 +0000)
operand to be a PLUS expression.
* config/pa/pa.c (pa_secondary_reload): Likewise.

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

gcc/ChangeLog
gcc/config/pa/pa.c
gcc/config/pa/predicates.md

index 82d9d36..002d19c 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
+       operand to be a PLUS expression.
+       * config/pa/pa.c (pa_secondary_reload): Likewise.
+
 2009-09-11  Jakub Jelinek  <jakub@redhat.com>
 
        * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
index 4355d0a..65a07d9 100644 (file)
@@ -5793,9 +5793,10 @@ pa_secondary_reload (bool in_p, rtx x, enum reg_class rclass,
         break;
       case CONST:
        op = XEXP (x, 0);
-       is_symbolic = (((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
-                        && !SYMBOL_REF_TLS_MODEL (XEXP (op, 0)))
-                       || GET_CODE (XEXP (op, 0)) == LABEL_REF)
+       is_symbolic = (GET_CODE (op) == PLUS
+                      && ((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
+                           && !SYMBOL_REF_TLS_MODEL (XEXP (op, 0)))
+                          || GET_CODE (XEXP (op, 0)) == LABEL_REF)
                       && GET_CODE (XEXP (op, 1)) == CONST_INT);
         break;
       default:
index 1fc921e..0f0a424 100644 (file)
       return 1;
     case CONST:
       op = XEXP (op, 0);
-      return (((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
-                && !SYMBOL_REF_TLS_MODEL (XEXP (op, 0)))
-              || GET_CODE (XEXP (op, 0)) == LABEL_REF)
+      return (GET_CODE (op) == PLUS
+             && ((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
+                  && !SYMBOL_REF_TLS_MODEL (XEXP (op, 0)))
+                 || GET_CODE (XEXP (op, 0)) == LABEL_REF)
              && GET_CODE (XEXP (op, 1)) == CONST_INT);
     default:
       return 0;