x86, asm: Use CC_SET()/CC_OUT() in <asm/bitops.h>
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>
This commit is contained in:
parent
ba741e356c
commit
86b61240d4
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue