aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSofiane Naci <sofiane.naci@arm.com>2013-03-26 14:41:11 +0000
committerSofiane Naci <sofiane@gcc.gnu.org>2013-03-26 14:41:11 +0000
commit795175513e9978d3141e8729da8dbff875e2d46c (patch)
tree86c578438adb26bdcd040a47e42694a16668b68f /gcc
parenta76213b9b371f5dd641bb7b44201d3a57945544d (diff)
downloadgcc-795175513e9978d3141e8729da8dbff875e2d46c.zip
gcc-795175513e9978d3141e8729da8dbff875e2d46c.tar.gz
gcc-795175513e9978d3141e8729da8dbff875e2d46c.tar.bz2
aarch64.c (aarch64_classify_address): Support PC-relative load in SI modes and above only.
* config/aarch64/aarch64.c (aarch64_classify_address): Support PC-relative load in SI modes and above only. From-SVN: r197107
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 34721f7..51a42761 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_classify_address): Support
+ PC-relative load in SI modes and above only.
+
2013-03-26 Xinyu Qi <xyqi@marvell.com>
* config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 343586e..d51b8d0 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -2926,9 +2926,10 @@ aarch64_classify_address (struct aarch64_address_info *info,
case CONST:
case SYMBOL_REF:
case LABEL_REF:
- /* load literal: pc-relative constant pool entry. */
+ /* load literal: pc-relative constant pool entry. Only supported
+ for SI mode or larger. */
info->type = ADDRESS_SYMBOLIC;
- if (outer_code != PARALLEL)
+ if (outer_code != PARALLEL && GET_MODE_SIZE (mode) >= 4)
{
rtx sym, addend;