mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
[MIPS] Add __cmpdi2
Certain 32-bit kernel configurations seem to be able to cause references, this was observed with gcc 4.1.2. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
606bf78284
commit
2704afebec
@ -28,4 +28,4 @@ obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o
|
||||
obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o
|
||||
|
||||
# libgcc-style stuff needed in the kernel
|
||||
obj-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o
|
||||
obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o
|
||||
|
27
arch/mips/lib/cmpdi2.c
Normal file
27
arch/mips/lib/cmpdi2.c
Normal 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);
|
Loading…
Reference in New Issue
Block a user