1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
6 #include <linux/linkage.h>
8 #ifdef __LITTLE_ENDIAN__
11 #else /* BIG ENDIAN */
20 brls r2,r12,.Lbytewise
24 #ifdef CONFIG_ISA_ARCV2
25 /* In ARCv2 a branch can't be the last instruction in a zero overhead
27 * So we move the branch to the start of the loop, duplicate it
28 * after the end, and set up r12 so that the branch isn't taken
43 #ifdef CONFIG_ISA_ARCV2
55 #ifdef __LITTLE_ENDIAN__
57 ; one more load latency cycle
94 #else /* BIG ENDIAN */
117 #ifdef CONFIG_ISA_ARCV2
120 brne r3,r12,.Lbyte_odd
126 brne r4,r5,.Lbyte_even
129 #ifdef CONFIG_ISA_ARCV2
131 brne r3,r12,.Lbyte_odd
133 brne r3,r12,.Lbyte_odd
137 brne r4,r5,.Lbyte_even