Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sparc/lib/Memcpy_utils.S
29524 views
1
#ifndef __ASM_MEMCPY_UTILS
2
#define __ASM_MEMCPY_UTILS
3
4
#include <linux/linkage.h>
5
#include <asm/asi.h>
6
#include <asm/visasm.h>
7
8
ENTRY(__restore_asi_fp)
9
VISExitHalf
10
retl
11
wr %g0, ASI_AIUS, %asi
12
ENDPROC(__restore_asi_fp)
13
14
ENTRY(__restore_asi)
15
retl
16
wr %g0, ASI_AIUS, %asi
17
ENDPROC(__restore_asi)
18
19
ENTRY(memcpy_retl_o2)
20
ba,pt %xcc, __restore_asi
21
mov %o2, %o0
22
ENDPROC(memcpy_retl_o2)
23
ENTRY(memcpy_retl_o2_plus_1)
24
ba,pt %xcc, __restore_asi
25
add %o2, 1, %o0
26
ENDPROC(memcpy_retl_o2_plus_1)
27
ENTRY(memcpy_retl_o2_plus_3)
28
ba,pt %xcc, __restore_asi
29
add %o2, 3, %o0
30
ENDPROC(memcpy_retl_o2_plus_3)
31
ENTRY(memcpy_retl_o2_plus_4)
32
ba,pt %xcc, __restore_asi
33
add %o2, 4, %o0
34
ENDPROC(memcpy_retl_o2_plus_4)
35
ENTRY(memcpy_retl_o2_plus_5)
36
ba,pt %xcc, __restore_asi
37
add %o2, 5, %o0
38
ENDPROC(memcpy_retl_o2_plus_5)
39
ENTRY(memcpy_retl_o2_plus_6)
40
ba,pt %xcc, __restore_asi
41
add %o2, 6, %o0
42
ENDPROC(memcpy_retl_o2_plus_6)
43
ENTRY(memcpy_retl_o2_plus_7)
44
ba,pt %xcc, __restore_asi
45
add %o2, 7, %o0
46
ENDPROC(memcpy_retl_o2_plus_7)
47
ENTRY(memcpy_retl_o2_plus_8)
48
ba,pt %xcc, __restore_asi
49
add %o2, 8, %o0
50
ENDPROC(memcpy_retl_o2_plus_8)
51
ENTRY(memcpy_retl_o2_plus_15)
52
ba,pt %xcc, __restore_asi
53
add %o2, 15, %o0
54
ENDPROC(memcpy_retl_o2_plus_15)
55
ENTRY(memcpy_retl_o2_plus_15_8)
56
add %o2, 15, %o2
57
ba,pt %xcc, __restore_asi
58
add %o2, 8, %o0
59
ENDPROC(memcpy_retl_o2_plus_15_8)
60
ENTRY(memcpy_retl_o2_plus_16)
61
ba,pt %xcc, __restore_asi
62
add %o2, 16, %o0
63
ENDPROC(memcpy_retl_o2_plus_16)
64
ENTRY(memcpy_retl_o2_plus_24)
65
ba,pt %xcc, __restore_asi
66
add %o2, 24, %o0
67
ENDPROC(memcpy_retl_o2_plus_24)
68
ENTRY(memcpy_retl_o2_plus_31)
69
ba,pt %xcc, __restore_asi
70
add %o2, 31, %o0
71
ENDPROC(memcpy_retl_o2_plus_31)
72
ENTRY(memcpy_retl_o2_plus_32)
73
ba,pt %xcc, __restore_asi
74
add %o2, 32, %o0
75
ENDPROC(memcpy_retl_o2_plus_32)
76
ENTRY(memcpy_retl_o2_plus_31_32)
77
add %o2, 31, %o2
78
ba,pt %xcc, __restore_asi
79
add %o2, 32, %o0
80
ENDPROC(memcpy_retl_o2_plus_31_32)
81
ENTRY(memcpy_retl_o2_plus_31_24)
82
add %o2, 31, %o2
83
ba,pt %xcc, __restore_asi
84
add %o2, 24, %o0
85
ENDPROC(memcpy_retl_o2_plus_31_24)
86
ENTRY(memcpy_retl_o2_plus_31_16)
87
add %o2, 31, %o2
88
ba,pt %xcc, __restore_asi
89
add %o2, 16, %o0
90
ENDPROC(memcpy_retl_o2_plus_31_16)
91
ENTRY(memcpy_retl_o2_plus_31_8)
92
add %o2, 31, %o2
93
ba,pt %xcc, __restore_asi
94
add %o2, 8, %o0
95
ENDPROC(memcpy_retl_o2_plus_31_8)
96
ENTRY(memcpy_retl_o2_plus_63)
97
ba,pt %xcc, __restore_asi
98
add %o2, 63, %o0
99
ENDPROC(memcpy_retl_o2_plus_63)
100
ENTRY(memcpy_retl_o2_plus_63_64)
101
add %o2, 63, %o2
102
ba,pt %xcc, __restore_asi
103
add %o2, 64, %o0
104
ENDPROC(memcpy_retl_o2_plus_63_64)
105
ENTRY(memcpy_retl_o2_plus_63_56)
106
add %o2, 63, %o2
107
ba,pt %xcc, __restore_asi
108
add %o2, 56, %o0
109
ENDPROC(memcpy_retl_o2_plus_63_56)
110
ENTRY(memcpy_retl_o2_plus_63_48)
111
add %o2, 63, %o2
112
ba,pt %xcc, __restore_asi
113
add %o2, 48, %o0
114
ENDPROC(memcpy_retl_o2_plus_63_48)
115
ENTRY(memcpy_retl_o2_plus_63_40)
116
add %o2, 63, %o2
117
ba,pt %xcc, __restore_asi
118
add %o2, 40, %o0
119
ENDPROC(memcpy_retl_o2_plus_63_40)
120
ENTRY(memcpy_retl_o2_plus_63_32)
121
add %o2, 63, %o2
122
ba,pt %xcc, __restore_asi
123
add %o2, 32, %o0
124
ENDPROC(memcpy_retl_o2_plus_63_32)
125
ENTRY(memcpy_retl_o2_plus_63_24)
126
add %o2, 63, %o2
127
ba,pt %xcc, __restore_asi
128
add %o2, 24, %o0
129
ENDPROC(memcpy_retl_o2_plus_63_24)
130
ENTRY(memcpy_retl_o2_plus_63_16)
131
add %o2, 63, %o2
132
ba,pt %xcc, __restore_asi
133
add %o2, 16, %o0
134
ENDPROC(memcpy_retl_o2_plus_63_16)
135
ENTRY(memcpy_retl_o2_plus_63_8)
136
add %o2, 63, %o2
137
ba,pt %xcc, __restore_asi
138
add %o2, 8, %o0
139
ENDPROC(memcpy_retl_o2_plus_63_8)
140
ENTRY(memcpy_retl_o2_plus_o3)
141
ba,pt %xcc, __restore_asi
142
add %o2, %o3, %o0
143
ENDPROC(memcpy_retl_o2_plus_o3)
144
ENTRY(memcpy_retl_o2_plus_o3_plus_1)
145
add %o3, 1, %o3
146
ba,pt %xcc, __restore_asi
147
add %o2, %o3, %o0
148
ENDPROC(memcpy_retl_o2_plus_o3_plus_1)
149
ENTRY(memcpy_retl_o2_plus_o5)
150
ba,pt %xcc, __restore_asi
151
add %o2, %o5, %o0
152
ENDPROC(memcpy_retl_o2_plus_o5)
153
ENTRY(memcpy_retl_o2_plus_o5_plus_1)
154
add %o5, 1, %o5
155
ba,pt %xcc, __restore_asi
156
add %o2, %o5, %o0
157
ENDPROC(memcpy_retl_o2_plus_o5_plus_1)
158
ENTRY(memcpy_retl_o2_plus_o5_plus_4)
159
add %o5, 4, %o5
160
ba,pt %xcc, __restore_asi
161
add %o2, %o5, %o0
162
ENDPROC(memcpy_retl_o2_plus_o5_plus_4)
163
ENTRY(memcpy_retl_o2_plus_o5_plus_8)
164
add %o5, 8, %o5
165
ba,pt %xcc, __restore_asi
166
add %o2, %o5, %o0
167
ENDPROC(memcpy_retl_o2_plus_o5_plus_8)
168
ENTRY(memcpy_retl_o2_plus_o5_plus_16)
169
add %o5, 16, %o5
170
ba,pt %xcc, __restore_asi
171
add %o2, %o5, %o0
172
ENDPROC(memcpy_retl_o2_plus_o5_plus_16)
173
ENTRY(memcpy_retl_o2_plus_o5_plus_24)
174
add %o5, 24, %o5
175
ba,pt %xcc, __restore_asi
176
add %o2, %o5, %o0
177
ENDPROC(memcpy_retl_o2_plus_o5_plus_24)
178
ENTRY(memcpy_retl_o2_plus_o5_plus_32)
179
add %o5, 32, %o5
180
ba,pt %xcc, __restore_asi
181
add %o2, %o5, %o0
182
ENDPROC(memcpy_retl_o2_plus_o5_plus_32)
183
ENTRY(memcpy_retl_o2_plus_o5_64)
184
add %o5, 32, %o5
185
ba,pt %xcc, __restore_asi
186
add %o2, %o5, %o0
187
ENDPROC(memcpy_retl_o2_plus_o5_64)
188
ENTRY(memcpy_retl_o2_plus_g1)
189
ba,pt %xcc, __restore_asi
190
add %o2, %g1, %o0
191
ENDPROC(memcpy_retl_o2_plus_g1)
192
ENTRY(memcpy_retl_o2_plus_g1_plus_1)
193
add %g1, 1, %g1
194
ba,pt %xcc, __restore_asi
195
add %o2, %g1, %o0
196
ENDPROC(memcpy_retl_o2_plus_g1_plus_1)
197
ENTRY(memcpy_retl_o2_plus_g1_plus_8)
198
add %g1, 8, %g1
199
ba,pt %xcc, __restore_asi
200
add %o2, %g1, %o0
201
ENDPROC(memcpy_retl_o2_plus_g1_plus_8)
202
ENTRY(memcpy_retl_o2_plus_o4)
203
ba,pt %xcc, __restore_asi
204
add %o2, %o4, %o0
205
ENDPROC(memcpy_retl_o2_plus_o4)
206
ENTRY(memcpy_retl_o2_plus_o4_plus_8)
207
add %o4, 8, %o4
208
ba,pt %xcc, __restore_asi
209
add %o2, %o4, %o0
210
ENDPROC(memcpy_retl_o2_plus_o4_plus_8)
211
ENTRY(memcpy_retl_o2_plus_o4_plus_16)
212
add %o4, 16, %o4
213
ba,pt %xcc, __restore_asi
214
add %o2, %o4, %o0
215
ENDPROC(memcpy_retl_o2_plus_o4_plus_16)
216
ENTRY(memcpy_retl_o2_plus_o4_plus_24)
217
add %o4, 24, %o4
218
ba,pt %xcc, __restore_asi
219
add %o2, %o4, %o0
220
ENDPROC(memcpy_retl_o2_plus_o4_plus_24)
221
ENTRY(memcpy_retl_o2_plus_o4_plus_32)
222
add %o4, 32, %o4
223
ba,pt %xcc, __restore_asi
224
add %o2, %o4, %o0
225
ENDPROC(memcpy_retl_o2_plus_o4_plus_32)
226
ENTRY(memcpy_retl_o2_plus_o4_plus_40)
227
add %o4, 40, %o4
228
ba,pt %xcc, __restore_asi
229
add %o2, %o4, %o0
230
ENDPROC(memcpy_retl_o2_plus_o4_plus_40)
231
ENTRY(memcpy_retl_o2_plus_o4_plus_48)
232
add %o4, 48, %o4
233
ba,pt %xcc, __restore_asi
234
add %o2, %o4, %o0
235
ENDPROC(memcpy_retl_o2_plus_o4_plus_48)
236
ENTRY(memcpy_retl_o2_plus_o4_plus_56)
237
add %o4, 56, %o4
238
ba,pt %xcc, __restore_asi
239
add %o2, %o4, %o0
240
ENDPROC(memcpy_retl_o2_plus_o4_plus_56)
241
ENTRY(memcpy_retl_o2_plus_o4_plus_64)
242
add %o4, 64, %o4
243
ba,pt %xcc, __restore_asi
244
add %o2, %o4, %o0
245
ENDPROC(memcpy_retl_o2_plus_o4_plus_64)
246
ENTRY(memcpy_retl_o2_plus_o5_plus_64)
247
add %o5, 64, %o5
248
ba,pt %xcc, __restore_asi
249
add %o2, %o5, %o0
250
ENDPROC(memcpy_retl_o2_plus_o5_plus_64)
251
ENTRY(memcpy_retl_o2_plus_o3_fp)
252
ba,pt %xcc, __restore_asi_fp
253
add %o2, %o3, %o0
254
ENDPROC(memcpy_retl_o2_plus_o3_fp)
255
ENTRY(memcpy_retl_o2_plus_o3_plus_1_fp)
256
add %o3, 1, %o3
257
ba,pt %xcc, __restore_asi_fp
258
add %o2, %o3, %o0
259
ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
260
ENTRY(memcpy_retl_o2_plus_o3_plus_4_fp)
261
add %o3, 4, %o3
262
ba,pt %xcc, __restore_asi_fp
263
add %o2, %o3, %o0
264
ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
265
ENTRY(memcpy_retl_o2_plus_o4_fp)
266
ba,pt %xcc, __restore_asi_fp
267
add %o2, %o4, %o0
268
ENDPROC(memcpy_retl_o2_plus_o4_fp)
269
ENTRY(memcpy_retl_o2_plus_o4_plus_8_fp)
270
add %o4, 8, %o4
271
ba,pt %xcc, __restore_asi_fp
272
add %o2, %o4, %o0
273
ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
274
ENTRY(memcpy_retl_o2_plus_o4_plus_16_fp)
275
add %o4, 16, %o4
276
ba,pt %xcc, __restore_asi_fp
277
add %o2, %o4, %o0
278
ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
279
ENTRY(memcpy_retl_o2_plus_o4_plus_24_fp)
280
add %o4, 24, %o4
281
ba,pt %xcc, __restore_asi_fp
282
add %o2, %o4, %o0
283
ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
284
ENTRY(memcpy_retl_o2_plus_o4_plus_32_fp)
285
add %o4, 32, %o4
286
ba,pt %xcc, __restore_asi_fp
287
add %o2, %o4, %o0
288
ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
289
ENTRY(memcpy_retl_o2_plus_o4_plus_40_fp)
290
add %o4, 40, %o4
291
ba,pt %xcc, __restore_asi_fp
292
add %o2, %o4, %o0
293
ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
294
ENTRY(memcpy_retl_o2_plus_o4_plus_48_fp)
295
add %o4, 48, %o4
296
ba,pt %xcc, __restore_asi_fp
297
add %o2, %o4, %o0
298
ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
299
ENTRY(memcpy_retl_o2_plus_o4_plus_56_fp)
300
add %o4, 56, %o4
301
ba,pt %xcc, __restore_asi_fp
302
add %o2, %o4, %o0
303
ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
304
ENTRY(memcpy_retl_o2_plus_o4_plus_64_fp)
305
add %o4, 64, %o4
306
ba,pt %xcc, __restore_asi_fp
307
add %o2, %o4, %o0
308
ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
309
ENTRY(memcpy_retl_o2_plus_o5_fp)
310
ba,pt %xcc, __restore_asi_fp
311
add %o2, %o5, %o0
312
ENDPROC(memcpy_retl_o2_plus_o5_fp)
313
ENTRY(memcpy_retl_o2_plus_o5_plus_64_fp)
314
add %o5, 64, %o5
315
ba,pt %xcc, __restore_asi_fp
316
add %o2, %o5, %o0
317
ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
318
ENTRY(memcpy_retl_o2_plus_o5_plus_56_fp)
319
add %o5, 56, %o5
320
ba,pt %xcc, __restore_asi_fp
321
add %o2, %o5, %o0
322
ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
323
ENTRY(memcpy_retl_o2_plus_o5_plus_48_fp)
324
add %o5, 48, %o5
325
ba,pt %xcc, __restore_asi_fp
326
add %o2, %o5, %o0
327
ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
328
ENTRY(memcpy_retl_o2_plus_o5_plus_40_fp)
329
add %o5, 40, %o5
330
ba,pt %xcc, __restore_asi_fp
331
add %o2, %o5, %o0
332
ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
333
ENTRY(memcpy_retl_o2_plus_o5_plus_32_fp)
334
add %o5, 32, %o5
335
ba,pt %xcc, __restore_asi_fp
336
add %o2, %o5, %o0
337
ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
338
ENTRY(memcpy_retl_o2_plus_o5_plus_24_fp)
339
add %o5, 24, %o5
340
ba,pt %xcc, __restore_asi_fp
341
add %o2, %o5, %o0
342
ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
343
ENTRY(memcpy_retl_o2_plus_o5_plus_16_fp)
344
add %o5, 16, %o5
345
ba,pt %xcc, __restore_asi_fp
346
add %o2, %o5, %o0
347
ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
348
ENTRY(memcpy_retl_o2_plus_o5_plus_8_fp)
349
add %o5, 8, %o5
350
ba,pt %xcc, __restore_asi_fp
351
add %o2, %o5, %o0
352
ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
353
354
#endif
355
356