[AArch64][2/2] Implement -fpic for -mcmodel=small

Programming / Compilers / GCC - jiwang [138bc75d-0d04-0410-961f-82ee72b054a4] - 26 June 2015 09:00 UTC

2015-06-26 Jiong Wang

gcc/
- config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type SYMBOL_SMALL_GOT_28K.
- config/aarch64/aarch64.md: (ldr_got_small_): Support new GOT relocation modifiers. (unspec): New enum "UNSPEC_GOTMALLPIC28K. (ldr_got_small_28k_): New. (ldr_got_small_28k_sidi): New.
- config/aarch64/iterators.md (got_modifier): New mode iterator.
- config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
- config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support SYMBOL_SMALL_GOT_28K. (aarch64_rtx_costs): Add costs for new instruction sequences. (initialize_aarch64_code_model): Initialize new model. (aarch64_classify_symbol): Recognize new model and new symbol classification. (aarch64_asm_preferred_eh_data_format): Support new model. (aarch64_load_symref_appropriately): Generate new instruction sequences for -fpic. (TARGET_USE_PSEUDO_PIC_REG): New definition. (aarch64_use_pseudo_pic_reg): New function.

gcc/testsuite/
- gcc.target/aarch64/pic-small.c: New testcase.

65f988f [AArch64][2/2] Implement -fpic for -mcmodel=small
gcc/ChangeLog | 22 +++++++
gcc/config/aarch64/aarch64-opts.h | 3 +
gcc/config/aarch64/aarch64-protos.h | 8 +++
gcc/config/aarch64/aarch64.c | 86 +++++++++++++++++++++++++-
gcc/config/aarch64/aarch64.md | 24 +++++++
gcc/config/aarch64/iterators.md | 4 ++
gcc/testsuite/ChangeLog | 4 ++
gcc/testsuite/gcc.target/aarch64/pic-small.c | 26 ++++++++
8 files changed, 174 insertions(+), 3 deletions(-)

Upstream: gcc.gnu.org


  • Share