1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  Port on Texas Instruments TMS320C6x architecture
2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;
3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  Copyright (C) 2006, 2009, 2010 Texas Instruments Incorporated
4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;
6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  This program is free software; you can redistribute it and/or modify
7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  it under the terms of the GNU General Public License version 2 as
8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;  published by the Free Software Foundation.
9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng;
10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <linux/linkage.h>
12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	.text
14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengENTRY(memcpy)
16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	AND	.L1	0x1,A6,A0
17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	AND	.S1	0x2,A6,A1
18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	AND	.L2X	0x4,A6,B0
19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	MV	.D1	A4,A3
20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	MVC	.S2	ILC,B2
21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A0] LDB	.D2T1	*B4++,A5
23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A1] LDB	.D2T1	*B4++,A7
24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A1] LDB	.D2T1	*B4++,A8
25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [B0] LDNW	.D2T1	*B4++,A9
26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	SHRU	.S2X	A6,0x3,B1
27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng  [!B1] BNOP	.S2	B3,1
28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A0] STB	.D1T1	A5,*A3++
30e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||[B1] MVC	.S2	B1,ILC
31e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A1] STB	.D1T1	A7,*A3++
32e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [A1] STB	.D1T1	A8,*A3++
33e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng   [B0] STNW	.D1T1	A9,*A3++	; return when len < 8
34e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
35e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	SPLOOP	2
36e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
37e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	LDNDW	.D2T1	*B4++,A9:A8
38e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	NOP	3
39e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
40e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	NOP
41e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	SPKERNEL	0,0
42e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ||	STNDW	.D1T1	A9:A8,*A3++
43e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
44e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	BNOP	.S2	B3,4
45e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	MVC	.S2	B2,ILC
46e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengENDPROC(memcpy)
47