1 | --- fpu/poly.h Fri Oct 5 22:53:46 2001 |
---|
2 | +++ fpu/poly_monkey.h Sun Nov 2 23:23:20 2003 |
---|
3 | @@ -114,10 +114,10 @@ |
---|
4 | } |
---|
5 | dest->msw += x2->msw; |
---|
6 | #else |
---|
7 | - asm volatile ("movl %1,%%edi; movl %2,%%esi; |
---|
8 | - movl (%%esi),%%eax; addl %%eax,(%%edi); |
---|
9 | - movl 4(%%esi),%%eax; adcl %%eax,4(%%edi); |
---|
10 | - movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" |
---|
11 | + asm volatile ("movl %1,%%edi; movl %2,%%esi;" |
---|
12 | + "movl (%%esi),%%eax; addl %%eax,(%%edi);" |
---|
13 | + "movl 4(%%esi),%%eax; adcl %%eax,4(%%edi);" |
---|
14 | + "movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" |
---|
15 | :"=g" (*dest):"g" (dest), "g" (x2) |
---|
16 | :"ax","si","di"); |
---|
17 | #endif |
---|
18 | @@ -168,16 +168,16 @@ |
---|
19 | /* Note: the constraints in the asm statement didn't always work properly |
---|
20 | with gcc 2.5.8. Changing from using edi to using ecx got around the |
---|
21 | problem, but keep fingers crossed! */ |
---|
22 | - asm volatile ("movl %2,%%ecx; movl %3,%%esi; |
---|
23 | - movl (%%esi),%%eax; addl %%eax,(%%ecx); |
---|
24 | - movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx); |
---|
25 | - movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx); |
---|
26 | - jnc 0f; |
---|
27 | - rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx) |
---|
28 | - movl %4,%%ecx; incl (%%ecx) |
---|
29 | - movl $1,%%eax; jmp 1f; |
---|
30 | - 0: xorl %%eax,%%eax; |
---|
31 | - 1:" |
---|
32 | + asm volatile ("movl %2,%%ecx; movl %3,%%esi;" |
---|
33 | + "movl (%%esi),%%eax; addl %%eax,(%%ecx);" |
---|
34 | + "movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx);" |
---|
35 | + "movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx);" |
---|
36 | + " jnc 0f;" |
---|
37 | + "rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx)" |
---|
38 | + ": movl %4,%%ecx; incl (%%ecx)" |
---|
39 | + "movl $1,%%eax; jmp 1f;" |
---|
40 | + "0: xorl %%eax,%%eax;" |
---|
41 | + 1: |
---|
42 | :"=g" (*exp), "=g" (*dest) |
---|
43 | :"g" (dest), "g" (x2), "g" (exp) |
---|
44 | :"cx","si","ax"); |
---|