long udivmodsi4 (); long __divsi3 (long a, long b) { int neg = 0; long res; if (a < 0) { a = -a; neg = !neg; } if (b < 0) { b = -b; neg = !neg; } res = udivmodsi4 (a, b, 0); if (neg) res = -res; return res; } long __modsi3 (long a, long b) { int neg = 0; long res; if (a < 0) { a = -a; neg = 1; } if (b < 0) b = -b; res = udivmodsi4 (a, b, 1); if (neg) res = -res; return res; }