38 lines
1.1 KiB
ArmAsm
38 lines
1.1 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-cloudabi %s -o %t1.o
|
|
# RUN: ld.lld -pie %t1.o -o %t
|
|
# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOCS %s
|
|
# RUN: llvm-objdump -d --no-show-raw-insn --no-print-imm-hex --no-leading-addr %t1.o | FileCheck --check-prefix=DIS %s
|
|
|
|
# Bug 27174: R_X86_64_TPOFF32 and R_X86_64_GOTTPOFF relocations should
|
|
# be eliminated when building a PIE executable, as the static TLS layout
|
|
# is fixed.
|
|
#
|
|
# RELOCS: Relocations [
|
|
# RELOCS-NEXT: ]
|
|
#
|
|
# DIS: <_start>:
|
|
# DIS-NEXT: movq %fs:0, %rax
|
|
# DIS-NEXT: movl $3, (%rax)
|
|
# DIS-NEXT: movq %fs:0, %rdx
|
|
# DIS-NEXT: movq (%rip), %rcx
|
|
# DIS-NEXT: movl $3, (%rdx,%rcx)
|
|
# DIS-NEXT: movabsq 0, %rax
|
|
|
|
.globl _start
|
|
_start:
|
|
movq %fs:0, %rax
|
|
movl $3, i@TPOFF(%rax)
|
|
|
|
movq %fs:0, %rdx
|
|
movq i@GOTTPOFF(%rip), %rcx
|
|
movl $3, (%rdx,%rcx)
|
|
|
|
# This additionally tests support for R_X86_64_TPOFF64 relocations.
|
|
movabs i@TPOFF, %rax
|
|
|
|
.section .tbss.i,"awT",@nobits
|
|
.globl i
|
|
i:
|
|
.long 0
|
|
.size i, 4
|