From d9009094398fbdf0e79e8fa16ce715f9f2ab25f7 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 12 Nov 2001 18:53:45 +0000 Subject: [PATCH] Use newer constraints for atomic_cmpset(). Requested by: bde --- sys/amd64/include/atomic.h | 20 +++++++++----------- sys/i386/include/atomic.h | 20 +++++++++----------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/sys/amd64/include/atomic.h b/sys/amd64/include/atomic.h index c3ad67a586c1..0da813316238 100644 --- a/sys/amd64/include/atomic.h +++ b/sys/amd64/include/atomic.h @@ -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); diff --git a/sys/i386/include/atomic.h b/sys/i386/include/atomic.h index c3ad67a586c1..0da813316238 100644 --- a/sys/i386/include/atomic.h +++ b/sys/i386/include/atomic.h @@ -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);