xref: /openbmc/linux/arch/sparc/lib/Memcpy_utils.S (revision 34060b8f)
1de5c073eSBabu Moger#ifndef __ASM_MEMCPY_UTILS
2de5c073eSBabu Moger#define __ASM_MEMCPY_UTILS
3de5c073eSBabu Moger
4de5c073eSBabu Moger#include <linux/linkage.h>
5de5c073eSBabu Moger#include <asm/asi.h>
6de5c073eSBabu Moger#include <asm/visasm.h>
7de5c073eSBabu Moger
8de5c073eSBabu MogerENTRY(__restore_asi_fp)
9de5c073eSBabu Moger	VISExitHalf
10de5c073eSBabu Moger	retl
11de5c073eSBabu Moger	 wr	%g0, ASI_AIUS, %asi
12de5c073eSBabu MogerENDPROC(__restore_asi_fp)
13de5c073eSBabu Moger
14de5c073eSBabu MogerENTRY(__restore_asi)
15de5c073eSBabu Moger	retl
16de5c073eSBabu Moger	 wr	%g0, ASI_AIUS, %asi
17de5c073eSBabu MogerENDPROC(__restore_asi)
18de5c073eSBabu Moger
191ab32693SBabu MogerENTRY(memcpy_retl_o2)
20de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
21de5c073eSBabu Moger	 mov	%o2, %o0
221ab32693SBabu MogerENDPROC(memcpy_retl_o2)
231ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_1)
24de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
25de5c073eSBabu Moger	 add	%o2, 1, %o0
261ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_1)
2734060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_3)
2834060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
2934060b8fSBabu Moger	 add	%o2, 3, %o0
3034060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_3)
311ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_4)
32de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
33de5c073eSBabu Moger	 add	%o2, 4, %o0
341ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_4)
3534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_5)
3634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
3734060b8fSBabu Moger	 add	%o2, 5, %o0
3834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_5)
3934060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_6)
4034060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
4134060b8fSBabu Moger	 add	%o2, 6, %o0
4234060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_6)
4334060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_7)
4434060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
4534060b8fSBabu Moger	 add	%o2, 7, %o0
4634060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_7)
4734060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_8)
4834060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
4934060b8fSBabu Moger	 add	%o2, 8, %o0
5034060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_8)
5134060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_15)
5234060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
5334060b8fSBabu Moger	 add	%o2, 15, %o0
5434060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_15)
5534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_15_8)
5634060b8fSBabu Moger	 add	%o2, 15, %o2
5734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
5834060b8fSBabu Moger	 add	%o2, 8, %o0
5934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_15_8)
6034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_16)
6134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
6234060b8fSBabu Moger	 add	%o2, 16, %o0
6334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_16)
6434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_24)
6534060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
6634060b8fSBabu Moger	 add	%o2, 24, %o0
6734060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_24)
6834060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_31)
6934060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
7034060b8fSBabu Moger	 add	%o2, 31, %o0
7134060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_31)
7234060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_32)
7334060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
7434060b8fSBabu Moger	 add	%o2, 32, %o0
7534060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_32)
7634060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_31_32)
7734060b8fSBabu Moger	add	%o2, 31, %o2
7834060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
7934060b8fSBabu Moger	 add	%o2, 32, %o0
8034060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_31_32)
8134060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_31_24)
8234060b8fSBabu Moger	add	%o2, 31, %o2
8334060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
8434060b8fSBabu Moger	 add	%o2, 24, %o0
8534060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_31_24)
8634060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_31_16)
8734060b8fSBabu Moger	add	%o2, 31, %o2
8834060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
8934060b8fSBabu Moger	 add	%o2, 16, %o0
9034060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_31_16)
9134060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_31_8)
9234060b8fSBabu Moger	add	%o2, 31, %o2
9334060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
9434060b8fSBabu Moger	 add	%o2, 8, %o0
9534060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_31_8)
9634060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63)
9734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
9834060b8fSBabu Moger	 add	%o2, 63, %o0
9934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63)
10034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_64)
10134060b8fSBabu Moger	 add	%o2, 63, %o2
10234060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
10334060b8fSBabu Moger	 add	%o2, 64, %o0
10434060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_64)
10534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_56)
10634060b8fSBabu Moger	 add	%o2, 63, %o2
10734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
10834060b8fSBabu Moger	 add	%o2, 56, %o0
10934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_56)
11034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_48)
11134060b8fSBabu Moger	 add	%o2, 63, %o2
11234060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
11334060b8fSBabu Moger	 add	%o2, 48, %o0
11434060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_48)
11534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_40)
11634060b8fSBabu Moger	 add	%o2, 63, %o2
11734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
11834060b8fSBabu Moger	 add	%o2, 40, %o0
11934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_40)
12034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_32)
12134060b8fSBabu Moger	 add	%o2, 63, %o2
12234060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
12334060b8fSBabu Moger	 add	%o2, 32, %o0
12434060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_32)
12534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_24)
12634060b8fSBabu Moger	 add	%o2, 63, %o2
12734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
12834060b8fSBabu Moger	 add	%o2, 24, %o0
12934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_24)
13034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_16)
13134060b8fSBabu Moger	 add	%o2, 63, %o2
13234060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
13334060b8fSBabu Moger	 add	%o2, 16, %o0
13434060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_16)
13534060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_63_8)
13634060b8fSBabu Moger	 add	%o2, 63, %o2
13734060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
13834060b8fSBabu Moger	 add	%o2, 8, %o0
13934060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_63_8)
1401ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5)
141de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
142de5c073eSBabu Moger	 add	%o2, %o5, %o0
1431ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5)
14434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_1)
14534060b8fSBabu Moger	add	%o5, 1, %o5
14634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
14734060b8fSBabu Moger	 add	%o2, %o5, %o0
14834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_1)
1491ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_4)
150de5c073eSBabu Moger	add	%o5, 4, %o5
151de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
152de5c073eSBabu Moger	 add	%o2, %o5, %o0
1531ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_4)
1541ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_8)
155de5c073eSBabu Moger	add	%o5, 8, %o5
156de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
157de5c073eSBabu Moger	 add	%o2, %o5, %o0
1581ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_8)
1591ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_16)
160de5c073eSBabu Moger	add	%o5, 16, %o5
161de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
162de5c073eSBabu Moger	 add	%o2, %o5, %o0
1631ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_16)
1641ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_24)
165de5c073eSBabu Moger	add	%o5, 24, %o5
166de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
167de5c073eSBabu Moger	 add	%o2, %o5, %o0
1681ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_24)
1691ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_32)
170de5c073eSBabu Moger	add	%o5, 32, %o5
171de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
172de5c073eSBabu Moger	 add	%o2, %o5, %o0
1731ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_32)
17434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_64)
17534060b8fSBabu Moger	add	%o5, 32, %o5
17634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
17734060b8fSBabu Moger	 add	%o2, %o5, %o0
17834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_64)
1791ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_g1)
180de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
181de5c073eSBabu Moger	 add	%o2, %g1, %o0
1821ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_g1)
1831ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_g1_plus_1)
184de5c073eSBabu Moger	add	%g1, 1, %g1
185de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
186de5c073eSBabu Moger	 add	%o2, %g1, %o0
1871ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_g1_plus_1)
1881ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_g1_plus_8)
189de5c073eSBabu Moger	add	%g1, 8, %g1
190de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
191de5c073eSBabu Moger	 add	%o2, %g1, %o0
1921ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_g1_plus_8)
1931ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4)
194de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
195de5c073eSBabu Moger	 add	%o2, %o4, %o0
1961ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4)
1971ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_8)
198de5c073eSBabu Moger	add	%o4, 8, %o4
199de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
200de5c073eSBabu Moger	 add	%o2, %o4, %o0
2011ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_8)
2021ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_16)
203de5c073eSBabu Moger	add	%o4, 16, %o4
204de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
205de5c073eSBabu Moger	 add	%o2, %o4, %o0
2061ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_16)
2071ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_24)
208de5c073eSBabu Moger	add	%o4, 24, %o4
209de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
210de5c073eSBabu Moger	 add	%o2, %o4, %o0
2111ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_24)
2121ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_32)
213de5c073eSBabu Moger	add	%o4, 32, %o4
214de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
215de5c073eSBabu Moger	 add	%o2, %o4, %o0
2161ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_32)
2171ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_40)
218de5c073eSBabu Moger	add	%o4, 40, %o4
219de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
220de5c073eSBabu Moger	 add	%o2, %o4, %o0
2211ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_40)
2221ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_48)
223de5c073eSBabu Moger	add	%o4, 48, %o4
224de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
225de5c073eSBabu Moger	 add	%o2, %o4, %o0
2261ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_48)
2271ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_56)
228de5c073eSBabu Moger	add	%o4, 56, %o4
229de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
230de5c073eSBabu Moger	 add	%o2, %o4, %o0
2311ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_56)
2321ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_64)
233de5c073eSBabu Moger	add	%o4, 64, %o4
234de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi
235de5c073eSBabu Moger	 add	%o2, %o4, %o0
2361ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_64)
23734060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_64)
23834060b8fSBabu Moger	add	%o5, 64, %o5
23934060b8fSBabu Moger	ba,pt	%xcc, __restore_asi
24034060b8fSBabu Moger	 add	%o2, %o5, %o0
24134060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_64)
24234060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o3_fp)
24334060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
24434060b8fSBabu Moger	 add	%o2, %o3, %o0
24534060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o3_fp)
24634060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o3_plus_1_fp)
24734060b8fSBabu Moger	add	%o3, 1, %o3
24834060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
24934060b8fSBabu Moger	 add	%o2, %o3, %o0
25034060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp)
25134060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o3_plus_4_fp)
25234060b8fSBabu Moger	add	%o3, 4, %o3
25334060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
25434060b8fSBabu Moger	 add	%o2, %o3, %o0
25534060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp)
2561ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_fp)
257de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
258de5c073eSBabu Moger	 add	%o2, %o4, %o0
2591ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_fp)
2601ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_8_fp)
261de5c073eSBabu Moger	add	%o4, 8, %o4
262de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
263de5c073eSBabu Moger	 add	%o2, %o4, %o0
2641ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp)
2651ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_16_fp)
266de5c073eSBabu Moger	add	%o4, 16, %o4
267de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
268de5c073eSBabu Moger	 add	%o2, %o4, %o0
2691ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp)
2701ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_24_fp)
271de5c073eSBabu Moger	add	%o4, 24, %o4
272de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
273de5c073eSBabu Moger	 add	%o2, %o4, %o0
2741ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp)
2751ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_32_fp)
276de5c073eSBabu Moger	add	%o4, 32, %o4
277de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
278de5c073eSBabu Moger	 add	%o2, %o4, %o0
2791ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp)
2801ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_40_fp)
281de5c073eSBabu Moger	add	%o4, 40, %o4
282de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
283de5c073eSBabu Moger	 add	%o2, %o4, %o0
2841ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp)
2851ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_48_fp)
286de5c073eSBabu Moger	add	%o4, 48, %o4
287de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
288de5c073eSBabu Moger	 add	%o2, %o4, %o0
2891ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp)
2901ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_56_fp)
291de5c073eSBabu Moger	add	%o4, 56, %o4
292de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
293de5c073eSBabu Moger	 add	%o2, %o4, %o0
2941ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp)
2951ab32693SBabu MogerENTRY(memcpy_retl_o2_plus_o4_plus_64_fp)
296de5c073eSBabu Moger	add	%o4, 64, %o4
297de5c073eSBabu Moger	ba,pt	%xcc, __restore_asi_fp
298de5c073eSBabu Moger	 add	%o2, %o4, %o0
2991ab32693SBabu MogerENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp)
30034060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_fp)
30134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
30234060b8fSBabu Moger	 add	%o2, %o5, %o0
30334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_fp)
30434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_64_fp)
30534060b8fSBabu Moger	add	%o5, 64, %o5
30634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
30734060b8fSBabu Moger	 add	%o2, %o5, %o0
30834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp)
30934060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_56_fp)
31034060b8fSBabu Moger	add	%o5, 56, %o5
31134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
31234060b8fSBabu Moger	 add	%o2, %o5, %o0
31334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp)
31434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_48_fp)
31534060b8fSBabu Moger	add	%o5, 48, %o5
31634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
31734060b8fSBabu Moger	 add	%o2, %o5, %o0
31834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp)
31934060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_40_fp)
32034060b8fSBabu Moger	add	%o5, 40, %o5
32134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
32234060b8fSBabu Moger	 add	%o2, %o5, %o0
32334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp)
32434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_32_fp)
32534060b8fSBabu Moger	add	%o5, 32, %o5
32634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
32734060b8fSBabu Moger	 add	%o2, %o5, %o0
32834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp)
32934060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_24_fp)
33034060b8fSBabu Moger	add	%o5, 24, %o5
33134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
33234060b8fSBabu Moger	 add	%o2, %o5, %o0
33334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp)
33434060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_16_fp)
33534060b8fSBabu Moger	add	%o5, 16, %o5
33634060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
33734060b8fSBabu Moger	 add	%o2, %o5, %o0
33834060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp)
33934060b8fSBabu MogerENTRY(memcpy_retl_o2_plus_o5_plus_8_fp)
34034060b8fSBabu Moger	add	%o5, 8, %o5
34134060b8fSBabu Moger	ba,pt	%xcc, __restore_asi_fp
34234060b8fSBabu Moger	 add	%o2, %o5, %o0
34334060b8fSBabu MogerENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp)
344de5c073eSBabu Moger
345de5c073eSBabu Moger#endif
346