aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2009-09-11 22:42:36 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2009-09-11 22:42:36 +0000
commit85ed9a3342005299627e853e450bd9a53d06c4fc (patch)
tree4d4ec4ec05eb03fee08d2862506be4e8852c5358
parent9258b4c14f120aa74e3589461f3086caa5ca6e36 (diff)
downloadgcc-85ed9a3342005299627e853e450bd9a53d06c4fc.zip
gcc-85ed9a3342005299627e853e450bd9a53d06c4fc.tar.gz
gcc-85ed9a3342005299627e853e450bd9a53d06c4fc.tar.bz2
predicates.md (symbolic_operand): Require a CONST symbolic operand to be a PLUS expression.
* config/pa/predicates.md (symbolic_operand): Require a CONST symbolic operand to be a PLUS expression. * config/pa/pa.c (pa_secondary_reload): Likewise. From-SVN: r151646
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.c7
-rw-r--r--gcc/config/pa/predicates.md7
3 files changed, 14 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82d9d36..002d19c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 4355d0a..65a07d9 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -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:
diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md
index 1fc921e..0f0a424 100644
--- a/gcc/config/pa/predicates.md
+++ b/gcc/config/pa/predicates.md
@@ -73,9 +73,10 @@
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;