Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
8ENTRY(__restore_asi_fp)
9 VISExitHalf
10 retl
11 wr %g0, ASI_AIUS, %asi
12ENDPROC(__restore_asi_fp)
13
14ENTRY(__restore_asi)
15 retl
16 wr %g0, ASI_AIUS, %asi
17ENDPROC(__restore_asi)
18
19ENTRY(memcpy_retl_o2)
20 ba,pt %xcc, __restore_asi
21 mov %o2, %o0
22ENDPROC(memcpy_retl_o2)
23ENTRY(memcpy_retl_o2_plus_1)
24 ba,pt %xcc, __restore_asi
25 add %o2, 1, %o0
26ENDPROC(memcpy_retl_o2_plus_1)
27ENTRY(memcpy_retl_o2_plus_3)
28 ba,pt %xcc, __restore_asi
29 add %o2, 3, %o0
30ENDPROC(memcpy_retl_o2_plus_3)
31ENTRY(memcpy_retl_o2_plus_4)
32 ba,pt %xcc, __restore_asi
33 add %o2, 4, %o0
34ENDPROC(memcpy_retl_o2_plus_4)
35ENTRY(memcpy_retl_o2_plus_5)
36 ba,pt %xcc, __restore_asi
37 add %o2, 5, %o0
38ENDPROC(memcpy_retl_o2_plus_5)
39ENTRY(memcpy_retl_o2_plus_6)
40 ba,pt %xcc, __restore_asi
41 add %o2, 6, %o0
42ENDPROC(memcpy_retl_o2_plus_6)
43ENTRY(memcpy_retl_o2_plus_7)
44 ba,pt %xcc, __restore_asi
45 add %o2, 7, %o0
46ENDPROC(memcpy_retl_o2_plus_7)
47ENTRY(memcpy_retl_o2_plus_8)
48 ba,pt %xcc, __restore_asi
49 add %o2, 8, %o0
50ENDPROC(memcpy_retl_o2_plus_8)
51ENTRY(memcpy_retl_o2_plus_15)
52 ba,pt %xcc, __restore_asi
53 add %o2, 15, %o0
54ENDPROC(memcpy_retl_o2_plus_15)
55ENTRY(memcpy_retl_o2_plus_15_8)
56 add %o2, 15, %o2
57 ba,pt %xcc, __restore_asi
58 add %o2, 8, %o0
59ENDPROC(memcpy_retl_o2_plus_15_8)
60ENTRY(memcpy_retl_o2_plus_16)
61 ba,pt %xcc, __restore_asi
62 add %o2, 16, %o0
63ENDPROC(memcpy_retl_o2_plus_16)
64ENTRY(memcpy_retl_o2_plus_24)
65 ba,pt %xcc, __restore_asi
66 add %o2, 24, %o0
67ENDPROC(memcpy_retl_o2_plus_24)
68ENTRY(memcpy_retl_o2_plus_31)
69 ba,pt %xcc, __restore_asi
70 add %o2, 31, %o0
71ENDPROC(memcpy_retl_o2_plus_31)
72ENTRY(memcpy_retl_o2_plus_32)
73 ba,pt %xcc, __restore_asi
74 add %o2, 32, %o0
75ENDPROC(memcpy_retl_o2_plus_32)
76ENTRY(memcpy_retl_o2_plus_31_32)
77 add %o2, 31, %o2
78 ba,pt %xcc, __restore_asi
79 add %o2, 32, %o0
80ENDPROC(memcpy_retl_o2_plus_31_32)
81ENTRY(memcpy_retl_o2_plus_31_24)
82 add %o2, 31, %o2
83 ba,pt %xcc, __restore_asi
84 add %o2, 24, %o0
85ENDPROC(memcpy_retl_o2_plus_31_24)
86ENTRY(memcpy_retl_o2_plus_31_16)
87 add %o2, 31, %o2
88 ba,pt %xcc, __restore_asi
89 add %o2, 16, %o0
90ENDPROC(memcpy_retl_o2_plus_31_16)
91ENTRY(memcpy_retl_o2_plus_31_8)
92 add %o2, 31, %o2
93 ba,pt %xcc, __restore_asi
94 add %o2, 8, %o0
95ENDPROC(memcpy_retl_o2_plus_31_8)
96ENTRY(memcpy_retl_o2_plus_63)
97 ba,pt %xcc, __restore_asi
98 add %o2, 63, %o0
99ENDPROC(memcpy_retl_o2_plus_63)
100ENTRY(memcpy_retl_o2_plus_63_64)
101 add %o2, 63, %o2
102 ba,pt %xcc, __restore_asi
103 add %o2, 64, %o0
104ENDPROC(memcpy_retl_o2_plus_63_64)
105ENTRY(memcpy_retl_o2_plus_63_56)
106 add %o2, 63, %o2
107 ba,pt %xcc, __restore_asi
108 add %o2, 56, %o0
109ENDPROC(memcpy_retl_o2_plus_63_56)
110ENTRY(memcpy_retl_o2_plus_63_48)
111 add %o2, 63, %o2
112 ba,pt %xcc, __restore_asi
113 add %o2, 48, %o0
114ENDPROC(memcpy_retl_o2_plus_63_48)
115ENTRY(memcpy_retl_o2_plus_63_40)
116 add %o2, 63, %o2
117 ba,pt %xcc, __restore_asi
118 add %o2, 40, %o0
119ENDPROC(memcpy_retl_o2_plus_63_40)
120ENTRY(memcpy_retl_o2_plus_63_32)
121 add %o2, 63, %o2
122 ba,pt %xcc, __restore_asi
123 add %o2, 32, %o0
124ENDPROC(memcpy_retl_o2_plus_63_32)
125ENTRY(memcpy_retl_o2_plus_63_24)
126 add %o2, 63, %o2
127 ba,pt %xcc, __restore_asi
128 add %o2, 24, %o0
129ENDPROC(memcpy_retl_o2_plus_63_24)
130ENTRY(memcpy_retl_o2_plus_63_16)
131 add %o2, 63, %o2
132 ba,pt %xcc, __restore_asi
133 add %o2, 16, %o0
134ENDPROC(memcpy_retl_o2_plus_63_16)
135ENTRY(memcpy_retl_o2_plus_63_8)
136 add %o2, 63, %o2
137 ba,pt %xcc, __restore_asi
138 add %o2, 8, %o0
139ENDPROC(memcpy_retl_o2_plus_63_8)
140ENTRY(memcpy_retl_o2_plus_o3)
141 ba,pt %xcc, __restore_asi
142 add %o2, %o3, %o0
143ENDPROC(memcpy_retl_o2_plus_o3)
144ENTRY(memcpy_retl_o2_plus_o3_plus_1)
145 add %o3, 1, %o3
146 ba,pt %xcc, __restore_asi
147 add %o2, %o3, %o0
148ENDPROC(memcpy_retl_o2_plus_o3_plus_1)
149ENTRY(memcpy_retl_o2_plus_o5)
150 ba,pt %xcc, __restore_asi
151 add %o2, %o5, %o0
152ENDPROC(memcpy_retl_o2_plus_o5)
153ENTRY(memcpy_retl_o2_plus_o5_plus_1)
154 add %o5, 1, %o5
155 ba,pt %xcc, __restore_asi
156 add %o2, %o5, %o0
157ENDPROC(memcpy_retl_o2_plus_o5_plus_1)
158ENTRY(memcpy_retl_o2_plus_o5_plus_4)
159 add %o5, 4, %o5
160 ba,pt %xcc, __restore_asi
161 add %o2, %o5, %o0
162ENDPROC(memcpy_retl_o2_plus_o5_plus_4)
163ENTRY(memcpy_retl_o2_plus_o5_plus_8)
164 add %o5, 8, %o5
165 ba,pt %xcc, __restore_asi
166 add %o2, %o5, %o0
167ENDPROC(memcpy_retl_o2_plus_o5_plus_8)
168ENTRY(memcpy_retl_o2_plus_o5_plus_16)
169 add %o5, 16, %o5
170 ba,pt %xcc, __restore_asi
171 add %o2, %o5, %o0
172ENDPROC(memcpy_retl_o2_plus_o5_plus_16)
173ENTRY(memcpy_retl_o2_plus_o5_plus_24)
174 add %o5, 24, %o5
175 ba,pt %xcc, __restore_asi
176 add %o2, %o5, %o0
177ENDPROC(memcpy_retl_o2_plus_o5_plus_24)
178ENTRY(memcpy_retl_o2_plus_o5_plus_32)
179 add %o5, 32, %o5
180 ba,pt %xcc, __restore_asi
181 add %o2, %o5, %o0
182ENDPROC(memcpy_retl_o2_plus_o5_plus_32)
183ENTRY(memcpy_retl_o2_plus_o5_64)
184 add %o5, 32, %o5
185 ba,pt %xcc, __restore_asi
186 add %o2, %o5, %o0
187ENDPROC(memcpy_retl_o2_plus_o5_64)
188ENTRY(memcpy_retl_o2_plus_g1)
189 ba,pt %xcc, __restore_asi
190 add %o2, %g1, %o0
191ENDPROC(memcpy_retl_o2_plus_g1)
192ENTRY(memcpy_retl_o2_plus_g1_plus_1)
193 add %g1, 1, %g1
194 ba,pt %xcc, __restore_asi
195 add %o2, %g1, %o0
196ENDPROC(memcpy_retl_o2_plus_g1_plus_1)
197ENTRY(memcpy_retl_o2_plus_g1_plus_8)
198 add %g1, 8, %g1
199 ba,pt %xcc, __restore_asi
200 add %o2, %g1, %o0
201ENDPROC(memcpy_retl_o2_plus_g1_plus_8)
202ENTRY(memcpy_retl_o2_plus_o4)
203 ba,pt %xcc, __restore_asi
204 add %o2, %o4, %o0
205ENDPROC(memcpy_retl_o2_plus_o4)
206ENTRY(memcpy_retl_o2_plus_o4_plus_8)
207 add %o4, 8, %o4
208 ba,pt %xcc, __restore_asi
209 add %o2, %o4, %o0
210ENDPROC(memcpy_retl_o2_plus_o4_plus_8)
211ENTRY(memcpy_retl_o2_plus_o4_plus_16)
212 add %o4, 16, %o4
213 ba,pt %xcc, __restore_asi
214 add %o2, %o4, %o0
215ENDPROC(memcpy_retl_o2_plus_o4_plus_16)
216ENTRY(memcpy_retl_o2_plus_o4_plus_24)
217 add %o4, 24, %o4
218 ba,pt %xcc, __restore_asi
219 add %o2, %o4, %o0
220ENDPROC(memcpy_retl_o2_plus_o4_plus_24)
221ENTRY(memcpy_retl_o2_plus_o4_plus_32)
222 add %o4, 32, %o4
223 ba,pt %xcc, __restore_asi
224 add %o2, %o4, %o0
225ENDPROC(memcpy_retl_o2_plus_o4_plus_32)
226ENTRY(memcpy_retl_o2_plus_o4_plus_40)
227 add %o4, 40, %o4
228 ba,pt %xcc, __restore_asi
229 add %o2, %o4, %o0
230ENDPROC(memcpy_retl_o2_plus_o4_plus_40)
231ENTRY(memcpy_retl_o2_plus_o4_plus_48)
232 add %o4, 48, %o4
233 ba,pt %xcc, __restore_asi
234 add %o2, %o4, %o0
235ENDPROC(memcpy_retl_o2_plus_o4_plus_48)
236ENTRY(memcpy_retl_o2_plus_o4_plus_56)
237 add %o4, 56, %o4
238 ba,pt %xcc, __restore_asi
239 add %o2, %o4, %o0
240ENDPROC(memcpy_retl_o2_plus_o4_plus_56)
241ENTRY(memcpy_retl_o2_plus_o4_plus_64)
242 add %o4, 64, %o4
243 ba,pt %xcc, __restore_asi
244 add %o2, %o4, %o0
245ENDPROC(memcpy_retl_o2_plus_o4_plus_64)
246ENTRY(memcpy_retl_o2_plus_o5_plus_64)
247 add %o5, 64, %o5
248 ba,pt %xcc, __restore_asi
249 add %o2, %o5, %o0
250ENDPROC(memcpy_retl_o2_plus_o5_plus_64)
251ENTRY(memcpy_retl_o2_plus_o3_fp)
252 ba,pt %xcc, __restore_asi_fp
253 add %o2, %o3, %o0
254ENDPROC(memcpy_retl_o2_plus_o3_fp)
255ENTRY(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
259ENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
260ENTRY(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
264ENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
265ENTRY(memcpy_retl_o2_plus_o4_fp)
266 ba,pt %xcc, __restore_asi_fp
267 add %o2, %o4, %o0
268ENDPROC(memcpy_retl_o2_plus_o4_fp)
269ENTRY(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
273ENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
274ENTRY(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
278ENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
279ENTRY(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
283ENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
284ENTRY(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
288ENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
289ENTRY(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
293ENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
294ENTRY(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
298ENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
299ENTRY(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
303ENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
304ENTRY(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
308ENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
309ENTRY(memcpy_retl_o2_plus_o5_fp)
310 ba,pt %xcc, __restore_asi_fp
311 add %o2, %o5, %o0
312ENDPROC(memcpy_retl_o2_plus_o5_fp)
313ENTRY(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
317ENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
318ENTRY(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
322ENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
323ENTRY(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
327ENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
328ENTRY(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
332ENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
333ENTRY(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
337ENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
338ENTRY(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
342ENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
343ENTRY(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
347ENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
348ENTRY(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
352ENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
353
354#endif