.section .tbss,"awT",@nobits
.align 2
.type y, %object
.size y, 4
y:
.zero 4
.text
.global foo
.type foo, @function
foo:
# Access the local symbol with an IE access.
mov x0, 0
mrs x1, tpidr_el0
adrp x0, :gottprel:y
ldr x0, [x0, #:gottprel_lo12:y]
ldr w0, [x1, x0]
# Also access the same symbol with a General Dynamic access.
# The linker should be able to recognise that if we're already
# accessing this symbol with an Initial Exec access then this General
# Dynamic access could be relaxed to an Initial Exec one too.
mrs x1, tpidr_el0
mov x29, sp
adrp x0, :tlsdesc:y
ldr x2, [x0, #:tlsdesc_lo12:y]
add x0, x0, :tlsdesc_lo12:y
.tlsdesccall y
blr x2
ldr w0, [x1, x0]
ret