~ubuntu-branches/ubuntu/hoary/binutils/hoary

« back to all changes in this revision

Viewing changes to ld/testsuite/ld-sparc/tlssunpic32.s

  • Committer: Bazaar Package Importer
  • Author(s): James Troup
  • Date: 2004-05-19 10:35:44 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040519103544-17h3o6e8pwndydrg
Tags: 2.14.90.0.7-8
debian/rules: don't use gcc-2.95 on m68k.  Thanks to Adam Conrad for
pointing this out.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
        .data
 
2
        .align  4096
 
3
        .section ".tdata", #alloc, #write, #tls
 
4
        .align  4
 
5
        .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
 
6
        .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 
7
        .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 
8
sg1:    .word 17
 
9
sg2:    .word 18
 
10
sg3:    .word 19
 
11
sg4:    .word 20
 
12
sg5:    .word 21
 
13
sg6:    .word 22
 
14
sg7:    .word 23
 
15
sg8:    .word 24
 
16
sl1:    .word 65
 
17
sl2:    .word 66
 
18
sl3:    .word 67
 
19
sl4:    .word 68
 
20
sl5:    .word 69
 
21
sl6:    .word 70
 
22
sl7:    .word 71
 
23
sl8:    .word 72
 
24
sh1:    .word 257
 
25
sh2:    .word 258
 
26
sh3:    .word 259
 
27
sh4:    .word 260
 
28
sh5:    .word 261
 
29
sh6:    .word 262
 
30
sh7:    .word 263
 
31
sh8:    .word 264
 
32
 
 
33
        .text
 
34
        .align  4096
 
35
.LLGETPC0:
 
36
        retl
 
37
        add     %o7, %l7, %l7
 
38
 
 
39
        .globl  fn1
 
40
        .type   fn1,#function
 
41
        .proc   04
 
42
fn1:
 
43
        save    %sp, -104, %sp
 
44
        sethi   %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
 
45
        call    .LLGETPC0
 
46
        add     %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
 
47
        nop;nop;nop;nop
 
48
 
 
49
        /* GD */
 
50
        sethi   %tgd_hi22(sg1), %l1
 
51
        nop
 
52
        add     %l1, %tgd_lo10(sg1), %l2
 
53
        nop
 
54
        add     %l7, %l2, %o0, %tgd_add(sg1)
 
55
        nop
 
56
        call    __tls_get_addr, %tgd_call(sg1)
 
57
        nop
 
58
        nop;nop;nop;nop
 
59
 
 
60
        /* GD -> IE because variable is referenced through IE too */
 
61
        sethi   %tgd_hi22(sg2), %o0
 
62
        add     %o0, %tgd_lo10(sg2), %o1
 
63
        add     %l7, %o1, %o0, %tgd_add(sg2)
 
64
        call    __tls_get_addr, %tgd_call(sg2)
 
65
        nop
 
66
        nop;nop;nop;nop
 
67
 
 
68
        /* GD against local variable */
 
69
        sethi   %tgd_hi22(sl1), %o4
 
70
        add     %o4, %tgd_lo10(sl1), %o4
 
71
        add     %l7, %o4, %o0, %tgd_add(sl1)
 
72
        call    __tls_get_addr, %tgd_call(sl1)
 
73
        nop
 
74
        nop;nop;nop;nop
 
75
 
 
76
        /* GD -> IE against local variable referenced through IE too */
 
77
        sethi   %tgd_hi22(sl2), %o0
 
78
        add     %o0, %tgd_lo10(sl2), %o0
 
79
        add     %l7, %o0, %o0, %tgd_add(sl2)
 
80
        call    __tls_get_addr, %tgd_call(sl2)
 
81
        nop
 
82
        nop;nop;nop;nop
 
83
 
 
84
        /* GD against hidden and local variable */
 
85
        sethi   %tgd_hi22(sh1), %o4
 
86
        add     %o4, %tgd_lo10(sh1), %o4
 
87
        add     %l7, %o4, %o0, %tgd_add(sh1)
 
88
        call    __tls_get_addr, %tgd_call(sh1)
 
89
        nop
 
90
        nop;nop;nop;nop
 
91
 
 
92
        /* GD -> IE against hidden and local variable referenced through
 
93
           IE too */
 
94
        sethi   %tgd_hi22(sh2), %o0
 
95
        add     %o0, %tgd_lo10(sh2), %o0
 
96
        add     %l7, %o0, %o0, %tgd_add(sh2)
 
97
        call    __tls_get_addr, %tgd_call(sh2)
 
98
        nop
 
99
        nop;nop;nop;nop
 
100
 
 
101
        /* GD against hidden but not local variable */
 
102
        sethi   %tgd_hi22(sH1), %o4
 
103
        add     %o4, %tgd_lo10(sH1), %o4
 
104
        add     %l7, %o4, %o0, %tgd_add(sH1)
 
105
        call    __tls_get_addr, %tgd_call(sH1)
 
106
        nop
 
107
        nop;nop;nop;nop
 
108
 
 
109
        /* GD -> IE against hidden but not local variable referenced through
 
110
           IE too */
 
111
        sethi   %tgd_hi22(sH2), %o0
 
112
        add     %o0, %tgd_lo10(sH2), %o0
 
113
        add     %l7, %o0, %o0, %tgd_add(sH2)
 
114
        call    __tls_get_addr, %tgd_call(sH2)
 
115
        nop
 
116
        nop;nop;nop;nop
 
117
 
 
118
        /* LD */
 
119
        sethi   %tldm_hi22(sl1), %l1
 
120
        nop
 
121
        add     %l1, %tldm_lo10(sl1), %l2
 
122
        nop
 
123
        add     %l7, %l2, %o0, %tldm_add(sl1)
 
124
        nop
 
