[PATCH] make x86 math-emu in 2.4.21 compile with gcc 3.3

From: Erik Andersen (andersen@codepoet.org)
Date: Sat Jun 21 2003 - 02:30:25 EST


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--

--- linux-2.4.21-erik/arch/i386/math-emu/poly.h.orig 2003-06-21 01:25:29.000000000 -0600 +++ linux-2.4.21-erik/arch/i386/math-emu/poly.h 2003-06-21 01:24:25.000000000 -0600 @@ -64,9 +64,9 @@ const unsigned long arg2) { int retval; - asm volatile ("mull %2; movl %%edx,%%eax" \ - :"=a" (retval) \ - :"0" (arg1), "g" (arg2) \ + asm volatile ("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) { - asm volatile ("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);" + asm volatile ("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) { - asm volatile ("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:" + asm volatile ("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) { - asm volatile("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); " + asm volatile("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"); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jun 23 2003 - 22:00:35 EST