microblaze: Add __cmpdi2
Some new kernel configurations require __cmpdi2 function. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
ed705633d3
commit
eecb20720f
2 changed files with 27 additions and 0 deletions
|
@ -20,6 +20,7 @@ lib-y += uaccess_old.o
|
||||||
|
|
||||||
lib-y += ashldi3.o
|
lib-y += ashldi3.o
|
||||||
lib-y += ashrdi3.o
|
lib-y += ashrdi3.o
|
||||||
|
lib-y += cmpdi2.o
|
||||||
lib-y += divsi3.o
|
lib-y += divsi3.o
|
||||||
lib-y += lshrdi3.o
|
lib-y += lshrdi3.o
|
||||||
lib-y += modsi3.o
|
lib-y += modsi3.o
|
||||||
|
|
26
arch/microblaze/lib/cmpdi2.c
Normal file
26
arch/microblaze/lib/cmpdi2.c
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#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…
Add table
Reference in a new issue