#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 |