Typo fix in most recent entry.
[binutils.git] / ld / testsuite / ld-xtensa / tlspic1.s
blob9ecde66a2deb0299235850bd91c55107058d6e7c
1 .section ".tdata", "awT", @progbits
2 .global sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
3 .global sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
4 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
5 .align 4
6 sg1: .long 17
7 sg2: .long 18
8 sg3: .long 19
9 sg4: .long 20
10 sg5: .long 21
11 sg6: .long 22
12 sg7: .long 23
13 sg8: .long 24
14 sl1: .long 65
15 sl2: .long 66
16 sl3: .long 67
17 sl4: .long 68
18 sl5: .long 69
19 sl6: .long 70
20 sl7: .long 71
21 sl8: .long 72
22 sh1: .long 157
23 sh2: .long 158
24 sh3: .long 159
25 sh4: .long 160
26 sh5: .long 161
27 sh6: .long 162
28 sh7: .long 163
29 sh8: .long 164
31 .text
32 .global _start
33 .type _start, @function
34 _start:
35 entry sp, 32
37 /* GD */
38 movi a8, sg1@tlsfunc
39 movi a10, sg1@tlsarg
40 callx8.tls a8, sg1@tlscall
42 /* GD -> IE because variable is referenced through IE too */
43 movi a8, sg2@tlsfunc
44 movi a10, sg2@tlsarg
45 callx8.tls a8, sg2@tlscall
47 /* GD against local variable */
48 movi a8, sl1@tlsfunc
49 movi a10, sl1@tlsarg
50 callx8.tls a8, sl1@tlscall
52 /* GD -> IE against local variable referenced through IE too */
53 movi a8, sl2@tlsfunc
54 movi a10, sl2@tlsarg
55 callx8.tls a8, sl2@tlscall
57 /* GD against hidden and local variable */
58 movi a8, sh1@tlsfunc
59 movi a10, sh1@tlsarg
60 callx8.tls a8, sh1@tlscall
62 /* GD -> IE against hidden and local variable referenced through
63 IE too */
64 movi a8, sh2@tlsfunc
65 movi a10, sh2@tlsarg
66 callx8.tls a8, sh2@tlscall
68 /* GD against hidden but not local variable */
69 movi a8, sH1@tlsfunc
70 movi a10, sH1@tlsarg
71 callx8.tls a8, sH1@tlscall
73 /* GD -> IE against hidden but not local variable referenced through
74 IE too */
75 movi a8, sH2@tlsfunc
76 movi a10, sH2@tlsarg
77 callx8.tls a8, sH2@tlscall
79 /* LD */
80 movi a8, _TLS_MODULE_BASE_@tlsfunc
81 movi a10, _TLS_MODULE_BASE_@tlsarg
82 callx8.tls a8, _TLS_MODULE_BASE_@tlscall
83 movi a12, sl1@dtpoff
84 add a12, a12, a10
85 movi a13, 2+sl2@dtpoff
86 add a13, a13, a10
88 /* LD against hidden and local variables */
89 movi a12, sh1@dtpoff
90 add a12, a12, a10
91 movi a13, sh2@dtpoff+3
92 add a13, a13, a10
94 /* LD against hidden but not local variables */
95 movi a12, sH1@dtpoff
96 add a12, a12, a10
97 movi a13, sH2@dtpoff+1
98 add a13, a13, a10
100 /* IE against global var */
101 rur a2, THREADPTR
102 movi a3, sg2@tpoff
103 add a3, a3, a2
105 /* IE against local var */
106 rur a4, THREADPTR
107 movi a5, sl2@tpoff
108 add a5, a5, a4
110 /* IE against hidden and local var */
111 rur a6, THREADPTR
112 movi a7, sh2@tpoff
113 add a7, a7, a6
115 /* IE against hidden but not local var */
116 rur a8, THREADPTR
117 movi a9, sH2@tpoff
118 add a9, a9, a8
120 retw