mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-31 00:38:01 +00:00
Fixed compilation issues on x32
This commit is contained in:
parent
a33ec0749a
commit
9c3c07116c
@ -185,7 +185,6 @@ arith64_u64 __divmoddi4(arith64_u64 a, arith64_u64 b, arith64_u64 *c)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char bits = __clzdi2(b) - __clzdi2(a) + 1;
|
char bits = __clzdi2(b) - __clzdi2(a) + 1;
|
||||||
arith64_u64 rem = a >> bits;
|
arith64_u64 rem = a >> bits;
|
||||||
a <<= 64 - bits;
|
a <<= 64 - bits;
|
||||||
@ -202,20 +201,13 @@ arith64_u64 __divmoddi4(arith64_u64 a, arith64_u64 b, arith64_u64 *c)
|
|||||||
return (a << 1) | (wrap & 1);
|
return (a << 1) | (wrap & 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
arith64_s64 __divdi3(arith64_s64 a, arith64_s64 b)
|
arith64_s64 __divdi3(arith64_s64 a, arith64_s64 b)
|
||||||
{
|
{
|
||||||
arith64_u64 q = __divmoddi4(arith64_abs(a), arith64_abs(b), (void *)0);
|
arith64_u64 q = __divmoddi4(arith64_abs(a), arith64_abs(b), (void *)0);
|
||||||
return arith64_neg(q, a ^ b);
|
return arith64_neg(q, a ^ b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __ffsdi2(arith64_u64 a) { return a ? __ctzdi2(a) + 1 : 0; }
|
||||||
|
|
||||||
int __ffsdi2(arith64_u64 a)
|
|
||||||
{
|
|
||||||
return a ? __ctzdi2(a) + 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
arith64_u64 __lshrdi3(arith64_u64 a, int b)
|
arith64_u64 __lshrdi3(arith64_u64 a, int b)
|
||||||
{
|
{
|
||||||
@ -236,7 +228,6 @@ arith64_u64 __lshrdi3(arith64_u64 a, int b)
|
|||||||
return w.u64;
|
return w.u64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
arith64_s64 __moddi3(arith64_s64 a, arith64_s64 b)
|
arith64_s64 __moddi3(arith64_s64 a, arith64_s64 b)
|
||||||
{
|
{
|
||||||
arith64_u64 r;
|
arith64_u64 r;
|
||||||
@ -244,7 +235,6 @@ arith64_s64 __moddi3(arith64_s64 a, arith64_s64 b)
|
|||||||
return arith64_neg(r, a);
|
return arith64_neg(r, a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int __popcountsi2(arith64_u32 a)
|
int __popcountsi2(arith64_u32 a)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -256,7 +246,6 @@ int __popcountsi2(arith64_u32 a)
|
|||||||
return (a + (a >> 8)) & 63;
|
return (a + (a >> 8)) & 63;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int __popcountdi2(arith64_u64 a)
|
int __popcountdi2(arith64_u64 a)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -269,12 +258,7 @@ int __popcountdi2(arith64_u64 a)
|
|||||||
return (a + (a >> 8)) & 127;
|
return (a + (a >> 8)) & 127;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arith64_u64 __udivdi3(arith64_u64 a, arith64_u64 b) { return __divmoddi4(a, b, (void *)0); }
|
||||||
arith64_u64 __udivdi3(arith64_u64 a, arith64_u64 b)
|
|
||||||
{
|
|
||||||
return __divmoddi4(a, b, (void *)0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
arith64_u64 __umoddi3(arith64_u64 a, arith64_u64 b)
|
arith64_u64 __umoddi3(arith64_u64 a, arith64_u64 b)
|
||||||
{
|
{
|
||||||
@ -282,3 +266,20 @@ arith64_u64 __umoddi3(arith64_u64 a, arith64_u64 b)
|
|||||||
__divmoddi4(a, b, &r);
|
__divmoddi4(a, b, &r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Good documentation: https://splichal.eu/scripts/sphinx/gccint/_build/html/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.html */
|
||||||
|
|
||||||
|
double __adddf3(double a, double b) { return a + b; }
|
||||||
|
double __muldf3(double a, double b) { return a * b; }
|
||||||
|
double __floatsidf(int i) { return (double)i; }
|
||||||
|
int __ltdf2(double a, double b) { return a < b; }
|
||||||
|
int __gtdf2(double a, double b) { return a > b; }
|
||||||
|
int __nedf2(double a, double b) { return a != b; }
|
||||||
|
int __eqdf2(double a, double b) { return a == b; }
|
||||||
|
double __floatdidf(long i) { return (double)i; }
|
||||||
|
double __divdf3(double a, double b) { return a / b; }
|
||||||
|
double __subdf3(double a, double b) { return a - b; }
|
||||||
|
int __gedf2(double a, double b) { return a >= b; }
|
||||||
|
int __fixdfsi(double a) { return (int)a; }
|
||||||
|
long __fixdfdi(double a) { return (long)a; }
|
||||||
|
int __ledf2(double a, double b) { return a <= b; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user