mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
ac916443ad
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 llvm-svn: 301980
98 lines
3.8 KiB
ArmAsm
98 lines
3.8 KiB
ArmAsm
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -target-abi=ilp32 \
|
|
// RUN: < %s 2> %t2 -filetype=obj >/dev/null
|
|
// RUN: FileCheck --check-prefix=CHECK-ERROR %s < %t2
|
|
|
|
.xword sym-.
|
|
// CHECK-ERROR: error: ILP32 8 byte PC relative data relocation not supported (LP64 eqv: PREL64)
|
|
// CHECK-ERROR: ^
|
|
|
|
.xword sym+16
|
|
// CHECK-ERROR: error: ILP32 8 byte absolute data relocation not supported (LP64 eqv: ABS64)
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x7, #:abs_g3:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_UABS_G3)
|
|
// CHECK-ERROR: movz x7, #:abs_g3:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x3, #:abs_g2:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_UABS_G2)
|
|
// CHECK-ERROR: movz x3, #:abs_g2:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x19, #:abs_g2_s:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_SABS_G2)
|
|
// CHECK-ERROR: movz x19, #:abs_g2_s:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movk x5, #:abs_g2_nc:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_UABS_G2_NC)
|
|
// CHECK-ERROR: movk x5, #:abs_g2_nc:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x19, #:abs_g1_s:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_SABS_G1)
|
|
// CHECK-ERROR: movz x19, #:abs_g1_s:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movk x5, #:abs_g1_nc:some_label
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: MOVW_UABS_G1_NC)
|
|
// CHECK-ERROR: movk x5, #:abs_g1_nc:some_label
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x3, #:dtprel_g2:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSLD_MOVW_DTPREL_G2)
|
|
// CHECK-ERROR: movz x3, #:dtprel_g2:var
|
|
// CHECK-ERROR: ^
|
|
|
|
movk x9, #:dtprel_g1_nc:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSLD_MOVW_DTPREL_G1_NC)
|
|
// CHECK-ERROR: movk x9, #:dtprel_g1_nc:var
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x3, #:tprel_g2:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSLE_MOVW_TPREL_G2)
|
|
// CHECK-ERROR: movz x3, #:tprel_g2:var
|
|
// CHECK-ERROR: ^
|
|
|
|
movk x9, #:tprel_g1_nc:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSLE_MOVW_TPREL_G1_NC)
|
|
// CHECK-ERROR: movk x9, #:tprel_g1_nc:var
|
|
// CHECK-ERROR: ^
|
|
|
|
movz x15, #:gottprel_g1:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSIE_MOVW_GOTTPREL_G1)
|
|
// CHECK-ERROR: movz x15, #:gottprel_g1:var
|
|
// CHECK-ERROR: ^
|
|
|
|
movk x13, #:gottprel_g0_nc:var
|
|
// CHECK-ERROR: error: ILP32 absolute MOV relocation not supported (LP64 eqv: TLSIE_MOVW_GOTTPREL_G0_NC)
|
|
// CHECK-ERROR: movk x13, #:gottprel_g0_nc:var
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x10, [x0, #:gottprel_lo12:var]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: TLSIE_LD64_GOTTPREL_LO12_NC)
|
|
// CHECK-ERROR: ldr x10, [x0, #:gottprel_lo12:var]
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x24, [x23, #:got_lo12:sym]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: LD64_GOT_LO12_NC)
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x24, [x23, :gottprel_lo12:sym]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: TLSIE_LD64_GOTTPREL_LO12_NC)
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x10, [x0, #:gottprel_lo12:var]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: TLSIE_LD64_GOTTPREL_LO12_NC)
|
|
// CHECK-ERROR: ldr x10, [x0, #:gottprel_lo12:var]
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x24, [x23, #:got_lo12:sym]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: LD64_GOT_LO12_NC)
|
|
// CHECK-ERROR: ^
|
|
|
|
ldr x24, [x23, :gottprel_lo12:sym]
|
|
// CHECK-ERROR: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: TLSIE_LD64_GOTTPREL_LO12_NC)
|
|
// CHECK-ERROR: ^
|