Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sparc/lib/Memcpy_utils.S
26486 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_o5)
141
ba,pt %xcc, __restore_asi
142
add %o2, %o5, %o0
143
ENDPROC(memcpy_retl_o2_plus_o5)
144
ENTRY(memcpy_retl_o2_plus_o5_plus_1)
145
add %o5, 1, %o5
146
ba,pt %xcc, __restore_asi
147
add %o2, %o5, %o0
148
ENDPROC(memcpy_retl_o2_plus_o5_plus_1)
149
ENTRY(memcpy_retl_o2_plus_o5_plus_4)
150
add %o5, 4, %o5
151
ba,pt %xcc, __restore_asi
152
add %o2, %o5, %o0
153
ENDPROC(memcpy_retl_o2_plus_o5_plus_4)
154
ENTRY(memcpy_retl_o2_plus_o5_plus_8)
155
add %o5, 8, %o5
156
ba,pt %xcc, __restore_asi
157
add %o2, %o5, %o0
158
ENDPROC(memcpy_retl_o2_plus_o5_plus_8)
159
ENTRY(memcpy_retl_o2_plus_o5_plus_16)
160
add %o5, 16, %o5
161
ba,pt %xcc, __restore_asi
162
add %o2, %o5, %o0
163
ENDPROC(memcpy_retl_o2_plus_o5_plus_16)
164
ENTRY(memcpy_retl_o2_plus_o5_plus_24)
165
add %o5, 24, %o5
166
ba,pt %xcc, __restore_asi
167
add %o2, %o5, %o0
168
ENDPROC(memcpy_retl_o2_plus_o5_plus_24)
169
ENTRY(memcpy_retl_o2_plus_o5_plus_32)
170
add %o5, 32, %o5
171
ba,pt %xcc, __restore_asi
172
add %o2, %o5, %o0
173
ENDPROC(memcpy_retl_o2_plus_o5_plus_32)
174
ENTRY(memcpy_retl_o2_plus_o5_64)
175
add %o5, 32, %o5
176
ba,pt %xcc, __restore_asi
177
add %o2, %o5, %o0
178
ENDPROC(memcpy_retl_o2_plus_o5_64)
179
ENTRY(memcpy_retl_o2_plus_g1)
180
ba,pt %xcc, __restore_asi
181
add %o2, %g1, %o0
182
ENDPROC(memcpy_retl_o2_plus_g1)
183
ENTRY(memcpy_retl_o2_plus_g1_plus_1)
184
add %g1, 1, %g1
185
ba,pt %xcc, __restore_asi
186
add %o2, %g1, %o0
187
ENDPROC(memcpy_retl_o2_plus_g1_plus_1)
188
ENTRY(memcpy_retl_o2_plus_g1_plus_8)
189
add %g1, 8, %g1
190
ba,pt %xcc, __restore_asi
191
add %o2, %g1, %o0
192
ENDPROC(memcpy_retl_o2_plus_g1_plus_8)
193
ENTRY(memcpy_retl_o2_plus_o4)
194
ba,pt %xcc, __restore_asi
195
add %o2, %o4, %o0
196
ENDPROC(memcpy_retl_o2_plus_o4)
197
ENTRY(memcpy_retl_o2_plus_o4_plus_8)
198
add %o4, 8, %o4
199
ba,pt %xcc, __restore_asi
200
add %o2, %o4, %o0
201
ENDPROC(memcpy_retl_o2_plus_o4_plus_8)
202
ENTRY(memcpy_retl_o2_plus_o4_plus_16)
203
add %o4, 16, %o4
204
ba,pt %xcc, __restore_asi
205
add %o2, %o4, %o0
206
ENDPROC(memcpy_retl_o2_plus_o4_plus_16)
207
ENTRY(memcpy_retl_o2_plus_o4_plus_24)
208
add %o4, 24, %o4
209
ba,pt %xcc, __restore_asi
210
add %o2, %o4, %o0
211
ENDPROC(memcpy_retl_o2_plus_o4_plus_24)
212
ENTRY(memcpy_retl_o2_plus_o4_plus_32)
213
add %o4, 32, %o4
214
ba,pt %xcc, __restore_asi
215
add %o2, %o4, %o0
216
ENDPROC(memcpy_retl_o2_plus_o4_plus_32)
217
ENTRY(memcpy_retl_o2_plus_o4_plus_40)
218
add %o4, 40, %o4
219
ba,pt %xcc, __restore_asi
220
add %o2, %o4, %o0
221
ENDPROC(memcpy_retl_o2_plus_o4_plus_40)
222
ENTRY(memcpy_retl_o2_plus_o4_plus_48)
223
add %o4, 48, %o4
224
ba,pt %xcc, __restore_asi
225
add %o2, %o4, %o0
226
ENDPROC(memcpy_retl_o2_plus_o4_plus_48)
227
ENTRY(memcpy_retl_o2_plus_o4_plus_56)
228
add %o4, 56, %o4
229
ba,pt %xcc, __restore_asi
230
add %o2, %o4, %o0
231
ENDPROC(memcpy_retl_o2_plus_o4_plus_56)
232
ENTRY(memcpy_retl_o2_plus_o4_plus_64)
233
add %o4, 64, %o4
234
ba,pt %xcc, __restore_asi
235
add %o2, %o4, %o0
236
ENDPROC(memcpy_retl_o2_plus_o4_plus_64)
237
ENTRY(memcpy_retl_o2_plus_o5_plus_64)
238
add %o5, 64, %o5
239
ba,pt %xcc, __restore_asi
240
add %o2, %o5, %o0
241
ENDPROC(memcpy_retl_o2_plus_o5_plus_64)
242
ENTRY(memcpy_retl_o2_plus_o3_fp)
243
ba,pt %xcc, __restore_asi_fp
244
add %o2, %o3, %o0
245
ENDPROC(memcpy_retl_o2_plus_o3_fp)
246
ENTRY(memcpy_retl_o2_plus_o3_plus_1_fp)
247
add %o3, 1, %o3
248
ba,pt %xcc, __restore_asi_fp
249
add %o2, %o3, %o0
250
ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
251
ENTRY(memcpy_retl_o2_plus_o3_plus_4_fp)
252
add %o3, 4, %o3
253
ba,pt %xcc, __restore_asi_fp
254
add %o2, %o3, %o0
255
ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
256
ENTRY(memcpy_retl_o2_plus_o4_fp)
257
ba,pt %xcc, __restore_asi_fp
258
add %o2, %o4, %o0
259
ENDPROC(memcpy_retl_o2_plus_o4_fp)
260
ENTRY(memcpy_retl_o2_plus_o4_plus_8_fp)
261
add %o4, 8, %o4
262
ba,pt %xcc, __restore_asi_fp
263
add %o2, %o4, %o0
264
ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
265
ENTRY(memcpy_retl_o2_plus_o4_plus_16_fp)
266
add %o4, 16, %o4
267
ba,pt %xcc, __restore_asi_fp
268
add %o2, %o4, %o0
269
ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
270
ENTRY(memcpy_retl_o2_plus_o4_plus_24_fp)
271
add %o4, 24, %o4
272
ba,pt %xcc, __restore_asi_fp
273
add %o2, %o4, %o0
274
ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
275
ENTRY(memcpy_retl_o2_plus_o4_plus_32_fp)
276
add %o4, 32, %o4
277
ba,pt %xcc, __restore_asi_fp
278
add %o2, %o4, %o0
279
ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
280
ENTRY(memcpy_retl_o2_plus_o4_plus_40_fp)
281
add %o4, 40, %o4
282
ba,pt %xcc, __restore_asi_fp
283
add %o2, %o4, %o0
284
ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
285
ENTRY(memcpy_retl_o2_plus_o4_plus_48_fp)
286
add %o4, 48, %o4
287
ba,pt %xcc, __restore_asi_fp
288
add %o2, %o4, %o0
289
ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
290
ENTRY(memcpy_retl_o2_plus_o4_plus_56_fp)
291
add %o4, 56, %o4
292
ba,pt %xcc, __restore_asi_fp
293
add %o2, %o4, %o0
294
ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
295
ENTRY(memcpy_retl_o2_plus_o4_plus_64_fp)
296
add %o4, 64, %o4
297
ba,pt %xcc, __restore_asi_fp
298
add %o2, %o4, %o0
299
ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
300
ENTRY(memcpy_retl_o2_plus_o5_fp)
301
ba,pt %xcc, __restore_asi_fp
302
add %o2, %o5, %o0
303
ENDPROC(memcpy_retl_o2_plus_o5_fp)
304
ENTRY(memcpy_retl_o2_plus_o5_plus_64_fp)
305
add %o5, 64, %o5
306
ba,pt %xcc, __restore_asi_fp
307
add %o2, %o5, %o0
308
ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
309
ENTRY(memcpy_retl_o2_plus_o5_plus_56_fp)
310
add %o5, 56, %o5
311
ba,pt %xcc, __restore_asi_fp
312
add %o2, %o5, %o0
313
ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
314
ENTRY(memcpy_retl_o2_plus_o5_plus_48_fp)
315
add %o5, 48, %o5
316
ba,pt %xcc, __restore_asi_fp
317
add %o2, %o5, %o0
318
ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
319
ENTRY(memcpy_retl_o2_plus_o5_plus_40_fp)
320
add %o5, 40, %o5
321
ba,pt %xcc, __restore_asi_fp
322
add %o2, %o5, %o0
323
ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
324
ENTRY(memcpy_retl_o2_plus_o5_plus_32_fp)
325
add %o5, 32, %o5
326
ba,pt %xcc, __restore_asi_fp
327
add %o2, %o5, %o0
328
ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
329
ENTRY(memcpy_retl_o2_plus_o5_plus_24_fp)
330
add %o5, 24, %o5
331
ba,pt %xcc, __restore_asi_fp
332
add %o2, %o5, %o0
333
ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
334
ENTRY(memcpy_retl_o2_plus_o5_plus_16_fp)
335
add %o5, 16, %o5
336
ba,pt %xcc, __restore_asi_fp
337
add %o2, %o5, %o0
338
ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
339
ENTRY(memcpy_retl_o2_plus_o5_plus_8_fp)
340
add %o5, 8, %o5
341
ba,pt %xcc, __restore_asi_fp
342
add %o2, %o5, %o0
343
ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
344
345
#endif
346
347