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 #include <linux/linkage.h>
11 #ifdef __LITTLE_ENDIAN__
14 #else /* BIG ENDIAN */
23 brls r2,r12,.Lbytewise
27 #ifdef CONFIG_ISA_ARCV2
28 /* In ARCv2 a branch can't be the last instruction in a zero overhead
30 * So we move the branch to the start of the loop, duplicate it
31 * after the end, and set up r12 so that the branch isn't taken
46 #ifdef CONFIG_ISA_ARCV2
58 #ifdef __LITTLE_ENDIAN__
60 ; one more load latency cycle
97 #else /* BIG ENDIAN */
120 #ifdef CONFIG_ISA_ARCV2
123 brne r3,r12,.Lbyte_odd
129 brne r4,r5,.Lbyte_even
132 #ifdef CONFIG_ISA_ARCV2
134 brne r3,r12,.Lbyte_odd
136 brne r3,r12,.Lbyte_odd
140 brne r4,r5,.Lbyte_even