diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-01-14 18:10:41 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-01-17 09:39:16 +0100 |
commit | f68dc4080440563d1dd69c8cd87c7566e60855fa (patch) | |
tree | 9e07e1767a161f231d9a3a3604f4c2792f558384 | |
parent | d62f8241d3b8dbb8bec05d3d4f7580631b3f9690 (diff) | |
download | barebox-f68dc4080440563d1dd69c8cd87c7566e60855fa.tar.gz barebox-f68dc4080440563d1dd69c8cd87c7566e60855fa.tar.xz |
arm: add __bswapsi2 support
32-bit endian conversion
needed by gcc 4.5.1
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/lib/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/lib/_bswapsi2.S | 14 |
2 files changed, 15 insertions, 0 deletions
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 <linux/linkage.h> +#include <asm/assembler.h> + +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) |