aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s')
-rw-r--r--ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s65
1 files changed, 65 insertions, 0 deletions
diff --git a/ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s b/ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s
new file mode 100644
index 0000000..936bbce
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s
@@ -0,0 +1,65 @@
+ .data
+ .section .tdata,"awT",@progbits
+ .global gl1, gl2, gl3, gl4
+gl1: .dword 1
+gl2: .dword 2
+gl3: .dword 3
+gl4: .dword 4
+lo1: .dword 10
+lo2: .dword 20
+lo3: .dword 30
+lo4: .dword 40
+ .text
+# Access global symbol
+fun_gl1:
+ # GD + IE
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, gl1
+ la.tls.ie $a0, gl1
+
+ # GD + DESC
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, gl2
+ # DESC: pcaddi + addi.d => pcaddi
+ la.tls.desc $a0, gl2
+
+ # DESC + IE
+ # DESC -> IE
+ la.tls.desc $a0, gl3
+ la.tls.ie $a0, gl3
+
+ # GD + DESC + IE
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, gl4
+ # DESC: pcaddi + addi.d => pcaddi
+ la.tls.desc $a0, gl4
+ la.tls.ie $a0, gl4
+
+# Access local symbol
+fun_lo:
+ # IE + GD
+ la.tls.ie $a0, lo1
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, lo1
+
+ # DESC + GD
+ # DESC: pcaddi + addi.d => pcaddi
+ la.tls.desc $a0, lo2
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, lo2
+
+ # DESC + IE
+ # DESC: DESC -> IE
+ la.tls.desc $a0, lo3
+ la.tls.ie $a0, lo3
+
+ # DESC + GD + IE
+ # DESC: pcaddi + addi.d => pcaddi
+ la.tls.desc $a0, lo4
+ # GD: pcaddi + addi.d => pcaddi
+ la.tls.gd $a0, lo4
+ la.tls.ie $a0, lo4
+
+# Access external undef symbol
+fun_external:
+ la.tls.desc $a0, sH1