aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarcus Shawcroft <marcus.shawcroft@arm.com>2014-02-06 10:17:18 +0000
committerMarcus Shawcroft <mshawcroft@gcc.gnu.org>2014-02-06 10:17:18 +0000
commit4a985a3778e38b8a9fc169f238069303a047c236 (patch)
treea64e00f3ae804ac12d8c364f39731a1ce0e62046 /gcc
parent8c7ff9a02dd04ebb5907bf972d532bff88045202 (diff)
downloadgcc-4a985a3778e38b8a9fc169f238069303a047c236.zip
gcc-4a985a3778e38b8a9fc169f238069303a047c236.tar.gz
gcc-4a985a3778e38b8a9fc169f238069303a047c236.tar.bz2
[AArch64] Fix SYMBOL_REF symbol classification.
The symbol classification logic in correctly classifies all SYMBOL_REF's as SYMBOL_FORCE_TO_MEM, the intention of the code is to catch only the large memory model case. From-SVN: r207544
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a947212..078192d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
+ for SYMBOL_REF in large memory model.
+
2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index d3c5cbc..16c51a8 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -5400,9 +5400,8 @@ aarch64_classify_symbol (rtx x,
if (GET_CODE (x) == SYMBOL_REF)
{
- if (aarch64_cmodel == AARCH64_CMODEL_LARGE
- || CONSTANT_POOL_ADDRESS_P (x))
- return SYMBOL_FORCE_TO_MEM;
+ if (aarch64_cmodel == AARCH64_CMODEL_LARGE)
+ return SYMBOL_FORCE_TO_MEM;
if (aarch64_tls_symbol_p (x))
return aarch64_classify_tls_symbol (x);