summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.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-alpha/tlsbinpic.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-alpha/tlsbinpic.s')
-rw-r--r--binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.s74
1 files changed, 74 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.s b/binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.s
new file mode 100644
index 0000000..7a94eb1
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.s
@@ -0,0 +1,74 @@
+ .section ".tdata", "awT", @progbits
+ .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
+ .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
+ .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
+sg1: .long 17
+sg2: .long 18
+sg3: .long 19
+sg4: .long 20
+sg5: .long 21
+sg6: .long 22
+sg7: .long 23
+sg8: .long 24
+sl1: .long 65
+sl2: .long 66
+sl3: .long 67
+sl4: .long 68
+sl5: .long 69
+sl6: .long 70
+sl7: .long 71
+sl8: .long 72
+sh1: .long 257
+sh2: .long 258
+sh3: .long 259
+sh4: .long 260
+sh5: .long 261
+sh6: .long 262
+sh7: .long 263
+sh8: .long 264
+
+ .text
+ .globl fn2
+ .ent fn2
+fn2:
+ .frame $sp, 16, $26, 0
+ ldgp $gp, 0($27)
+ subq $sp, 16, $sp
+ stq $26, 0($sp)
+ .prologue 1
+
+ /* GD */
+ lda $16, sG1($gp) !tlsgd!1
+ ldq $27, __tls_get_addr($gp) !literal!1
+ jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1
+ ldgp $gp, 0($26)
+
+ /* GD against local symbol */
+ lda $16, sl2($gp) !tlsgd!2
+ ldq $27, __tls_get_addr($gp) !literal!2
+ jsr $26, ($27), __tls_get_addr !lituse_tlsgd!2
+ ldgp $gp, 0($26)
+
+ /* LD */
+ lda $16, sl1($gp) !tlsldm!3
+ ldq $27, __tls_get_addr($gp) !literal!3
+ jsr $26, ($27), __tls_get_addr !lituse_tlsldm!3
+ ldgp $gp, 0($26)
+ lda $1, sl1+1($0) !dtprel
+
+ /* LD with 4 variables */
+ lda $16, sh1($gp) !tlsldm!4
+ ldq $27, __tls_get_addr($gp) !literal!4
+ jsr $26, ($27), __tls_get_addr !lituse_tlsldm!4
+ ldgp $gp, 0($26)
+ lda $1, sh1($0) !dtprel
+ lda $1, sh2+2($0) !dtprel
+ ldah $1, sh3+3($0) !dtprelhi
+ lda $1, sh3+3($1) !dtprello
+ ldq $1, sh4+10($gp) !gotdtprel
+ addq $1, $0, $1
+
+ ldq $26, 0($sp)
+ addq $sp, 16, $sp
+ ret
+ .end fn2