summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-s390/tlsbin.s
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2011-12-20 10:27:58 -0800
committerJing Yu <jingyu@google.com>2011-12-20 10:27:58 -0800
commitcf3cdbf8b3cda61a619299e7966a83df66244036 (patch)
tree201e2bcfc955f16802d3257112d29736cb3a3ce8 /binutils-2.21/ld/testsuite/ld-s390/tlsbin.s
parente4df3e0a5bb640ccfa2f30ee67fe9b3146b152d6 (diff)
downloadtoolchain_binutils-cf3cdbf8b3cda61a619299e7966a83df66244036.zip
toolchain_binutils-cf3cdbf8b3cda61a619299e7966a83df66244036.tar.gz
toolchain_binutils-cf3cdbf8b3cda61a619299e7966a83df66244036.tar.bz2
Add binutils-2.21.
Use --enable-gold=default for dual linker support. Change-Id: Id1a744c7db58a0b5e7a3be174cdfa875f2f86e49
Diffstat (limited to 'binutils-2.21/ld/testsuite/ld-s390/tlsbin.s')
-rw-r--r--binutils-2.21/ld/testsuite/ld-s390/tlsbin.s73
1 files changed, 73 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-s390/tlsbin.s b/binutils-2.21/ld/testsuite/ld-s390/tlsbin.s
new file mode 100644
index 0000000..4da50e7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-s390/tlsbin.s
@@ -0,0 +1,73 @@
+ .section ".tbss", "awT", @nobits
+ .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8
+bg1: .space 4
+bg2: .space 4
+bg3: .space 4
+bg4: .space 4
+bg5: .space 4
+bg6: .space 4
+bg7: .space 4
+bg8: .space 4
+bl1: .space 4
+bl2: .space 4
+bl3: .space 4
+bl4: .space 4
+bl5: .space 4
+bl6: .space 4
+bl7: .space 4
+bl8: .space 4
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ /* Function prolog */
+ stm %r6,%r14,24(%r15)
+ bras %r13,.LTN1
+ /* Literal pool */
+.LT1:
+.LC0:
+ .long sG6@indntpoff
+.LC1:
+ .long bg6@indntpoff
+.LC2:
+ .long bl6@indntpoff
+.LC3:
+ .long sh6@indntpoff
+.LC4:
+ .long sg3@indntpoff
+.LTN1:
+ /* Function prolog */
+ lr %r14,%r15
+ ahi %r15,-96
+ st %r14,0(%r14)
+
+ /* Extract TCB */
+ ear %r9,%a0
+
+ /* IE against global var */
+ l %r3,.LC0-.LT1(%r13)
+ l %r3,0(%r3,%r12):tls_load:sG6
+ la %r3,0(%r3,%r9)
+
+ /* IE -> LE against global var defined in exec */
+ l %r3,.LC1-.LT1(%r13)
+ l %r4,0(%r3,%r12):tls_load:bg6
+ la %r5,0(%r4,%r9)
+
+ /* IE -> LE against local var */
+ l %r3,.LC2-.LT1(%r13)
+ l %r4,0(%r3,%r12):tls_load:bl6
+ la %r5,0(%r4,%r9)
+
+ /* IE -> LE against hidden but not local var */
+ l %r3,.LC3-.LT1(%r13)
+ l %r4,0(%r3,%r12):tls_load:sh6
+ la %r5,0(%r4,%r9)
+
+ /* LE, global var defined in exec */
+ l %r4,.LC4-.LT1(%r13)
+ la %r5,0(%r4,%r9)
+
+ /* Function epilog */
+ lm %r6,%r14,120(%r15)
+ br %r14