125
        call    __tls_get_addr, %tldm_call(sl1)
 
126
        nop
 
127
        sethi   %tldo_hix22(sl1), %l3
 
128
        nop
 
129
        xor     %l3, %tldo_lox10(sl1), %l4
 
130
        nop
 
131
        add     %o0, %l4, %l5, %tldo_add(sl1)
 
132
        nop
 
133
        sethi   %tldo_hix22(sl2 + 2), %l2
 
134
        nop
 
135
        xor     %l2, %tldo_lox10(sl2 + 2), %l3
 
136
        nop
 
137
        lduh    [%o0 + %l3], %l6, %tldo_add(sl2 + 2)
 
138
        nop;nop;nop;nop
 
139
 
 
140
        /* LD against hidden and local variables */
 
141
        sethi   %tldm_hi22(sh1), %o1
 
142
        sethi   %tldo_hix22(sh1), %l3
 
143
        add     %o1, %tldm_lo10(sh1), %o2
 
144
        sethi   %tldo_hix22(sh2 + 1), %l2
 
145
        add     %l7, %o2, %o0, %tldm_add(sh1)
 
146
        xor     %l3, %tldo_lox10(sh1), %l4
 
147
        call    __tls_get_addr, %tldm_call(sh1)
 
148
        xor     %l2, %tldo_lox10(sh2 + 1), %l3
 
149
        add     %o0, %l4, %l5, %tldo_add(sh1)
 
150
        ldub    [%o0 + %l3], %l6, %tldo_add(sh2 + 1)
 
151
        nop;nop;nop;nop
 
152
 
 
153
        /* LD against hidden but not local variables */
 
154
        sethi   %tldm_hi22(sH1), %o1
 
155
        sethi   %tldo_hix22(sH1 + 3), %l3
 
156
        add     %o1, %tldm_lo10(sH1), %o2
 
157
        sethi   %tldo_hix22(sH2), %l2
 
158
        add     %l7, %o2, %o0, %tldm_add(sH1)
 
159
        xor     %l3, %tldo_lox10(sH1 + 3), %l4
 
160
        call    __tls_get_addr, %tldm_call(sH1)
 
161
        xor     %l2, %tldo_lox10(sH2), %l3
 
162
        add     %o0, %l4, %l5, %tldo_add(sH1 + 3)
 
163
        ld      [%o0 + %l3], %l6, %tldo_add(sH2)
 
164
        nop;nop;nop;nop
 
165
 
 
166
        /* IE against global var  */
 
167
        sethi   %tie_hi22(sg2), %l1
 
168
        nop
 
169
        add     %l1, %tie_lo10(sg2), %l2
 
170
        nop
 
171
        ld      [%l7 + %l2], %l2, %tie_ld(sg2)
 
172
        nop
 
173
        add     %g7, %l2, %l2, %tie_add(sg2)
 
174
        nop;nop;nop;nop
 
175
 
 
176
        /* IE against local var  */
 
177
        sethi   %tie_hi22(sl2), %o3
 
178
        add     %o3, %tie_lo10(sl2), %o3
 
179
        ld      [%l7 + %o3], %o2, %tie_ld(sl2)
 
180
        add     %g7, %o2, %o4, %tie_add(sl2)
 
181
        nop;nop;nop;nop
 
182
 
 
183
        /* IE against hidden and local var  */
 
184
        sethi   %tie_hi22(sh2), %l1
 
185
        add     %l1, %tie_lo10(sh2), %l2
 
186
        ld      [%l7 + %l2], %l2, %tie_ld(sh2)
 
187
        add     %g7, %l2, %l2, %tie_add(sh2)
 
188
        nop;nop;nop;nop
 
189
 
 
190
        /* IE against hidden but not local var  */
 
191
        sethi   %tie_hi22(sH2), %l1
 
192
        add     %l1, %tie_lo10(sH2), %l2
 
193
        ld      [%l7 + %l2], %l2, %tie_ld(sH2)
 
194
        add     %g7, %l2, %l2, %tie_add(sH2)
 
195
        nop;nop;nop;nop
 
196
 
 
197
        /* Direct access through %g7  */
 
198
 
 
199
        /* IE against global var  */
 
200
        sethi   %tie_hi22(sg5), %l1
 
201
        add     %l1, %tie_lo10(sg5), %l2
 
202
        ld      [%l7 + %l2], %l2, %tie_ld(sg5)
 
203
        ld      [%g7 + %l2], %l2, %tie_add(sg5)
 
204
        nop;nop;nop;nop
 
205
 
 
206
        /* IE against local var  */
 
207
        sethi   %tie_hi22(sl5), %o3
 
208
        add     %o3, %tie_lo10(sl5), %o4
 
209
        ld      [%l7 + %o4], %o5, %tie_ld(sl5)
 
210
        stb     %l2, [%g7 + %o5], %tie_add(sl5)
 
211
        nop;nop;nop;nop
 
212
 
 
213
        /* IE against hidden and local var  */
 
214
        sethi   %tie_hi22(sh5), %o3
 
215
        add     %o3, %tie_lo10(sh5), %o4
 
216
        ld      [%l7 + %o4], %o5, %tie_ld(sh5)
 
217
        lduh    [%g7 + %o5], %l2, %tie_add(sh5)
 
218
        nop;nop;nop;nop
 
219
 
 
220
        /* IE against hidden but not local var  */
 
221
        sethi   %tie_hi22(sH5), %o3
 
222
        add     %o3, %tie_lo10(sH5), %o4
 
223
        ld      [%l7 + %o4], %o5, %tie_ld(sH5)
 
224
        st      %l2, [%g7 + %o5], %tie_add(sH5)
 
225
        nop;nop;nop;nop
 
226
 
 
227
        ret
 
228
        restore