aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Bambrough <scottb@netwinder.org>2000-02-09 20:51:40 +0000
committerNick Clifton <nickc@cygnus.com>2000-02-09 20:51:40 +0000
commitbd7bb35377edb5cb83b90ab72e9a6f8466afce0b (patch)
tree99de9e2cad3133de1fc700f9fe2392611b886608
parente4d2bcb3521d97c64bd2a377643d44f09c5e3aae (diff)
In PIC mode, make sure that a constant source address is legitimate.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/merged-arm-thumb-backend-branch@31872 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.md5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a3ac8b1fe2..dbb44d57532 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-09 Scott Bambrough <scottb@netwinder.org>
+
+ * config/arm/arm.md (movsi): In PIC mode, make sure that a
+ constant source address is legitimate.
+
2000-02-09 Philip Blundell <pb@futuretv.com>
* config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 62e1f09d276..afeb238c270 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -3793,7 +3793,10 @@
}
}
- if (CONSTANT_P (operands[1]) && flag_pic)
+ if (flag_pic
+ && (CONSTANT_P (operands[1])
+ || symbol_mentioned_p (operands[1])
+ || label_mentioned_p (operands[1])))
operands[1] = legitimize_pic_address
(operands[1], SImode, ((reload_in_progress || reload_completed)
? operands[0] : 0));