if (__mes_debug () && !stub)
eputs ("__divdi3 stub\n");
stub = 1;
- return ((int) a / (int) b);
+ return ((long) a / (long) b);
}
double
if (__mes_debug () && !stub)
eputs ("__moddi3 stub\n");
stub = 1;
- return ((int) a % (int) b);
+ return ((long) a % (long) b);
}
+#if HAVE_LONG_LONG
unsigned long long
__udivdi3 (unsigned long long a, unsigned long long b)
+#else
+unsigned long
+__udivdi3 (unsigned long a, long ah, unsigned long b)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
eputs ("__udivdi3 stub\n");
stub = 1;
- int ai = a;
- int bi = b;
+ if (!b)
+ return 0;
+ unsigned long ai = a;
+ unsigned long bi = b;
return ai / bi;
}
+#if HAVE_LONG_LONG
unsigned long long
__umoddi3 (unsigned long long a, unsigned long long b)
+#else
+unsigned long
+__umoddi3 (unsigned long a, long ah, unsigned long b)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
eputs ("__umoddi3 stub\n");
stub = 1;
- int ai = a;
- int bi = b;
+ unsigned long ai = a;
+ unsigned long bi = b;
return ai % bi;
}
+#if HAVE_LONG_LONG
unsigned long long
-__lshrdi3 (unsigned long long a, int b)
+__lshrdi3 (unsigned long long a, long b)
+#else
+unsigned long
+__lshrdi3 (unsigned long a, long ah, long b)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
eputs ("__lshrdi3 stub\n");
stub = 1;
+#if 0 // In some instances, this recurses
return a >> b;
+#else
+ for (int i = 0; i < b; i++)
+ a /= 2;
+ return a;
+#endif
}
+#if HAVE_LONG_LONG
long long
-__ashldi3 (long long a, int b)
+__ashldi3 (long long a, long b)
+#else
+long
+__ashldi3 (long a, long ah, long b)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
eputs ("__ashldi3 stub\n");
stub = 1;
+#if 0 // In some instances, this recurses
return a << b;
+#else
+ for (int i = 0; i < b; i++)
+ a += a;
+ return a;
+#endif
}
+#if HAVE_LONG_LONG
long long
-__ashrdi3 (long long a, int b)
+__ashrdi3 (long long a, long b)
+#else
+long
+__ashrdi3 (long a, long ah, long b)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
eputs ("__ashrdi3 stub\n");
stub = 1;
+#if 0 // In some instances, this recurses
return a >> b;
+#else
+ for (int i = 0; i < b; i++)
+ a /= 2;
+ return a;
+#endif
}
+#if HAVE_LONG_LONG && HAVE_FLOAT
long double
__floatundixf (unsigned long long a)
+#else
+double
+__floatundixf (unsigned long a)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
return 0;
}
+#if HAVE_LONG_LONG
unsigned long long
+#else
+unsigned long
+#endif
__fixunsxfdi (double a1)
{
static int stub = 0;
long
#elif __TINYC__
int
-#else // !__TINYCC_
+#else // !__TINYCC__
long long
-#endif // !__TINYCC_
+#endif // !__TINYCC__
__fixdfdi (double a1)
{
static int stub = 0;
return 0;
}
+#if HAVE_LONG_LONG
unsigned long long
__fixxfdi (double a1)
+#else
+unsigned long
+__fixxfdi (double a1)
+#endif
{
static int stub = 0;
if (__mes_debug () && !stub)
return 0;
}
+#if HAVE_LONG_LONG
long long
+#else
+long
+#endif
__fixsfdi (double a1)
{
static int stub = 0;