make x86 math-emu in 2.4.21 compile with gcc 3.3
PATCH 1/1 make x86 math-emu in 2.4.21 compile with gcc 3.3
I'm surprised this hasn't shown up before, but I guess nobody has tried compiling 2.4.21 for i386 using gcc 3.3 yet. Currently the x86 math-emu code does not compile with gcc 3.3 due to some missing semicolons and quotes. This patch fixes things up so it compiles once again.
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
arch/i386/math-emu/poly.h renamed from arch/i386/math-emu/poly.h.orig +23 -23
@@ -64,9 +64,9 @@ const unsigned long arg2) {int retval; - asmvolatile ("mull %2; movl %%edx,%%eax" \ - :"=a" (retval) \ - :"0" (arg1),"g" (arg2) \ + asmvolatile ("mull %2; movl %%edx,%%eax;" + :"=a" (retval) + :"0" (arg1),"g" (arg2) :"dx" );return retval; }
@@ -75,10 +75,10 @@/* Add the 12 byte Xsig x2 to Xsig dest, with no checks for overflow. */ static inline void add_Xsig_Xsig (Xsig *dest,const Xsig *x2) { - asmvolatile ("movl %1,%%edi; movl %2,%%esi; - movl (%%esi),%%eax; addl %%eax,(%%edi); - movl 4(%%esi),%%eax; adcl %%eax,4(%%edi); - movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" + asmvolatile ("movl %1,%%edi; movl %2,%%esi;" +"movl (%%esi),%%eax; addl %%eax,(%%edi);" +"movl 4(%%esi),%%eax; adcl %%eax,4(%%edi);" +"movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" :"=g" (*dest):"g" (dest),"g" (x2) :"ax" ,"si" ,"di" ); }
@@ -90,19 +90,19 @@problem, but keep fingers crossed! */ static inline void add_two_Xsig (Xsig *dest,const Xsig *x2,long int *exp) { - asmvolatile ("movl %2,%%ecx; movl %3,%%esi; - movl (%%esi),%%eax; addl %%eax,(%%ecx); - movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx); - movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx); - jnc 0f; - rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx) - movl %4,%%ecx; incl (%%ecx) - movl $1,%%eax; jmp 1f; - 0: xorl %%eax,%%eax; - 1:" + asmvolatile ("movl %2,%%ecx; movl %3,%%esi;" +"movl (%%esi),%%eax; addl %%eax,(%%ecx);" +"movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx);" +"movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx);" +"jnc 0f;" +"rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx);" +"movl %4,%%ecx; incl (%%ecx);" +"movl $1,%%eax; jmp 1f;" +"0: xorl %%eax,%%eax;" +"1:" :"=g" (*exp),"=g" (*dest) :"g" (dest),"g" (x2),"g" (exp) - :"cx" ,"si" ,"ax" ); + :"cx" ,"si" ,"ax" ); }
@@ -110,11 +110,11 @@/* This is faster in a loop on my 386 than using the "neg" instruction. */ static inline void negate_Xsig (Xsig *x) { - asmvolatile ("movl %1,%%esi; " -"xorl %%ecx,%%ecx; " -"movl %%ecx,%%eax; subl (%%esi),%%eax; movl %%eax,(%%esi); " -"movl %%ecx,%%eax; sbbl 4(%%esi),%%eax; movl %%eax,4(%%esi); " -"movl %%ecx,%%eax; sbbl 8(%%esi),%%eax; movl %%eax,8(%%esi); " + asmvolatile ("movl %1,%%esi;" +"xorl %%ecx,%%ecx;" +"movl %%ecx,%%eax; subl (%%esi),%%eax; movl %%eax,(%%esi);" +"movl %%ecx,%%eax; sbbl 4(%%esi),%%eax; movl %%eax,4(%%esi);" +"movl %%ecx,%%eax; sbbl 8(%%esi),%%eax; movl %%eax,8(%%esi);" :"=g" (*x):"g" (x):"si" ,"ax" ,"cx" ); }