aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2015-06-26 13:41:24 +0000
committerJiong Wang <jiwang@gcc.gnu.org>2015-06-26 13:41:24 +0000
commit6642bdb4b14d655cedea29d01fbb0d854a6c14fa (patch)
tree956019505d1198ed8c6bd37ced57348178665586 /gcc
parent569aafaaf7a02c5cd6d7b69fafac581c61464091 (diff)
downloadgcc-6642bdb4b14d655cedea29d01fbb0d854a6c14fa.zip
gcc-6642bdb4b14d655cedea29d01fbb0d854a6c14fa.tar.gz
gcc-6642bdb4b14d655cedea29d01fbb0d854a6c14fa.tar.bz2
[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G
2015-06-26 Jiong Wang <jiong.wang@arm.com> * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G. * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto. (aarch64_expand_mov_immediate): Ditto. (aarch64_print_operand): Ditto. (aarch64_classify_symbol): Ditto. From-SVN: r225013
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/aarch64/aarch64-protos.h7
-rw-r--r--gcc/config/aarch64/aarch64.c10
3 files changed, 18 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 798126f..c508303 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2015-06-26 Jiong Wang <jiong.wang@arm.com>
+
+ * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
+ SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
+ * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
+ (aarch64_expand_mov_immediate): Ditto.
+ (aarch64_print_operand): Ditto.
+ (aarch64_classify_symbol): Ditto.
+
2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
* config/nvptx/nvptx.md (call_operation): Remove unused variables.
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index ac92c59..249a701 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -49,12 +49,13 @@ enum aarch64_symbol_context
This corresponds to the small code model of the compiler.
- SYMBOL_SMALL_GOT: Similar to the one above but this
+ SYMBOL_SMALL_GOT_4G: Similar to the one above but this
gives us the GOT entry of the symbol being referred to :
Thus calculating the GOT entry for foo is done using the
following sequence of instructions. The ADRP instruction
gets us to the page containing the GOT entry of the symbol
- and the got_lo12 gets us the actual offset in it.
+ and the got_lo12 gets us the actual offset in it, together
+ the base and offset, we can address 4G size GOT table.
adrp x0, :got:foo
ldr x0, [x0, :gotoff_lo12:foo]
@@ -94,7 +95,7 @@ enum aarch64_symbol_context
enum aarch64_symbol_type
{
SYMBOL_SMALL_ABSOLUTE,
- SYMBOL_SMALL_GOT,
+ SYMBOL_SMALL_GOT_4G,
SYMBOL_SMALL_TLSGD,
SYMBOL_SMALL_TLSDESC,
SYMBOL_SMALL_GOTTPREL,
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index d8e03b7..67e21c8 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -826,7 +826,7 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,
emit_insn (gen_rtx_SET (dest, imm));
return;
- case SYMBOL_SMALL_GOT:
+ case SYMBOL_SMALL_GOT_4G:
{
/* In ILP32, the mode of dest can be either SImode or DImode,
while the got entry is always of SImode size. The mode of
@@ -1478,7 +1478,7 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)
case SYMBOL_SMALL_TLSGD:
case SYMBOL_SMALL_TLSDESC:
case SYMBOL_SMALL_GOTTPREL:
- case SYMBOL_SMALL_GOT:
+ case SYMBOL_SMALL_GOT_4G:
case SYMBOL_TINY_GOT:
if (offset != const0_rtx)
{
@@ -4359,7 +4359,7 @@ aarch64_print_operand (FILE *f, rtx x, char code)
switch (aarch64_classify_symbolic_expression (x, SYMBOL_CONTEXT_ADR))
{
- case SYMBOL_SMALL_GOT:
+ case SYMBOL_SMALL_GOT_4G:
asm_fprintf (asm_out_file, ":got:");
break;
@@ -4392,7 +4392,7 @@ aarch64_print_operand (FILE *f, rtx x, char code)
case 'L':
switch (aarch64_classify_symbolic_expression (x, SYMBOL_CONTEXT_ADR))
{
- case SYMBOL_SMALL_GOT:
+ case SYMBOL_SMALL_GOT_4G:
asm_fprintf (asm_out_file, ":lo12:");
break;
@@ -7403,7 +7403,7 @@ aarch64_classify_symbol (rtx x, rtx offset,
case AARCH64_CMODEL_SMALL_PIC:
if (!aarch64_symbol_binds_local_p (x))
- return SYMBOL_SMALL_GOT;
+ return SYMBOL_SMALL_GOT_4G;
return SYMBOL_SMALL_ABSOLUTE;
default: