Use newer constraints for atomic_cmpset().

Requested by:	bde
This commit is contained in:
John Baldwin 2001-11-12 18:53:45 +00:00
parent dd05edcb0f
commit d900909439
2 changed files with 18 additions and 22 deletions

View File

@ -120,18 +120,17 @@ atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src)
__asm __volatile(
" pushfl ; "
" cli ; "
" cmpl %1,%3 ; "
" cmpl %0,%2 ; "
" jne 1f ; "
" movl %2,%3 ; "
" movl %1,%2 ; "
"1: "
" sete %%al; "
" movzbl %%al,%0 ; "
" popfl ; "
"# atomic_cmpset_int"
: "=a" (res) /* 0 (result) */
: "0" (exp), /* 1 */
"r" (src), /* 2 */
"m" (*(dst)) /* 3 */
: "+a" (res) /* 0 (result) */
: "r" (src), /* 1 */
"m" (*(dst)) /* 2 */
: "memory");
return (res);
@ -144,15 +143,14 @@ atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src)
__asm __volatile (
" " MPLOCKED " "
" cmpxchgl %2,%3 ; "
" cmpxchgl %1,%2 ; "
" setz %%al ; "
" movzbl %%al,%0 ; "
"1: "
"# atomic_cmpset_int"
: "=a" (res) /* 0 (result) */
: "0" (exp), /* 1 */
"r" (src), /* 2 */
"m" (*(dst)) /* 3 */
: "+a" (res) /* 0 (result) */
: "r" (src), /* 1 */
"m" (*(dst)) /* 2 */
: "memory");
return (res);

View File

@ -120,18 +120,17 @@ atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src)
__asm __volatile(
" pushfl ; "
" cli ; "
" cmpl %1,%3 ; "
" cmpl %0,%2 ; "
" jne 1f ; "
" movl %2,%3 ; "
" movl %1,%2 ; "
"1: "
" sete %%al; "
" movzbl %%al,%0 ; "
" popfl ; "
"# atomic_cmpset_int"
: "=a" (res) /* 0 (result) */
: "0" (exp), /* 1 */
"r" (src), /* 2 */
"m" (*(dst)) /* 3 */
: "+a" (res) /* 0 (result) */
: "r" (src), /* 1 */
"m" (*(dst)) /* 2 */
: "memory");
return (res);
@ -144,15 +143,14 @@ atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src)
__asm __volatile (
" " MPLOCKED " "
" cmpxchgl %2,%3 ; "
" cmpxchgl %1,%2 ; "
" setz %%al ; "
" movzbl %%al,%0 ; "
"1: "
"# atomic_cmpset_int"
: "=a" (res) /* 0 (result) */
: "0" (exp), /* 1 */
"r" (src), /* 2 */
"m" (*(dst)) /* 3 */
: "+a" (res) /* 0 (result) */
: "r" (src), /* 1 */
"m" (*(dst)) /* 2 */
: "memory");
return (res);