18c2ecf20Sopenharmony_ci; SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci; Port on Texas Instruments TMS320C6x architecture 38c2ecf20Sopenharmony_ci; 48c2ecf20Sopenharmony_ci; Copyright (C) 2006, 2009, 2010 Texas Instruments Incorporated 58c2ecf20Sopenharmony_ci; Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com) 68c2ecf20Sopenharmony_ci; 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/linkage.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci .text 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciENTRY(memcpy) 138c2ecf20Sopenharmony_ci AND .L1 0x1,A6,A0 148c2ecf20Sopenharmony_ci || AND .S1 0x2,A6,A1 158c2ecf20Sopenharmony_ci || AND .L2X 0x4,A6,B0 168c2ecf20Sopenharmony_ci || MV .D1 A4,A3 178c2ecf20Sopenharmony_ci || MVC .S2 ILC,B2 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci [A0] LDB .D2T1 *B4++,A5 208c2ecf20Sopenharmony_ci [A1] LDB .D2T1 *B4++,A7 218c2ecf20Sopenharmony_ci [A1] LDB .D2T1 *B4++,A8 228c2ecf20Sopenharmony_ci [B0] LDNW .D2T1 *B4++,A9 238c2ecf20Sopenharmony_ci || SHRU .S2X A6,0x3,B1 248c2ecf20Sopenharmony_ci [!B1] BNOP .S2 B3,1 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci [A0] STB .D1T1 A5,*A3++ 278c2ecf20Sopenharmony_ci ||[B1] MVC .S2 B1,ILC 288c2ecf20Sopenharmony_ci [A1] STB .D1T1 A7,*A3++ 298c2ecf20Sopenharmony_ci [A1] STB .D1T1 A8,*A3++ 308c2ecf20Sopenharmony_ci [B0] STNW .D1T1 A9,*A3++ ; return when len < 8 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci SPLOOP 2 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci LDNDW .D2T1 *B4++,A9:A8 358c2ecf20Sopenharmony_ci NOP 3 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci NOP 388c2ecf20Sopenharmony_ci SPKERNEL 0,0 398c2ecf20Sopenharmony_ci || STNDW .D1T1 A9:A8,*A3++ 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci BNOP .S2 B3,4 428c2ecf20Sopenharmony_ci MVC .S2 B2,ILC 438c2ecf20Sopenharmony_ciENDPROC(memcpy) 44