X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=ld%2Ftestsuite%2Fld-xtensa%2Ftlspic1.s;fp=ld%2Ftestsuite%2Fld-xtensa%2Ftlspic1.s;h=9ecde66a2deb0299235850bd91c55107058d6e7c;hp=0000000000000000000000000000000000000000;hb=88750007d7869f178f0ba528f41efd3b74c424cf;hpb=6df9443a374e2b81278c61b8afc0a1eef7db280b diff --git a/ld/testsuite/ld-xtensa/tlspic1.s b/ld/testsuite/ld-xtensa/tlspic1.s new file mode 100644 index 0000000..9ecde66 --- /dev/null +++ b/ld/testsuite/ld-xtensa/tlspic1.s @@ -0,0 +1,120 @@ + .section ".tdata", "awT", @progbits + .global sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .global sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .align 4 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 157 +sh2: .long 158 +sh3: .long 159 +sh4: .long 160 +sh5: .long 161 +sh6: .long 162 +sh7: .long 163 +sh8: .long 164 + + .text + .global _start + .type _start, @function +_start: + entry sp, 32 + + /* GD */ + movi a8, sg1@tlsfunc + movi a10, sg1@tlsarg + callx8.tls a8, sg1@tlscall + + /* GD -> IE because variable is referenced through IE too */ + movi a8, sg2@tlsfunc + movi a10, sg2@tlsarg + callx8.tls a8, sg2@tlscall + + /* GD against local variable */ + movi a8, sl1@tlsfunc + movi a10, sl1@tlsarg + callx8.tls a8, sl1@tlscall + + /* GD -> IE against local variable referenced through IE too */ + movi a8, sl2@tlsfunc + movi a10, sl2@tlsarg + callx8.tls a8, sl2@tlscall + + /* GD against hidden and local variable */ + movi a8, sh1@tlsfunc + movi a10, sh1@tlsarg + callx8.tls a8, sh1@tlscall + + /* GD -> IE against hidden and local variable referenced through + IE too */ + movi a8, sh2@tlsfunc + movi a10, sh2@tlsarg + callx8.tls a8, sh2@tlscall + + /* GD against hidden but not local variable */ + movi a8, sH1@tlsfunc + movi a10, sH1@tlsarg + callx8.tls a8, sH1@tlscall + + /* GD -> IE against hidden but not local variable referenced through + IE too */ + movi a8, sH2@tlsfunc + movi a10, sH2@tlsarg + callx8.tls a8, sH2@tlscall + + /* LD */ + movi a8, _TLS_MODULE_BASE_@tlsfunc + movi a10, _TLS_MODULE_BASE_@tlsarg + callx8.tls a8, _TLS_MODULE_BASE_@tlscall + movi a12, sl1@dtpoff + add a12, a12, a10 + movi a13, 2+sl2@dtpoff + add a13, a13, a10 + + /* LD against hidden and local variables */ + movi a12, sh1@dtpoff + add a12, a12, a10 + movi a13, sh2@dtpoff+3 + add a13, a13, a10 + + /* LD against hidden but not local variables */ + movi a12, sH1@dtpoff + add a12, a12, a10 + movi a13, sH2@dtpoff+1 + add a13, a13, a10 + + /* IE against global var */ + rur a2, THREADPTR + movi a3, sg2@tpoff + add a3, a3, a2 + + /* IE against local var */ + rur a4, THREADPTR + movi a5, sl2@tpoff + add a5, a5, a4 + + /* IE against hidden and local var */ + rur a6, THREADPTR + movi a7, sh2@tpoff + add a7, a7, a6 + + /* IE against hidden but not local var */ + rur a8, THREADPTR + movi a9, sH2@tpoff + add a9, a9, a8 + + retw