| 
					
				 | 
			
			
				@@ -17,6 +17,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define COMPILER_RT_ABI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define di_int int64_t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define di_uint uint64_t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "torint.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 di_int __mulodi4(di_int a, di_int b, int* overflow); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,9 +31,9 @@ COMPILER_RT_ABI di_int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 __mulodi4(di_int a, di_int b, int* overflow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const int N = (int)(sizeof(di_int) * CHAR_BIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const di_int MIN = (di_int)1 << (N-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const di_int MIN = (di_int) ((di_uint)1 << (N-1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const di_int MAX = ~MIN; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    *overflow = 0;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    *overflow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     di_int result = a * b; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (a == MIN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 |