diff options
Diffstat (limited to 'ld/testsuite/ld-powerpc/tlstoc.s')
-rw-r--r-- | ld/testsuite/ld-powerpc/tlstoc.s | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/tlstoc.s b/ld/testsuite/ld-powerpc/tlstoc.s new file mode 100644 index 0000000..f5dbfdd --- /dev/null +++ b/ld/testsuite/ld-powerpc/tlstoc.s @@ -0,0 +1,93 @@ + .section ".tbss","awT",@nobits + .global _start,gd0,ld0,ld1,ld2,ie0,le0,le1 + .align 3 +gd0: .space 8 +ld0: .space 8 +ld1: .space 8 +ld2: .space 8 +ie0: .space 8 +le0: .space 8 +le1: .space 8 + + .section ".tdata","awT",@progbits + .align 3 +gd4: .quad 0x123456789abcdef0 +ld4: .quad 0x23456789abcdef01 +ld5: .quad 0x3456789abcdef012 +ld6: .quad 0x456789abcdef0123 +ie4: .quad 0x56789abcdef01234 +le4: .quad 0x6789abcdef012345 +le5: .quad 0x789abcdef0123456 + + .section ".opd","aw",@progbits + .p2align 3 +_start: + .quad .L_start,.TOC.@tocbase,0 + + .text +.L_start: +#extern syms +#GD + addi 3,2,.Lgd@toc + bl .__tls_get_addr + nop + .section .toc,"aw",@progbits +.Lgd: + .quad gd@dtpmod + .quad gd@dtprel + .text +#LD + addi 3,2,.Lld@toc + bl .__tls_get_addr + nop + .section .toc,"aw",@progbits +.Lld: + .quad ld@dtpmod + .quad 0 + .text + +#global syms +#GD + addi 3,2,.Lgd0@toc + bl .__tls_get_addr + nop + .section .toc,"aw",@progbits +.Lgd0: + .quad gd0@dtpmod + .quad gd0@dtprel + .text +#LD + addi 3,2,.Lld0@toc + bl .__tls_get_addr + nop + .section .toc,"aw",@progbits +.Lld0: + .quad ld0@dtpmod + .quad 0 + .text + + addi 9,3,ld0@dtprel + + addis 9,3,ld1@dtprel@ha + lwz 10,ld1@dtprel@l(9) + + ld 9,.Lld2@toc(2) + ldx 10,9,3 + .section .toc,"aw",@progbits +.Lld2: + .quad ld2@dtprel + .text + +#IE + ld 9,.Lie0@toc(2) + lhzx 10,9,.Lie0@tls + .section .toc,"aw",@progbits +.Lie0: + .quad ie0@tprel + .text + +#LE + lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0 + + addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1 + stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1 |