199 lines
2.8 KiB
ArmAsm
199 lines
2.8 KiB
ArmAsm
@ we can relax local and non-weak globals for non-shared links
|
|
|
|
.arch armv7-a
|
|
.text
|
|
.arm
|
|
|
|
.p2align 2
|
|
foo:
|
|
@tlscall global, manually relaxed to IE
|
|
ldr r0, 1f
|
|
2: ldr r0, [pc, r0]
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(gottpoff) + (. - 2b - 8)
|
|
|
|
.p2align 2
|
|
@tlscall global, should relax to IE
|
|
ldr r0, 1f
|
|
2: blx gd1(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(tlsdesc) + (. - 2b)
|
|
|
|
.p2align 2
|
|
@tlscall local, manually relaxed to LE
|
|
ldr r0, 1f
|
|
nop
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tpoff)
|
|
|
|
.p2align 2
|
|
@tlscall local, should relax to LE
|
|
ldr r0, 1f
|
|
2: blx ld1(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tlsdesc) + (. - 2b)
|
|
|
|
.p2align 2
|
|
@open coded global, manually relaxed to IE
|
|
ldr r0, 1f
|
|
2:
|
|
add r0, pc, r0
|
|
ldr r1, [r0]
|
|
mov r0, r1
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(gottpoff) + (. - 2b - 8)
|
|
|
|
.p2align 2
|
|
@open coded global, should relax to IE
|
|
ldr r0, 1f
|
|
2:
|
|
.tlsdescseq gd1
|
|
add r0, pc, r0
|
|
.tlsdescseq gd1
|
|
ldr r1, [r0,#4]
|
|
.tlsdescseq gd1
|
|
blx r1
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(tlsdesc) + (. - 2b)
|
|
|
|
.p2align 2
|
|
@open coded local, manually relaxed to LE
|
|
ldr r0, 1f
|
|
2:
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tpoff)
|
|
|
|
.p2align 2
|
|
@open coded local, should relax to LE
|
|
ldr r0, 1f
|
|
2:
|
|
.tlsdescseq ld1
|
|
add r0, pc, r0
|
|
.tlsdescseq ld1
|
|
ldr r1, [r0,#4]
|
|
.tlsdescseq ld1
|
|
blx r1
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tlsdesc) + (. - 2b)
|
|
|
|
|
|
.thumb
|
|
.p2align 1
|
|
bar:
|
|
@tlscall global, manually relaxed to IE
|
|
ldr r0, 1f
|
|
2: add r0, pc, r0
|
|
ldr r0, [r0]
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(gottpoff) + (. - 2b - 4)
|
|
|
|
.p2align 1
|
|
@tlscall global, should relax to IE
|
|
ldr r0, 1f
|
|
2: blx gd1(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(tlsdesc) + (. - 2b + 1)
|
|
|
|
.p2align 1
|
|
@tlscall global, should relax to IE
|
|
ldr r0, 1f
|
|
2: blx r1(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word r1(tlsdesc) + (. - 2b + 1)
|
|
|
|
.p2align 1
|
|
@tlscall local, manually relaxed to LE
|
|
ldr r0, 1f
|
|
nop
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tpoff)
|
|
|
|
.p2align 1
|
|
@tlscall local, should relax to LE
|
|
ldr r0, 1f
|
|
2: blx ld1(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tlsdesc) + (. - 2b + 1)
|
|
|
|
.p2align 1
|
|
@tlscall local, should relax to LE
|
|
ldr r0, 1f
|
|
2: blx r0(tlscall)
|
|
nop
|
|
.p2align 2
|
|
1: .word r0(tlsdesc) + (. - 2b + 1)
|
|
|
|
.p2align 1
|
|
@open coded global, manually relaxed to IE
|
|
ldr r0, 1f
|
|
2:
|
|
add r0, pc
|
|
ldr r1, [r0]
|
|
mov r0, r1
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(gottpoff) + (. - 2b - 4)
|
|
|
|
.p2align 1
|
|
@open coded global, should relax to IE
|
|
ldr r0, 1f
|
|
2:
|
|
.tlsdescseq gd1
|
|
add r0, pc
|
|
.tlsdescseq gd1
|
|
ldr r1, [r0,#4]
|
|
.tlsdescseq gd1
|
|
blx r1
|
|
nop
|
|
.p2align 2
|
|
1: .word gd1(tlsdesc) + (. - 2b + 1)
|
|
|
|
.p2align 1
|
|
@open coded local, manually relaxed to LE
|
|
ldr r0, 1f
|
|
2:
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tpoff)
|
|
|
|
.p2align 1
|
|
@open coded local, should relax to LE
|
|
ldr r0, 1f
|
|
2:
|
|
.tlsdescseq ld1
|
|
add r0, pc
|
|
.tlsdescseq ld1
|
|
ldr r1, [r0,#4]
|
|
.tlsdescseq ld1
|
|
blx r1
|
|
nop
|
|
.p2align 2
|
|
1: .word ld1(tlsdesc) + (. - 2b + 1)
|
|
|
|
.section .tdata,"awT"
|
|
.global gd1
|
|
gd1: .space 4
|
|
ld1: .space 4
|
|
.globl r1
|
|
r1: .space 4
|
|
r0: .space 4
|