aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarcus Shawcroft <marcus.shawcroft@arm.com>2013-05-31 15:40:09 +0000
committerMarcus Shawcroft <mshawcroft@gcc.gnu.org>2013-05-31 15:40:09 +0000
commit38e6c9a62bcc210685bf721fc45478c5a73acd45 (patch)
tree1b0ad790528b925945558ac483547bd2259ab507 /gcc
parent6a8b3087b223cb902c61002fc26e2e711d27f8f6 (diff)
downloadgcc-38e6c9a62bcc210685bf721fc45478c5a73acd45.zip
gcc-38e6c9a62bcc210685bf721fc45478c5a73acd45.tar.gz
gcc-38e6c9a62bcc210685bf721fc45478c5a73acd45.tar.bz2
[AArch64] -mcmodel=tiny -fPIC use tiny absolute for non binds local.
From-SVN: r199544
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2e6d853f..d44fcdc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_classify_symbol):
+ Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
+
2013-05-31 Tobias Burnus <burnus@net-b.de>
PR middle-end/57073
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 9c77888..a6859cc 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -5068,6 +5068,10 @@ aarch64_classify_symbol (rtx x,
return SYMBOL_SMALL_ABSOLUTE;
case AARCH64_CMODEL_TINY_PIC:
+ if (!aarch64_symbol_binds_local_p (x))
+ return SYMBOL_SMALL_GOT;
+ return SYMBOL_TINY_ABSOLUTE;
+
case AARCH64_CMODEL_SMALL_PIC:
if (!aarch64_symbol_binds_local_p (x))
return SYMBOL_SMALL_GOT;