Browse Source

Currently we have DivU64x32 on ia32, but it tries to call
__umoddi3 and __udivdi3 from libgcc, which we don't have.
This fixes it to use our implementation in that case.

Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>

Nigel Croxon 7 years ago
parent
commit
d039cd620b
1 changed files with 2 additions and 2 deletions
  1. 2 2
      lib/ia32/math.c

+ 2 - 2
lib/ia32/math.c

@@ -140,7 +140,7 @@ DivU64x32 (
 // divide 64bit by 32bit and get a 64bit result
 // N.B. only works for 31bit divisors!!
 {
-#if defined(__GNUC__) && !defined(__MINGW32__)
+#if 0 && defined(__GNUC__) && !defined(__MINGW32__)
     if (Remainder)
         *Remainder = Dividend % Divisor;
     return Dividend / Divisor;
@@ -157,7 +157,7 @@ DivU64x32 (
 
     Rem = 0;
     for (bit=0; bit < 64; bit++) {
-#ifdef __MINGW32__
+#if defined(__GNUC__) || defined(__MINGW32__)
         asm (
             "shll	$1, %0\n\t"
             "rcll	$1, 4%0\n\t"