--- dip-3.3.7o/command.c Thu Aug 5 20:36:48 1999 +++ dip-3.3.7o-fixed/command.c Thu Aug 5 20:35:25 1999 @@ -2536,8 +2536,7 @@ "\t adcl %%edx,%%ebx\n" "\t adcl $0, %%ebx\n" : "=b"(sum) - : "0"(daddr), "c"(saddr), "d"((ntohs(len) << 16) + IPPROTO_UDP*256) - : "cx","bx","dx" ); + : "0"(daddr), "c"(saddr), "d"((ntohs(len) << 16) + IPPROTO_UDP*256)); if (len > 3) { __asm__("\tclc\n" @@ -2548,7 +2547,7 @@ "\t adcl $0, %%ebx\n" : "=b"(sum) , "=S"(uh) : "0"(sum), "c"(len/4) ,"1"(uh) - : "ax", "cx", "bx", "si" ); + : "ax" ); } /* Convert from 32 bits to 16 bits. */ @@ -2558,7 +2557,7 @@ "\t adcw $0, %%bx\n" : "=b"(sum) : "0"(sum) - : "bx", "cx"); + : "cx"); /* Check for an extra word. */ if ((len & 2) != 0) { @@ -2567,7 +2566,7 @@ "\t adcw $0, %%bx\n" : "=b"(sum), "=S"(uh) : "0"(sum) ,"1"(uh) - : "si", "ax", "bx"); + : "ax"); } /* Now check for the extra byte. */ @@ -2578,7 +2577,7 @@ "\t adcw $0, %%bx\n" : "=b"(sum) : "0"(sum) ,"S"(uh) - : "si", "ax", "bx"); + : "ax"); } /* We only want the bottom 16 bits, but we never cleared the top 16. */