File: aarch64-tls-pie.s

package info (click to toggle)
llvm-toolchain-6.0 1%3A6.0.1-10
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 598,080 kB
  • sloc: cpp: 3,046,253; ansic: 595,057; asm: 271,965; python: 128,926; objc: 106,554; sh: 21,906; lisp: 10,191; pascal: 6,094; ml: 5,544; perl: 5,265; makefile: 2,227; cs: 2,027; xml: 686; php: 212; csh: 117
file content (28 lines) | stat: -rw-r--r-- 672 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-cloudabi %s -o %t1.o
# RUN: ld.lld -pie %t1.o -o %t
# RUN: llvm-readobj -r %t | FileCheck %s

# Similar to bug 27174: R_AARCH64_TLSLE_*TPREL* relocations should be
# eliminated when building a PIE executable, as the static TLS layout is
# fixed.
#
# CHECK:      Relocations [
# CHECK-NEXT: ]

	.globl	_start
_start:
	# Accessing the variable directly.
	add	x11, x8, :tprel_hi12:i
	add	x11, x11, :tprel_lo12_nc:i

	# Accessing the variable through the GOT.
	adrp	x10, :gottprel:i
	mrs	x8, TPIDR_EL0
	ldr	x10, [x10, :gottprel_lo12:i]

	.section	.tbss.i,"awT",@nobits
	.globl	i
i:
	.word	0
	.size	i, 4