#include <quad.h>
quad_t __divdi3(quad_t a,quad_t b) {
u_quad_t ua = 0x0, ub = 0x0, uq = 0x0;
int neg;
if (a < 0)
ua = -(u_quad_t)a, neg = 1;
else
ua = a, neg = 0;
if (b < 0)
ub = -(u_quad_t)b, neg ^= 1;
else
ub = b;
// uq = __qdivrem(ua, ub, (u_quad_t *)0);
return (neg ? -uq : uq);
}