forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
649 B
38 lines
649 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#include <linux/linkage.h> |
|
#include <asm/assembler.h> |
|
|
|
#if __LINUX_ARM_ARCH__ >= 6 |
|
ENTRY(__bswapsi2) |
|
rev r0, r0 |
|
bx lr |
|
ENDPROC(__bswapsi2) |
|
|
|
ENTRY(__bswapdi2) |
|
rev r3, r0 |
|
rev r0, r1 |
|
mov r1, r3 |
|
bx lr |
|
ENDPROC(__bswapdi2) |
|
#else |
|
ENTRY(__bswapsi2) |
|
eor r3, r0, r0, ror #16 |
|
mov r3, r3, lsr #8 |
|
bic r3, r3, #0xff00 |
|
eor r0, r3, r0, ror #8 |
|
ret lr |
|
ENDPROC(__bswapsi2) |
|
|
|
ENTRY(__bswapdi2) |
|
mov ip, r1 |
|
eor r3, ip, ip, ror #16 |
|
eor r1, r0, r0, ror #16 |
|
mov r1, r1, lsr #8 |
|
mov r3, r3, lsr #8 |
|
bic r3, r3, #0xff00 |
|
bic r1, r1, #0xff00 |
|
eor r1, r1, r0, ror #8 |
|
eor r0, r3, ip, ror #8 |
|
ret lr |
|
ENDPROC(__bswapdi2) |
|
#endif
|
|
|