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