--- src/vc.c.orig Tue Feb 20 23:38:10 2001 +++ src/vc.c Tue Feb 20 23:41:25 2001 @@ -37,7 +37,13 @@ #include #elif defined(__FreeBSD__) #include -#include +#include +#if __FreeBSD_version >= 410000 +# include +# include +#else +# include +#endif #endif #include #if defined(linux) @@ -94,28 +100,26 @@ inline void blatch(void *head, int n) { - __asm__("\t clc\n" + __asm__ volatile("\t clc\n" "1:\n" "\t andb %%bl, (%%eax)\n" "\t incl %%eax\n" "\t loop 1b\n" - : - : "eax" ((long)head), "bl" (0x7F), "c" (n) - : "bl", "cx" ); + : "=bl" (head), "=c" (n) + : "eax" ((long)head), "0" (0x7F), "1" (n)); } static inline void llatch(void *head, int n) { - __asm__("\t clc\n" + __asm__ volatile("\t clc\n" "1:\n" "\t andl %%ebx, (%%eax)\n" "\t addl $4, %%eax\n" "\t loop 1b\n" - : - : "eax" ((long)head), "ebx" (0x7F7F7F7F), "c" (n>>2) - : "ebx", "cx" ); + : "=ebx" (head), "=c" (n) + : "eax" ((long)head), "0" (0x7F7F7F7F), "1" (n>>2)); } static inline u_int TextAddress(u_int x, u_int y)