summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-frv/tls-2.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-frv/tls-2.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-frv/tls-2.s')
-rw-r--r--binutils-2.21/ld/testsuite/ld-frv/tls-2.s183
1 files changed, 183 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-frv/tls-2.s b/binutils-2.21/ld/testsuite/ld-frv/tls-2.s
new file mode 100644
index 0000000..f0712e3
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-frv/tls-2.s
@@ -0,0 +1,183 @@
+ .section .tbss,"awT",@nobits
+ .align 4
+ .type l, @object
+ .size l, 4
+l:
+ .zero 4
+ .align 4
+ .globl i
+ .type i, @object
+ .size i, 4
+i:
+ .zero 4
+ .text
+ .globl _start
+_start:
+ call #gettlsoff(l+1)
+ call #gettlsoff(l+1+4096)
+ call #gettlsoff(l+1+65536)
+
+ sethi.p #gottlsdeschi(l+2), gr14
+ setlo #gottlsdesclo(l+2), gr14
+ ldd #tlsdesc(l+2)@(gr15, gr14), gr8
+ calll #gettlsoff(l+2)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(l+2+4096), gr14
+ setlo #gottlsdesclo(l+2+4096), gr14
+ ldd #tlsdesc(l+2+4096)@(gr15, gr14), gr8
+ calll #gettlsoff(l+2+4096)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(l+2+65536), gr14
+ setlo #gottlsdesclo(l+2+65536), gr14
+ ldd #tlsdesc(l+2+65536)@(gr15, gr14), gr8
+ calll #gettlsoff(l+2+65536)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(l+3)), gr8
+ setlos #gottlsdesclo(l+3), gr14
+ calll #gettlsoff(l+3)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(l+3+4096)), gr8
+ setlos #gottlsdesclo(l+3+4096), gr14
+ calll #gettlsoff(l+3+4096)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(l+3+65536)), gr8
+ setlos #gottlsdesclo(l+3+65536), gr14
+ calll #gettlsoff(l+3+65536)@(gr8, gr0)
+
+ sethi #tlsmoffhi(l+4), gr9
+ setlo #tlsmofflo(l+4), gr9
+
+ sethi #tlsmoffhi(l+4+4096), gr9
+ setlo #tlsmofflo(l+4+4096), gr9
+
+ sethi #tlsmoffhi(l+4+65536), gr9
+ setlo #tlsmofflo(l+4+65536), gr9
+
+ call #gettlsoff(i+1)
+ call #gettlsoff(i+1+4096)
+ call #gettlsoff(i+1+65536)
+
+ sethi.p #gottlsdeschi(i+2), gr14
+ setlo #gottlsdesclo(i+2), gr14
+ ldd #tlsdesc(i+2)@(gr15, gr14), gr8
+ calll #gettlsoff(i+2)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(i+2+4096), gr14
+ setlo #gottlsdesclo(i+2+4096), gr14
+ ldd #tlsdesc(i+2+4096)@(gr15, gr14), gr8
+ calll #gettlsoff(i+2+4096)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(i+2+65536), gr14
+ setlo #gottlsdesclo(i+2+65536), gr14
+ ldd #tlsdesc(i+2+65536)@(gr15, gr14), gr8
+ calll #gettlsoff(i+2+65536)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(i+3)), gr8
+ setlos #gottlsdesclo(i+3), gr14
+ calll #gettlsoff(i+3)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(i+3+4096)), gr8
+ setlos #gottlsdesclo(i+3+4096), gr14
+ calll #gettlsoff(i+3+4096)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(i+3+65536)), gr8
+ setlos #gottlsdesclo(i+3+65536), gr14
+ calll #gettlsoff(i+3+65536)@(gr8, gr0)
+
+ sethi #tlsmoffhi(i+4), gr9
+ setlo #tlsmofflo(i+4), gr9
+
+ sethi #tlsmoffhi(i+4+4096), gr9
+ setlo #tlsmofflo(i+4+4096), gr9
+
+ sethi #tlsmoffhi(i+4+65536), gr9
+ setlo #tlsmofflo(i+4+65536), gr9
+
+ call #gettlsoff(0+1)
+ call #gettlsoff(0+1+4096)
+ call #gettlsoff(0+1+65536)
+
+ sethi.p #gottlsdeschi(0+2), gr14
+ setlo #gottlsdesclo(0+2), gr14
+ ldd #tlsdesc(0+2)@(gr15, gr14), gr8
+ calll #gettlsoff(0+2)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(0+2+4096), gr14
+ setlo #gottlsdesclo(0+2+4096), gr14
+ ldd #tlsdesc(0+2+4096)@(gr15, gr14), gr8
+ calll #gettlsoff(0+2+4096)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(0+2+65536), gr14
+ setlo #gottlsdesclo(0+2+65536), gr14
+ ldd #tlsdesc(0+2+65536)@(gr15, gr14), gr8
+ calll #gettlsoff(0+2+65536)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(0+3)), gr8
+ setlos #gottlsdesclo(0+3), gr14
+ calll #gettlsoff(0+3)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(0+3+4096)), gr8
+ setlos #gottlsdesclo(0+3+4096), gr14
+ calll #gettlsoff(0+3+4096)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(0+3+65536)), gr8
+ setlos #gottlsdesclo(0+3+65536), gr14
+ calll #gettlsoff(0+3+65536)@(gr8, gr0)
+
+ sethi #tlsmoffhi(0+4), gr9
+ setlo #tlsmofflo(0+4), gr9
+
+ sethi #tlsmoffhi(0+4+4096), gr9
+ setlo #tlsmofflo(0+4+4096), gr9
+
+ sethi #tlsmoffhi(0+4+65536), gr9
+ setlo #tlsmofflo(0+4+65536), gr9
+
+ call #gettlsoff(x+1)
+ call #gettlsoff(x+1+4096)
+ call #gettlsoff(x+1+65536)
+
+ sethi.p #gottlsdeschi(x+2), gr14
+ setlo #gottlsdesclo(x+2), gr14
+ ldd #tlsdesc(x+2)@(gr15, gr14), gr8
+ calll #gettlsoff(x+2)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(x+2+4096), gr14
+ setlo #gottlsdesclo(x+2+4096), gr14
+ ldd #tlsdesc(x+2+4096)@(gr15, gr14), gr8
+ calll #gettlsoff(x+2+4096)@(gr8, gr0)
+
+ sethi.p #gottlsdeschi(x+2+65536), gr14
+ setlo #gottlsdesclo(x+2+65536), gr14
+ ldd #tlsdesc(x+2+65536)@(gr15, gr14), gr8
+ calll #gettlsoff(x+2+65536)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(x+3)), gr8
+ setlos #gottlsdesclo(x+3), gr14
+ calll #gettlsoff(x+3)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(x+3+4096)), gr8
+ setlos #gottlsdesclo(x+3+4096), gr14
+ calll #gettlsoff(x+3+4096)@(gr8, gr0)
+
+ lddi.p @(gr15, #gottlsdesc12(x+3+65536)), gr8
+ setlos #gottlsdesclo(x+3+65536), gr14
+ calll #gettlsoff(x+3+65536)@(gr8, gr0)
+
+.ifdef static_tls
+ ldi @(gr15, #gottlsoff12(l+1)), gr9
+ ldi @(gr15, #gottlsoff12(l+1+65536)), gr9
+ ldi @(gr15, #gottlsoff12(i+1)), gr9
+ ldi @(gr15, #gottlsoff12(i+1+65536)), gr9
+ ldi @(gr15, #gottlsoff12(0+1)), gr9
+ ldi @(gr15, #gottlsoff12(0+1+65536)), gr9
+ ldi @(gr15, #gottlsoff12(x+1)), gr9
+ ldi @(gr15, #gottlsoff12(x+1+65536)), gr9
+
+ setlos #gottlsofflo(l+1+4096), gr8
+ ld #tlsoff(l+1+4096)@(gr15, gr8), gr9
+
+ sethi #gottlsoffhi(i+1+4096), gr8
+ setlo #gottlsofflo(i+1+4096), gr8
+ ld #tlsoff(i+1+4096)@(gr15, gr8), gr9
+.endif