===================================================================
RCS file: /home/cvs/OpenXM_contrib2/asir2000/asm/ddN.c,v
retrieving revision 1.6
retrieving revision 1.11
diff -u -p -r1.6 -r1.11
--- OpenXM_contrib2/asir2000/asm/ddN.c	2006/08/09 02:48:49	1.6
+++ OpenXM_contrib2/asir2000/asm/ddN.c	2013/11/05 02:55:02	1.11
@@ -45,7 +45,7 @@
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *
- * $OpenXM$
+ * $OpenXM: OpenXM_contrib2/asir2000/asm/ddN.c,v 1.10 2009/03/02 19:01:43 ohara Exp $
 */
 #ifndef FBASE
 #define FBASE
@@ -288,7 +288,7 @@ void bxprintn(N n)
 	}
 }
 
-#if defined(VISUAL) || defined(i386)
+#if defined(_M_IX86) || defined(i386)
 void muln(N n1,N n2,N *nr)
 {
 	unsigned int tmp,carry,mul;
@@ -347,7 +347,7 @@ void _muln(N n1,N n2,N nr)
 void muln_1(unsigned int *p,int s,unsigned int d,unsigned int *r)
 {
 	/* esi : p, edi : r, carry : ebx, s : ecx */
-#if defined(VISUAL)
+#if defined(_M_IX86)
 	__asm {
 	push esi
 	push edi
@@ -374,6 +374,7 @@ void muln_1(unsigned int *p,int s,unsigned int d,unsig
 	}
 #else
 	asm volatile("\
+	pushl	%%ebx;\
 	movl	%0,%%esi;\
 	movl	%1,%%edi;\
 	movl	$0,%%ebx;\
@@ -390,10 +391,11 @@ void muln_1(unsigned int *p,int s,unsigned int d,unsig
 	leal	4(%%edi),%%edi;\
 	decl	%3;\
 	jnz		Lstart_muln;\
-	movl	%%ebx,(%%edi)"\
+	movl	%%ebx,(%%edi);\
+	popl	%%ebx"\
 	:\
 	:"m"(p),"m"(r),"m"(d),"m"(s)\
-	:"eax","ebx","edx","esi","edi");
+	:"eax","edx","esi","edi");
 #endif
 }
 
@@ -494,7 +496,7 @@ unsigned int divn_1(unsigned int *p,int s,unsigned int
 	return borrow;
 */
 	/* esi : p, edi : r, borrow : ebx, s : ecx */
-#if defined(VISUAL)
+#if defined(_M_IX86)
 	__asm {
 	push esi
 	push edi
@@ -523,6 +525,7 @@ unsigned int divn_1(unsigned int *p,int s,unsigned int
 	unsigned int borrow;
 
 	asm volatile("\
+	pushl	%%ebx;\
 	movl	%1,%%esi;\
 	movl	%2,%%edi;\
 	movl	$0,%%ebx;\
@@ -538,10 +541,11 @@ unsigned int divn_1(unsigned int *p,int s,unsigned int
 	leal	4(%%edi),%%edi;\
 	decl	%4;\
 	jnz		Lstart_divn;\
-	movl	%%ebx,%0"\
+	movl	%%ebx,%0;\
+	popl	%%ebx"\
 	:"=m"(borrow)\
 	:"m"(p),"m"(r),"m"(d),"m"(s)\
-	:"eax","ebx","edx","esi","edi");
+	:"eax","edx","esi","edi");
 
 	return borrow;
 #endif
@@ -587,7 +591,7 @@ void muln(N n1,N n2,N *nr)
 
 void _muln(N n1,N n2,N nr)
 {
-	unsigned int tmp,carry,mul;
+	unsigned int carry=0,mul;
 	unsigned int *p1,*pp,*m1,*m2;
 	int i,j,d1,d2;
 
@@ -628,7 +632,7 @@ void divnmain(int d1,int d2,unsigned int *m1,unsigned 
 {
 	int i,j;
 	UL r,ltmp;
-	unsigned int l,ur,tmp;
+	unsigned int l,ur;
 	unsigned int *n1,*n2;
 	unsigned int u,qhat;
 	unsigned int v1,v2;