From f68dc4080440563d1dd69c8cd87c7566e60855fa Mon Sep 17 00:00:00 2001 From: Jean-Christophe PLAGNIOL-VILLARD Date: Fri, 14 Jan 2011 18:10:41 +0100 Subject: arm: add __bswapsi2 support 32-bit endian conversion needed by gcc 4.5.1 Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Sascha Hauer --- arch/arm/lib/Makefile | 1 + arch/arm/lib/_bswapsi2.S | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 arch/arm/lib/_bswapsi2.S diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 89cb72b30f..56818e81ab 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -12,6 +12,7 @@ obj-y += lib1funcs.o obj-y += ashrdi3.o obj-y += ashldi3.o obj-y += lshrdi3.o +obj-y += _bswapsi2.o obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memcpy.o obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memset.o diff --git a/arch/arm/lib/_bswapsi2.S b/arch/arm/lib/_bswapsi2.S new file mode 100644 index 0000000000..7f45fa5237 --- /dev/null +++ b/arch/arm/lib/_bswapsi2.S @@ -0,0 +1,14 @@ +#include +#include + +ENTRY(__bswapsi2) +#if __LINUX_ARM_ARCH__ <= 5 + eor r1, r0, r0, ror #16 + bic r1, r1, #0xff0000 + mov r0, r0, ror #8 + eor r0, r0, r1, lsr #8 +#else + rev r0, r0 +#endif + bx lr +ENDPROC(__bswapsi2) -- cgit v1.2.3