* winbase.h (ilockincr): YA correction to ensure correct operation with no

optimization.
(ilockdecr): Ditto.
This commit is contained in:
Christopher Faylor
2004-06-03 20:48:02 +00:00
parent 414bfc1072
commit ee94df3ecc
2 changed files with 10 additions and 4 deletions

View File

@@ -9,9 +9,9 @@ ilockincr (long *m)
register int __res;
__asm__ __volatile__ ("\n\
movl $1,%0\n\
lock xadd %0,%1\n\
lock xadd %0,%2\n\
inc %0\n\
": "=a" (__res), "+m" (*m): : "cc");
": "=a" (__res), "=m" (*m): "m" (m): "cc");
return __res;
}
@@ -21,9 +21,9 @@ ilockdecr (long *m)
register int __res;
__asm__ __volatile__ ("\n\
movl $0xffffffff,%0\n\
lock xadd %0,%1\n\
lock xadd %0,%2\n\
dec %0\n\
": "=a" (__res), "+m" (*m): : "cc");
": "=a" (__res), "=m" (*m): "m" (m): "cc");
return __res;
}