Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
017f161a | 2 | #include <linux/linkage.h> |
6ebbf2ce | 3 | #include <asm/assembler.h> |
017f161a KP |
4 | |
5 | #if __LINUX_ARM_ARCH__ >= 6 | |
6 | ENTRY(__bswapsi2) | |
7 | rev r0, r0 | |
8 | bx lr | |
9 | ENDPROC(__bswapsi2) | |
10 | ||
11 | ENTRY(__bswapdi2) | |
12 | rev r3, r0 | |
13 | rev r0, r1 | |
14 | mov r1, r3 | |
15 | bx lr | |
16 | ENDPROC(__bswapdi2) | |
17 | #else | |
18 | ENTRY(__bswapsi2) | |
19 | eor r3, r0, r0, ror #16 | |
20 | mov r3, r3, lsr #8 | |
21 | bic r3, r3, #0xff00 | |
22 | eor r0, r3, r0, ror #8 | |
6ebbf2ce | 23 | ret lr |
017f161a KP |
24 | ENDPROC(__bswapsi2) |
25 | ||
26 | ENTRY(__bswapdi2) | |
27 | mov ip, r1 | |
28 | eor r3, ip, ip, ror #16 | |
29 | eor r1, r0, r0, ror #16 | |
30 | mov r1, r1, lsr #8 | |
31 | mov r3, r3, lsr #8 | |
32 | bic r3, r3, #0xff00 | |
33 | bic r1, r1, #0xff00 | |
34 | eor r1, r1, r0, ror #8 | |
35 | eor r0, r3, ip, ror #8 | |
6ebbf2ce | 36 | ret lr |
017f161a KP |
37 | ENDPROC(__bswapdi2) |
38 | #endif |