summaryrefslogtreecommitdiffstats
path: root/binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-26 11:03:35 -0700
committerBen Cheng <bccheng@google.com>2014-03-26 11:03:35 -0700
commit09797ba54abf3683ea66eedddf6afbe7653f9cb9 (patch)
tree8030b2ed79c7463c89d6da294782e9d503c84f50 /binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s
parent5a2caf34e4995860baf405552163df288000b7bf (diff)
downloadtoolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.zip
toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.gz
toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.bz2
Initial checkin of binutils 2.24.
Change-Id: I0dfcbae6608dded6c3586bf5f4ac27e9612e70a2
Diffstat (limited to 'binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s')
-rw-r--r--binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s198
1 files changed, 198 insertions, 0 deletions
diff --git a/binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s b/binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s
new file mode 100644
index 0000000..a8c028b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-arm/tls-descrelax-v7.s
@@ -0,0 +1,198 @@
+@ 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