|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/3] x86: drop NOP_DS_PREFIX
This wasn't really necessary to introduce: The binutils change
permitting use of standalone "ds" (and "cs") in 64-bit code predates
the minimum binutils version we support.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
In fact we could patch _just_ the opcode prefix in flush_area_local().
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -247,8 +247,7 @@ unsigned int flush_area_local(const void
{
alternative("", "sfence", X86_FEATURE_CLFLUSHOPT);
for ( i = 0; i < sz; i += c->x86_clflush_size )
- alternative_input(".byte " __stringify(NOP_DS_PREFIX) ";"
- " clflush %0",
+ alternative_input("ds; clflush %0",
"data16 clflush %0", /* clflushopt */
X86_FEATURE_CLFLUSHOPT,
"m" (((const char *)va)[i]));
@@ -298,11 +297,11 @@ void cache_writeback(const void *addr, u
# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
#endif
/*
- * Note regarding the use of NOP_DS_PREFIX: it's faster to do a clflush
+ * Note regarding the "ds" prefix use: it's faster to do a clflush
* + prefix than a clflush + nop, and hence the prefix is added instead
* of letting the alternative framework fill the gap by appending nops.
*/
- alternative_io_2(".byte " __stringify(NOP_DS_PREFIX) "; clflush %[p]",
+ alternative_io_2("ds; clflush %[p]",
"data16 clflush %[p]", /* clflushopt */
X86_FEATURE_CLFLUSHOPT,
CLWB_ENCODING,
--- a/xen/arch/x86/include/asm/nops.h
+++ b/xen/arch/x86/include/asm/nops.h
@@ -5,8 +5,6 @@
* Define nops for use with alternative().
*/
-#define NOP_DS_PREFIX 0x3e
-
/*
* Opteron 64bit nops
* 1: nop
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |