Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca9d7aea authored by David Woodhouse's avatar David Woodhouse Committed by Benjamin Herrenschmidt
Browse files

powerpc: Provide __bswapdi2



Some versions of GCC apparently expect this to be provided by libgcc.

Updates from Mikey to fix 32 bit version and adding "r" to registers.

Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent b2b48584
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -657,6 +657,17 @@ _GLOBAL(__ucmpdi2)
	li	r3,2
	blr

_GLOBAL(__bswapdi2)
	rotlwi  r9,r4,8
	rotlwi  r10,r3,8
	rlwimi  r9,r4,24,0,7
	rlwimi  r10,r3,24,0,7
	rlwimi  r9,r4,24,16,23
	rlwimi  r10,r3,24,16,23
	mr      r3,r9
	mr      r4,r10
	blr

_GLOBAL(abs)
	srawi	r4,r3,31
	xor	r3,r3,r4
+11 −0
Original line number Diff line number Diff line
@@ -234,6 +234,17 @@ _GLOBAL(__flush_dcache_icache)
	isync
	blr

_GLOBAL(__bswapdi2)
	srdi	r8,r3,32
	rlwinm	r7,r3,8,0xffffffff
	rlwimi	r7,r3,24,0,7
	rlwinm	r9,r8,8,0xffffffff
	rlwimi	r7,r3,24,16,23
	rlwimi	r9,r8,24,0,7
	rlwimi	r9,r8,24,16,23
	sldi	r7,r7,32
	or	r3,r7,r9
	blr

#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE)
/*
+2 −1
Original line number Diff line number Diff line
@@ -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);