x86, asm, boot: Use CC_SET()/CC_OUT() in arch/x86/boot/boot.h
Remove open-coded uses of set instructions to use CC_SET()/CC_OUT() in arch/x86/boot/boot.h. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com> Link: http://lkml.kernel.org/r/1465414726-197858-10-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
35ccfb7114
commit
66928b4eb9
|
@ -24,6 +24,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/edd.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/asm.h>
|
||||
#include "bitops.h"
|
||||
#include "ctype.h"
|
||||
#include "cpuflags.h"
|
||||
|
@ -179,15 +180,15 @@ static inline void wrgs32(u32 v, addr_t addr)
|
|||
static inline bool memcmp_fs(const void *s1, addr_t s2, size_t len)
|
||||
{
|
||||
bool diff;
|
||||
asm volatile("fs; repe; cmpsb; setnz %0"
|
||||
: "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
|
||||
asm volatile("fs; repe; cmpsb" CC_SET(nz)
|
||||
: CC_OUT(nz) (diff), "+D" (s1), "+S" (s2), "+c" (len));
|
||||
return diff;
|
||||
}
|
||||
static inline bool memcmp_gs(const void *s1, addr_t s2, size_t len)
|
||||
{
|
||||
bool diff;
|
||||
asm volatile("gs; repe; cmpsb; setnz %0"
|
||||
: "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
|
||||
asm volatile("gs; repe; cmpsb" CC_SET(nz)
|
||||
: CC_OUT(nz) (diff), "+D" (s1), "+S" (s2), "+c" (len));
|
||||
return diff;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue