1*4882a593Smuzhiyun; SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun; Port on Texas Instruments TMS320C6x architecture 3*4882a593Smuzhiyun; 4*4882a593Smuzhiyun; Copyright (C) 2006, 2009, 2010 Texas Instruments Incorporated 5*4882a593Smuzhiyun; Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com) 6*4882a593Smuzhiyun; 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <linux/linkage.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun .text 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunENTRY(memcpy) 13*4882a593Smuzhiyun AND .L1 0x1,A6,A0 14*4882a593Smuzhiyun || AND .S1 0x2,A6,A1 15*4882a593Smuzhiyun || AND .L2X 0x4,A6,B0 16*4882a593Smuzhiyun || MV .D1 A4,A3 17*4882a593Smuzhiyun || MVC .S2 ILC,B2 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun [A0] LDB .D2T1 *B4++,A5 20*4882a593Smuzhiyun [A1] LDB .D2T1 *B4++,A7 21*4882a593Smuzhiyun [A1] LDB .D2T1 *B4++,A8 22*4882a593Smuzhiyun [B0] LDNW .D2T1 *B4++,A9 23*4882a593Smuzhiyun || SHRU .S2X A6,0x3,B1 24*4882a593Smuzhiyun [!B1] BNOP .S2 B3,1 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun [A0] STB .D1T1 A5,*A3++ 27*4882a593Smuzhiyun ||[B1] MVC .S2 B1,ILC 28*4882a593Smuzhiyun [A1] STB .D1T1 A7,*A3++ 29*4882a593Smuzhiyun [A1] STB .D1T1 A8,*A3++ 30*4882a593Smuzhiyun [B0] STNW .D1T1 A9,*A3++ ; return when len < 8 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun SPLOOP 2 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun LDNDW .D2T1 *B4++,A9:A8 35*4882a593Smuzhiyun NOP 3 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun NOP 38*4882a593Smuzhiyun SPKERNEL 0,0 39*4882a593Smuzhiyun || STNDW .D1T1 A9:A8,*A3++ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun BNOP .S2 B3,4 42*4882a593Smuzhiyun MVC .S2 B2,ILC 43*4882a593SmuzhiyunENDPROC(memcpy) 44