diff options
author | Jing Yu <jingyu@google.com> | 2011-12-20 10:27:58 -0800 |
---|---|---|
committer | Jing Yu <jingyu@google.com> | 2011-12-20 10:27:58 -0800 |
commit | cf3cdbf8b3cda61a619299e7966a83df66244036 (patch) | |
tree | 201e2bcfc955f16802d3257112d29736cb3a3ce8 /binutils-2.21/ld/testsuite/ld-alpha/tlsbinpic.s | |
parent | e4df3e0a5bb640ccfa2f30ee67fe9b3146b152d6 (diff) | |
download | toolchain_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.s | 74 |
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 |