[PATCH] powerpc: provide __bswapdi2
David Woodhouse
dwmw2 at infradead.org
Sat May 11 07:18:27 EST 2013
From: David Woodhouse <David.Woodhouse at intel.com>
Some versions of GCC apparently expect this to be provided by libgcc.
Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
Untested.
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 19e096b..f077dc2 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -657,6 +657,17 @@ _GLOBAL(__ucmpdi2)
li r3,2
blr
+_GLOBAL(__bswapdi2)
+ rlwinm 10,4,8,0xffffffff
+ rlwinm 11,3,8,0xffffffff
+ rlwimi 10,4,24,0,7
+ rlwimi 11,3,24,0,7
+ rlwimi 10,4,24,16,23
+ rlwimi 11,3,24,16,23
+ mr 4,11
+ mr 3,10
+ blr
+
_GLOBAL(abs)
srawi r4,r3,31
xor r3,r3,r4
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index 5cfa800..3b2e6e8 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -234,6 +234,18 @@ _GLOBAL(__flush_dcache_icache)
isync
blr
+_GLOBAL(__bswapdi2)
+ srdi 8,3,32
+ rlwinm 7,3,8,0xffffffff
+ rlwimi 7,3,24,0,7
+ rlwinm 9,8,8,0xffffffff
+ rlwimi 7,3,24,16,23
+ rlwimi 9,8,24,0,7
+ rlwimi 9,8,24,16,23
+ sldi 7,7,32
+ or 7,7,9
+ mr 3,7
+ blr
#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE)
/*
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index 78b8766..c296665 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -143,7 +143,8 @@ EXPORT_SYMBOL(__lshrdi3);
int __ucmpdi2(unsigned long long, unsigned long long);
EXPORT_SYMBOL(__ucmpdi2);
#endif
-
+long long __bswapdi2(long long);
+EXPORT_SYMBOL(__bswapdi2);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memmove);
--
dwmw2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5745 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20130510/d68f22d6/attachment.bin>
More information about the Linuxppc-dev
mailing list