Skip to content

Commit

Permalink
[MIPS] Add __ucmpdi2 implementation
Browse files Browse the repository at this point in the history
Recent GCC SVN versions may generate calls to __ucmpdi2.

Signed-off-by: Thiemo Seufer <[email protected]>
Signed-off-by: Ralf Baechle <[email protected]>
  • Loading branch information
Thiemo Seufer authored and ralfbaechle committed May 11, 2007
1 parent 774583f commit df6b106
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 1 addition & 1 deletion arch/mips/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ obj-y += iomap.o
obj-$(CONFIG_PCI) += iomap-pci.o

# libgcc-style stuff needed in the kernel
lib-y += ashldi3.o ashrdi3.o lshrdi3.o
lib-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o
19 changes: 19 additions & 0 deletions arch/mips/lib/ucmpdi2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include <linux/module.h>

#include "libgcc.h"

word_type __ucmpdi2 (unsigned long a, unsigned long b)
{
const DWunion au = {.ll = a};
const DWunion bu = {.ll = b};

if ((unsigned int) au.s.high < (unsigned int) bu.s.high)
return 0;
else if ((unsigned int) au.s.high > (unsigned int) 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;
}

0 comments on commit df6b106

Please sign in to comment.