18c2ecf20Sopenharmony_ci#ifndef __ASM_MEMCPY_UTILS 28c2ecf20Sopenharmony_ci#define __ASM_MEMCPY_UTILS 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#include <linux/linkage.h> 58c2ecf20Sopenharmony_ci#include <asm/asi.h> 68c2ecf20Sopenharmony_ci#include <asm/visasm.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciENTRY(__restore_asi_fp) 98c2ecf20Sopenharmony_ci VISExitHalf 108c2ecf20Sopenharmony_ci retl 118c2ecf20Sopenharmony_ci wr %g0, ASI_AIUS, %asi 128c2ecf20Sopenharmony_ciENDPROC(__restore_asi_fp) 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciENTRY(__restore_asi) 158c2ecf20Sopenharmony_ci retl 168c2ecf20Sopenharmony_ci wr %g0, ASI_AIUS, %asi 178c2ecf20Sopenharmony_ciENDPROC(__restore_asi) 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2) 208c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 218c2ecf20Sopenharmony_ci mov %o2, %o0 228c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2) 238c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_1) 248c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 258c2ecf20Sopenharmony_ci add %o2, 1, %o0 268c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_1) 278c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_3) 288c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 298c2ecf20Sopenharmony_ci add %o2, 3, %o0 308c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_3) 318c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_4) 328c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 338c2ecf20Sopenharmony_ci add %o2, 4, %o0 348c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_4) 358c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_5) 368c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 378c2ecf20Sopenharmony_ci add %o2, 5, %o0 388c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_5) 398c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_6) 408c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 418c2ecf20Sopenharmony_ci add %o2, 6, %o0 428c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_6) 438c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_7) 448c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 458c2ecf20Sopenharmony_ci add %o2, 7, %o0 468c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_7) 478c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_8) 488c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 498c2ecf20Sopenharmony_ci add %o2, 8, %o0 508c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_8) 518c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_15) 528c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 538c2ecf20Sopenharmony_ci add %o2, 15, %o0 548c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_15) 558c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_15_8) 568c2ecf20Sopenharmony_ci add %o2, 15, %o2 578c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 588c2ecf20Sopenharmony_ci add %o2, 8, %o0 598c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_15_8) 608c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_16) 618c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 628c2ecf20Sopenharmony_ci add %o2, 16, %o0 638c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_16) 648c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_24) 658c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 668c2ecf20Sopenharmony_ci add %o2, 24, %o0 678c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_24) 688c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_31) 698c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 708c2ecf20Sopenharmony_ci add %o2, 31, %o0 718c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_31) 728c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_32) 738c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 748c2ecf20Sopenharmony_ci add %o2, 32, %o0 758c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_32) 768c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_31_32) 778c2ecf20Sopenharmony_ci add %o2, 31, %o2 788c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 798c2ecf20Sopenharmony_ci add %o2, 32, %o0 808c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_31_32) 818c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_31_24) 828c2ecf20Sopenharmony_ci add %o2, 31, %o2 838c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 848c2ecf20Sopenharmony_ci add %o2, 24, %o0 858c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_31_24) 868c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_31_16) 878c2ecf20Sopenharmony_ci add %o2, 31, %o2 888c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 898c2ecf20Sopenharmony_ci add %o2, 16, %o0 908c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_31_16) 918c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_31_8) 928c2ecf20Sopenharmony_ci add %o2, 31, %o2 938c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 948c2ecf20Sopenharmony_ci add %o2, 8, %o0 958c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_31_8) 968c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63) 978c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 988c2ecf20Sopenharmony_ci add %o2, 63, %o0 998c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63) 1008c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_64) 1018c2ecf20Sopenharmony_ci add %o2, 63, %o2 1028c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1038c2ecf20Sopenharmony_ci add %o2, 64, %o0 1048c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_64) 1058c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_56) 1068c2ecf20Sopenharmony_ci add %o2, 63, %o2 1078c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1088c2ecf20Sopenharmony_ci add %o2, 56, %o0 1098c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_56) 1108c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_48) 1118c2ecf20Sopenharmony_ci add %o2, 63, %o2 1128c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1138c2ecf20Sopenharmony_ci add %o2, 48, %o0 1148c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_48) 1158c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_40) 1168c2ecf20Sopenharmony_ci add %o2, 63, %o2 1178c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1188c2ecf20Sopenharmony_ci add %o2, 40, %o0 1198c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_40) 1208c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_32) 1218c2ecf20Sopenharmony_ci add %o2, 63, %o2 1228c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1238c2ecf20Sopenharmony_ci add %o2, 32, %o0 1248c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_32) 1258c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_24) 1268c2ecf20Sopenharmony_ci add %o2, 63, %o2 1278c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1288c2ecf20Sopenharmony_ci add %o2, 24, %o0 1298c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_24) 1308c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_16) 1318c2ecf20Sopenharmony_ci add %o2, 63, %o2 1328c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1338c2ecf20Sopenharmony_ci add %o2, 16, %o0 1348c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_16) 1358c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_63_8) 1368c2ecf20Sopenharmony_ci add %o2, 63, %o2 1378c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1388c2ecf20Sopenharmony_ci add %o2, 8, %o0 1398c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_63_8) 1408c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5) 1418c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1428c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1438c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5) 1448c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_1) 1458c2ecf20Sopenharmony_ci add %o5, 1, %o5 1468c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1478c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1488c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_1) 1498c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_4) 1508c2ecf20Sopenharmony_ci add %o5, 4, %o5 1518c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1528c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1538c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_4) 1548c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_8) 1558c2ecf20Sopenharmony_ci add %o5, 8, %o5 1568c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1578c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1588c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_8) 1598c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_16) 1608c2ecf20Sopenharmony_ci add %o5, 16, %o5 1618c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1628c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1638c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_16) 1648c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_24) 1658c2ecf20Sopenharmony_ci add %o5, 24, %o5 1668c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1678c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1688c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_24) 1698c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_32) 1708c2ecf20Sopenharmony_ci add %o5, 32, %o5 1718c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1728c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1738c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_32) 1748c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_64) 1758c2ecf20Sopenharmony_ci add %o5, 32, %o5 1768c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1778c2ecf20Sopenharmony_ci add %o2, %o5, %o0 1788c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_64) 1798c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_g1) 1808c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1818c2ecf20Sopenharmony_ci add %o2, %g1, %o0 1828c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_g1) 1838c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_g1_plus_1) 1848c2ecf20Sopenharmony_ci add %g1, 1, %g1 1858c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1868c2ecf20Sopenharmony_ci add %o2, %g1, %o0 1878c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_g1_plus_1) 1888c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_g1_plus_8) 1898c2ecf20Sopenharmony_ci add %g1, 8, %g1 1908c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1918c2ecf20Sopenharmony_ci add %o2, %g1, %o0 1928c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_g1_plus_8) 1938c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4) 1948c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 1958c2ecf20Sopenharmony_ci add %o2, %o4, %o0 1968c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4) 1978c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_8) 1988c2ecf20Sopenharmony_ci add %o4, 8, %o4 1998c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2008c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2018c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_8) 2028c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_16) 2038c2ecf20Sopenharmony_ci add %o4, 16, %o4 2048c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2058c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2068c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_16) 2078c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_24) 2088c2ecf20Sopenharmony_ci add %o4, 24, %o4 2098c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2108c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2118c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_24) 2128c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_32) 2138c2ecf20Sopenharmony_ci add %o4, 32, %o4 2148c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2158c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2168c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_32) 2178c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_40) 2188c2ecf20Sopenharmony_ci add %o4, 40, %o4 2198c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2208c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2218c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_40) 2228c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_48) 2238c2ecf20Sopenharmony_ci add %o4, 48, %o4 2248c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2258c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2268c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_48) 2278c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_56) 2288c2ecf20Sopenharmony_ci add %o4, 56, %o4 2298c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2308c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2318c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_56) 2328c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_64) 2338c2ecf20Sopenharmony_ci add %o4, 64, %o4 2348c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2358c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2368c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_64) 2378c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_64) 2388c2ecf20Sopenharmony_ci add %o5, 64, %o5 2398c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi 2408c2ecf20Sopenharmony_ci add %o2, %o5, %o0 2418c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_64) 2428c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o3_fp) 2438c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2448c2ecf20Sopenharmony_ci add %o2, %o3, %o0 2458c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o3_fp) 2468c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o3_plus_1_fp) 2478c2ecf20Sopenharmony_ci add %o3, 1, %o3 2488c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2498c2ecf20Sopenharmony_ci add %o2, %o3, %o0 2508c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o3_plus_1_fp) 2518c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o3_plus_4_fp) 2528c2ecf20Sopenharmony_ci add %o3, 4, %o3 2538c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2548c2ecf20Sopenharmony_ci add %o2, %o3, %o0 2558c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o3_plus_4_fp) 2568c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_fp) 2578c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2588c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2598c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_fp) 2608c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_8_fp) 2618c2ecf20Sopenharmony_ci add %o4, 8, %o4 2628c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2638c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2648c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_8_fp) 2658c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_16_fp) 2668c2ecf20Sopenharmony_ci add %o4, 16, %o4 2678c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2688c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2698c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_16_fp) 2708c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_24_fp) 2718c2ecf20Sopenharmony_ci add %o4, 24, %o4 2728c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2738c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2748c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_24_fp) 2758c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_32_fp) 2768c2ecf20Sopenharmony_ci add %o4, 32, %o4 2778c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2788c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2798c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_32_fp) 2808c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_40_fp) 2818c2ecf20Sopenharmony_ci add %o4, 40, %o4 2828c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2838c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2848c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_40_fp) 2858c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_48_fp) 2868c2ecf20Sopenharmony_ci add %o4, 48, %o4 2878c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2888c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2898c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_48_fp) 2908c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_56_fp) 2918c2ecf20Sopenharmony_ci add %o4, 56, %o4 2928c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2938c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2948c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_56_fp) 2958c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o4_plus_64_fp) 2968c2ecf20Sopenharmony_ci add %o4, 64, %o4 2978c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 2988c2ecf20Sopenharmony_ci add %o2, %o4, %o0 2998c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o4_plus_64_fp) 3008c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_fp) 3018c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3028c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3038c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_fp) 3048c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_64_fp) 3058c2ecf20Sopenharmony_ci add %o5, 64, %o5 3068c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3078c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3088c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_64_fp) 3098c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_56_fp) 3108c2ecf20Sopenharmony_ci add %o5, 56, %o5 3118c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3128c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3138c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_56_fp) 3148c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_48_fp) 3158c2ecf20Sopenharmony_ci add %o5, 48, %o5 3168c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3178c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3188c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_48_fp) 3198c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_40_fp) 3208c2ecf20Sopenharmony_ci add %o5, 40, %o5 3218c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3228c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3238c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_40_fp) 3248c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_32_fp) 3258c2ecf20Sopenharmony_ci add %o5, 32, %o5 3268c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3278c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3288c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_32_fp) 3298c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_24_fp) 3308c2ecf20Sopenharmony_ci add %o5, 24, %o5 3318c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3328c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3338c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_24_fp) 3348c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_16_fp) 3358c2ecf20Sopenharmony_ci add %o5, 16, %o5 3368c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3378c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3388c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_16_fp) 3398c2ecf20Sopenharmony_ciENTRY(memcpy_retl_o2_plus_o5_plus_8_fp) 3408c2ecf20Sopenharmony_ci add %o5, 8, %o5 3418c2ecf20Sopenharmony_ci ba,pt %xcc, __restore_asi_fp 3428c2ecf20Sopenharmony_ci add %o2, %o5, %o0 3438c2ecf20Sopenharmony_ciENDPROC(memcpy_retl_o2_plus_o5_plus_8_fp) 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci#endif 346