diff options
Diffstat (limited to 'ld/testsuite/ld-frv/tls-2.s')
-rw-r--r-- | ld/testsuite/ld-frv/tls-2.s | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/ld/testsuite/ld-frv/tls-2.s b/ld/testsuite/ld-frv/tls-2.s new file mode 100644 index 0000000..f0712e3 --- /dev/null +++ b/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 |