[SPARC32]: Add __cmpdi2() libcall implementation ala. MIPS.

Device mapper generates calls to this with recent versions
of gcc.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller
2007-08-25 15:10:44 -07:00
parent 6c8f5b90bf
commit 6cc0735d0d
3 changed files with 47 additions and 1 deletions

27
arch/sparc/lib/cmpdi2.c Normal file
View File

@@ -0,0 +1,27 @@
#include <linux/module.h>
#include "libgcc.h"
word_type __cmpdi2(long long a, long long b)
{
const DWunion au = {
.ll = a
};
const DWunion bu = {
.ll = b
};
if (au.s.high < bu.s.high)
return 0;
else if (au.s.high > bu.s.high)
return 2;
if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
return 0;
else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
return 2;
return 1;
}
EXPORT_SYMBOL(__cmpdi2);