don't compile modsi3 into an infinite loop, patch by Matt Johnson!

llvm-svn: 127429
diff --git a/compiler-rt/lib/modsi3.c b/compiler-rt/lib/modsi3.c
index 388418a..70d38a6 100644
--- a/compiler-rt/lib/modsi3.c
+++ b/compiler-rt/lib/modsi3.c
@@ -14,10 +14,12 @@
 
 #include "int_lib.h"
 
+su_int __divsi3(si_int a, si_int b);
+
 /* Returns: a % b */
 
 si_int
 __modsi3(si_int a, si_int b)
 {
-    return a - (a / b) * b;
+    return a - __divsi3(a, b) * b;
 }