From 12dc175ad3e4d16a9613701bbabdffce1adb13b1 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Fri, 24 Aug 2007 13:47:45 +0100 Subject: [PATCH] --- yaml --- r: 64521 b: refs/heads/master c: 2704afebecc8e268e8c873b6dfab2077d679b593 h: refs/heads/master i: 64519: 5714227918f0231f4cd3e7984719eafff2fafc24 v: v3 --- [refs] | 2 +- trunk/arch/mips/lib/Makefile | 2 +- trunk/arch/mips/lib/cmpdi2.c | 27 +++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 trunk/arch/mips/lib/cmpdi2.c diff --git a/[refs] b/[refs] index 4f2b4149a37e..57d5b0053408 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 606bf782846163b87868d8cdd46f44241c0c2a6b +refs/heads/master: 2704afebecc8e268e8c873b6dfab2077d679b593 diff --git a/trunk/arch/mips/lib/Makefile b/trunk/arch/mips/lib/Makefile index 91ed1eb33102..8810dfb915dd 100644 --- a/trunk/arch/mips/lib/Makefile +++ b/trunk/arch/mips/lib/Makefile @@ -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 diff --git a/trunk/arch/mips/lib/cmpdi2.c b/trunk/arch/mips/lib/cmpdi2.c new file mode 100644 index 000000000000..8c1306437ed1 --- /dev/null +++ b/trunk/arch/mips/lib/cmpdi2.c @@ -0,0 +1,27 @@ +#include + +#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);