=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/N.c,v retrieving revision 1.7 retrieving revision 1.11 diff -u -p -r1.7 -r1.11 --- OpenXM_contrib2/asir2000/engine/N.c 2004/12/04 09:39:27 1.7 +++ OpenXM_contrib2/asir2000/engine/N.c 2015/08/29 04:15:04 1.11 @@ -45,12 +45,12 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/engine/N.c,v 1.6 2003/09/02 07:00:51 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/engine/N.c,v 1.10 2009/03/02 16:28:30 ohara Exp $ */ #include "ca.h" #include "base.h" -#if defined(VISUAL) || defined(i386) +#if (defined(_M_IX86) || defined(i386)) && !defined(__MINGW32__) void addn(N n1,N n2,N *nr) { unsigned int *m1,*m2,*mr; @@ -71,7 +71,7 @@ void addn(N n1,N n2,N *nr) } *nr = r = NALLOC(d1 + 1); INITRC(r); mr = BD(r); -#if defined(VISUAL) +#if defined(_M_IX86) __asm { push esi push edi @@ -98,6 +98,7 @@ void addn(N n1,N n2,N *nr) } #else asm volatile("\ + pushl %%ebx;\ movl %1,%%esi;\ movl %2,%%edi;\ movl %3,%%ebx;\ @@ -115,10 +116,11 @@ void addn(N n1,N n2,N *nr) jnz Lstart_addn;\ movl $0,%%eax;\ adcl %%eax,%%eax;\ - movl %%eax,%0"\ + movl %%eax,%0;\ + popl %%ebx"\ :"=m"(c)\ :"m"(m1),"m"(m2),"m"(mr),"m"(d2)\ - :"eax","ebx","ecx","edx","esi","edi"); + :"eax","ecx","edx","esi","edi"); #endif for ( i = d2, m1 += d2, mr += d2; (i < d1) && c ; i++ ) { tmp = *m1++ + c; @@ -175,7 +177,7 @@ int subn(N n1,N n2,N *nr) } *nr = r = NALLOC(d1); INITRC(r); mr = BD(r); -#if defined(VISUAL) +#if defined(_M_IX86) __asm { push esi push edi @@ -202,6 +204,7 @@ int subn(N n1,N n2,N *nr) } #else asm volatile("\ + pushl %%ebx;\ movl %1,%%esi;\ movl %2,%%edi;\ movl %3,%%ebx;\ @@ -219,10 +222,11 @@ int subn(N n1,N n2,N *nr) jnz Lstart_subn;\ movl $0,%%eax;\ adcl %%eax,%%eax;\ - movl %%eax,%0"\ + movl %%eax,%0;\ + popl %%ebx"\ :"=m"(br)\ :"m"(m1),"m"(m2),"m"(mr),"m"(d2)\ - :"eax","ebx","ecx","edx","esi","edi"); + :"eax","ecx","edx","esi","edi"); #endif for ( i = d2, m1 += d2, mr += d2; (i < d1) && br; i++ ) { t = *m1++; @@ -257,7 +261,7 @@ void _addn(N n1,N n2,N nr) } mr = BD(nr); -#if defined(VISUAL) +#if defined(_M_IX86) __asm { push esi push edi @@ -284,6 +288,7 @@ void _addn(N n1,N n2,N nr) } #else asm volatile("\ + pushl %%ebx;\ movl %1,%%esi;\ movl %2,%%edi;\ movl %3,%%ebx;\ @@ -301,10 +306,11 @@ void _addn(N n1,N n2,N nr) jnz Lstart__addn;\ movl $0,%%eax;\ adcl %%eax,%%eax;\ - movl %%eax,%0"\ + movl %%eax,%0;\ + popl %%ebx"\ :"=m"(c)\ :"m"(m1),"m"(m2),"m"(mr),"m"(d2)\ - :"eax","ebx","ecx","edx","esi","edi"); + :"eax","ecx","edx","esi","edi"); #endif for ( i = d2, m1 += d2, mr += d2; (i < d1) && c ; i++ ) { tmp = *m1++ + c; @@ -360,7 +366,7 @@ int _subn(N n1,N n2,N nr) } mr = BD(nr); -#if defined(VISUAL) +#if defined(_M_IX86) __asm { push esi push edi @@ -387,6 +393,7 @@ int _subn(N n1,N n2,N nr) } #else asm volatile("\ + pushl %%ebx;\ movl %1,%%esi;\ movl %2,%%edi;\ movl %3,%%ebx;\ @@ -404,10 +411,11 @@ int _subn(N n1,N n2,N nr) jnz Lstart__subn;\ movl $0,%%eax;\ adcl %%eax,%%eax;\ - movl %%eax,%0"\ + movl %%eax,%0;\ + popl %%ebx"\ :"=m"(br)\ :"m"(m1),"m"(m2),"m"(mr),"m"(d2)\ - :"eax","ebx","ecx","edx","esi","edi"); + :"eax","ecx","edx","esi","edi"); #endif for ( i = d2, m1 += d2, mr += d2; (i < d1) && br; i++ ) { t = *m1++;