aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-powerpc/tlsmark.s
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-powerpc/tlsmark.s')
-rw-r--r--ld/testsuite/ld-powerpc/tlsmark.s55
1 files changed, 55 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/tlsmark.s b/ld/testsuite/ld-powerpc/tlsmark.s
new file mode 100644
index 0000000..dc42327
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/tlsmark.s
@@ -0,0 +1,55 @@
+ .section ".tdata","awT",@progbits
+x: .int 1
+y: .int 2
+
+ .section ".toc","aw",@progbits
+ .p2align 3
+.LC0:
+ .quad y@dtpmod
+ .quad y@dtprel
+.LC1:
+ .quad y@dtpmod
+ .quad 0
+
+ .text
+ .global _start
+_start:
+ b .L2
+
+.L1:
+ bl __tls_get_addr(x@tlsgd)
+ nop
+ ld 4,0(3)
+ addi 3,2,x@got@tlsld
+ b .L3
+.L2:
+ addi 3,2,x@got@tlsgd
+ b .L1
+.L3:
+ bl __tls_get_addr(x@tlsld)
+ nop
+ ld 4,x@dtprel(3)
+
+ addi 3,2,.LC0@toc
+ b .L5
+.L4:
+ addi 3,2,.LC1@toc
+ b .L6
+.L5:
+ bl .__tls_get_addr(.LC0@tlsgd)
+ nop
+ ld 5,0(3)
+ b .L4
+.L6:
+ bl .__tls_get_addr(.LC1@tlsld)
+ nop
+ ld 5,y@dtprel(3)
+
+
+ .section ".text.no","ax",@progbits
+ .p2align 2
+ addi 3,2,gd@got@tlsgd
+ lis 29,__tls_get_addr@ha
+ addi 29,29,__tls_get_addr@l
+ bl __tls_get_addr
+ nop