OSDN Git Service

Remove "_NC" suffix and semantics from TLSDESC_LD{64,32}_LO12 and
authorJoel Jones <joelkevinjones@gmail.com>
Tue, 2 May 2017 17:14:31 +0000 (17:14 +0000)
committerJoel Jones <joelkevinjones@gmail.com>
Tue, 2 May 2017 17:14:31 +0000 (17:14 +0000)
commit3322bb7af588eb82222764907fe92e8d7bd45512
treeae657d9b0344547c5595c2c5c7aa7783d387de11
parent7bf7fa6794820c30f7c7dffce0626ee19c728abb
Remove "_NC" suffix and semantics from TLSDESC_LD{64,32}_LO12 and
  TLSDESC_ADD_LO12 relocations
Rearrange ordering in AArch64.def to follow relocation encoding
Fix name:
  R_AARCH64_P32_LD64_GOT_LO12_NC => R_AARCH64_P32_LD32_GOT_LO12_NC
Add support for several "TLS", "TLSGD", and "TLSLD" relocations for
  ILP32
Fix return values from isNonILP32reloc
Add implementations for
  R_AARCH64_ADR_PREL_PG_HI21_NC, R_AARCH64_P32_LD32_GOT_LO12_NC,
  R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC,
  R_AARCH64_P32_TLSDESC_LD32_LO12, R_AARCH64_LD64_GOT_LO12_NC,
  *TLSLD_LDST128_DTPREL_LO12, *TLSLD_LDST128_DTPREL_LO12_NC,
  *TLSLE_LDST128_TPREL_LO12, *TLSLE_LDST128_TPREL_LO12_NC
Modify error messages to give name of equivalent relocation in the
  ABI not being used, along with better checking for non-existent
  requested relocations.
Added assembler support for "pg_hi21_nc"
Relocation definitions added without implementations:
  R_AARCH64_P32_TLSDESC_ADR_PREL21, R_AARCH64_P32_TLSGD_ADR_PREL21,
  R_AARCH64_P32_TLSGD_ADD_LO12_NC, R_AARCH64_P32_TLSLD_ADR_PREL21,
  R_AARCH64_P32_TLSLD_ADR_PAGE21, R_AARCH64_P32_TLSLD_ADD_LO12_NC,
  R_AARCH64_P32_TLSLD_LD_PREL19, R_AARCH64_P32_TLSDESC_LD_PREL19,
  R_AARCH64_P32_TLSGD_ADR_PAGE21, R_AARCH64_P32_TLS_DTPREL,
  R_AARCH64_P32_TLS_DTPMOD, R_AARCH64_P32_TLS_TPREL,
  R_AARCH64_P32_TLSDESC
Fix encoding:
  R_AARCH64_P32_TLSDESC_ADR_PAGE21

Reviewers: Peter Smith

Patch by: Joel Jones (jjones@cavium.com)

Differential Revision: https://reviews.llvm.org/D32072

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301939 91177308-0d34-0410-b5e6-96231b3b80d8
23 files changed:
include/llvm/Support/ELFRelocs/AArch64.def
lib/Target/AArch64/AArch64AsmPrinter.cpp
lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
test/CodeGen/AArch64/arm64-tls-dynamics.ll
test/MC/AArch64/adrp-relocation.s
test/MC/AArch64/arm32-elf-relocs.s
test/MC/AArch64/arm32-large-relocs.s [new file with mode: 0644]
test/MC/AArch64/arm32-tls-relocs.s [new file with mode: 0644]
test/MC/AArch64/arm64-elf-reloc-condbr.s
test/MC/AArch64/arm64-elf-relocs.s
test/MC/AArch64/arm64-tls-relocs.s
test/MC/AArch64/elf-reloc-ldrlit.s
test/MC/AArch64/elf-reloc-pcreladdressing-ilp32.s [new file with mode: 0644]
test/MC/AArch64/elf-reloc-tstb.s
test/MC/AArch64/elf-reloc-uncondbrimm.s
test/MC/AArch64/error-location.s
test/MC/AArch64/ilp32-diagnostics.s
test/MC/AArch64/inline-asm-modifiers.s
test/MC/AArch64/lp64-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/tls-relocs.s
test/tools/llvm-readobj/reloc-types.test