2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
9 /* If dst and src are 4 byte aligned, copy 8 bytes at a time.
10 If the src is 4, but not 8 byte aligned, we first read 4 bytes to get
11 it 8 byte aligned. Thus, we can do a little read-ahead, without
12 dereferencing a cache line that we should not touch.
13 Note that short and long instructions have been scheduled to avoid
15 The beq_s to r3z could be made unaligned & long to avoid a stall
16 there, but the it is not likely to be taken often, and it
17 would also be likey to cost an unaligned mispredict at the next call. */
19 #include <asm/linkage.h>
28 bbit0.d r1,2,loop_start
51 #ifdef __LITTLE_ENDIAN__