x86, asm: Use CC_SET()/CC_OUT() in <asm/bitops.h>
authorH. Peter Anvin <hpa@zytor.com>
Wed, 8 Jun 2016 19:38:42 +0000 (12:38 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 8 Jun 2016 19:41:20 +0000 (12:41 -0700)
Remove open-coded uses of set instructions to use CC_SET()/CC_OUT() in
<asm/bitops.h>.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Link: http://lkml.kernel.org/r/1465414726-197858-7-git-send-email-hpa@linux.intel.com
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Reviewed-by: Borislav Petkov <bp@suse.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
arch/x86/include/asm/bitops.h

index ed8f4851262f2674b0e26e871e49d3c1117aeb48..68557f52b9619ddfed7681fc43c2d0530c625f0f 100644 (file)
@@ -233,8 +233,8 @@ static __always_inline bool __test_and_set_bit(long nr, volatile unsigned long *
        bool oldbit;
 
        asm("bts %2,%1\n\t"
-           "setc %0"
-           : "=qm" (oldbit), ADDR
+           CC_SET(c)
+           : CC_OUT(c) (oldbit), ADDR
            : "Ir" (nr));
        return oldbit;
 }
@@ -273,8 +273,8 @@ static __always_inline bool __test_and_clear_bit(long nr, volatile unsigned long
        bool oldbit;
 
        asm volatile("btr %2,%1\n\t"
-                    "setc %0"
-                    : "=qm" (oldbit), ADDR
+                    CC_SET(c)
+                    : CC_OUT(c) (oldbit), ADDR
                     : "Ir" (nr));
        return oldbit;
 }
@@ -285,8 +285,8 @@ static __always_inline bool __test_and_change_bit(long nr, volatile unsigned lon
        bool oldbit;
 
        asm volatile("btc %2,%1\n\t"
-                    "setc %0"
-                    : "=qm" (oldbit), ADDR
+                    CC_SET(c)
+                    : CC_OUT(c) (oldbit), ADDR
                     : "Ir" (nr) : "memory");
 
        return oldbit;
@@ -316,8 +316,8 @@ static __always_inline bool variable_test_bit(long nr, volatile const unsigned l
        bool oldbit;
 
        asm volatile("bt %2,%1\n\t"
-                    "setc %0"
-                    : "=qm" (oldbit)
+                    CC_SET(c)
+                    : CC_OUT(c) (oldbit)
                     : "m" (*(unsigned long *)addr), "Ir" (nr));
 
        return oldbit;