x86, bitops: remove use of "sbb" to return CF
Use SETC instead of SBB to return the value of CF from assembly. Using SETcc enables uniformity with other flags-returning pieces of assembly code. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Link: http://lkml.kernel.org/r/1465414726-197858-2-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:
committed by
H. Peter Anvin
parent
f5967101e9
commit
2823d4da5d
@@ -79,10 +79,10 @@ static inline void sync_change_bit(long nr, volatile unsigned long *addr)
|
||||
*/
|
||||
static inline int sync_test_and_set_bit(long nr, volatile unsigned long *addr)
|
||||
{
|
||||
int oldbit;
|
||||
unsigned char oldbit;
|
||||
|
||||
asm volatile("lock; bts %2,%1\n\tsbbl %0,%0"
|
||||
: "=r" (oldbit), "+m" (ADDR)
|
||||
asm volatile("lock; bts %2,%1\n\tsetc %0"
|
||||
: "=qm" (oldbit), "+m" (ADDR)
|
||||
: "Ir" (nr) : "memory");
|
||||
return oldbit;
|
||||
}
|
||||
@@ -97,10 +97,10 @@ static inline int sync_test_and_set_bit(long nr, volatile unsigned long *addr)
|
||||
*/
|
||||
static inline int sync_test_and_clear_bit(long nr, volatile unsigned long *addr)
|
||||
{
|
||||
int oldbit;
|
||||
unsigned char oldbit;
|
||||
|
||||
asm volatile("lock; btr %2,%1\n\tsbbl %0,%0"
|
||||
: "=r" (oldbit), "+m" (ADDR)
|
||||
asm volatile("lock; btr %2,%1\n\tsetc %0"
|
||||
: "=qm" (oldbit), "+m" (ADDR)
|
||||
: "Ir" (nr) : "memory");
|
||||
return oldbit;
|
||||
}
|
||||
@@ -115,10 +115,10 @@ static inline int sync_test_and_clear_bit(long nr, volatile unsigned long *addr)
|
||||
*/
|
||||
static inline int sync_test_and_change_bit(long nr, volatile unsigned long *addr)
|
||||
{
|
||||
int oldbit;
|
||||
unsigned char oldbit;
|
||||
|
||||
asm volatile("lock; btc %2,%1\n\tsbbl %0,%0"
|
||||
: "=r" (oldbit), "+m" (ADDR)
|
||||
asm volatile("lock; btc %2,%1\n\tsetc %0"
|
||||
: "=qm" (oldbit), "+m" (ADDR)
|
||||
: "Ir" (nr) : "memory");
|
||||
return oldbit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user