#include <linux/linkage.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 | |
mov pc, 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 | |
mov pc, lr | |
ENDPROC(__bswapdi2) | |
#endif |