blob: 8dd30a20ef18eecc9eb4575c2fa938d96789a220 [file] [log] [blame]
add __divmoddi4 builtin
GCC 11 will generate it in code
void foo(unsigned char *u8Second, unsigned int *u32Nanosecond, long long timeSpec)
{
long long i64Div;
int i32Div;
int i32Rem;
i64Div = timeSpec;
i32Rem = (int)(i64Div % 1000000000);
i64Div /= 1000000000;
*u32Nanosecond = i32Rem;
i32Rem = (int)(i64Div % 60);
*u8Second = i32Rem;
}
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/src/VBox/Runtime/common/math/gcc/divdi3.c
+++ b/src/VBox/Runtime/common/math/gcc/divdi3.c
@@ -68,3 +68,12 @@ __divdi3(a, b)
uq = - uq;
return uq;
}
+
+quad_t
+__divmoddi4(quad_t a, quad_t b, quad_t* rem)
+{
+ quad_t d = __divdi3(a,b);
+ *rem = a - (d*b);
+ return d;
+}
+