[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] x86/asm: Remove HAVE_AS_INVPCID



commit 5d40380ee9d647874b3e49c0d263eeeb3bb7851e
Author:     Denis Mukhin <dmukhin@xxxxxxxx>
AuthorDate: Thu Apr 3 18:23:13 2025 +0000
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Thu Apr 3 21:29:34 2025 +0100

    x86/asm: Remove HAVE_AS_INVPCID
    
    The new toolchain baseline knows the INVPCID instruction; no need to carry 
the
    workaround in the code.
    
    No functional change.
    
    Resolves: https://gitlab.com/xen-project/xen/-/work_items/209
    Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 xen/arch/x86/arch.mk               |  1 -
 xen/arch/x86/include/asm/invpcid.h | 18 ++++--------------
 2 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 6d2876b1a8..dcc8c3c330 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -16,7 +16,6 @@ $(call as-option-add,CFLAGS,CC,"xsaveopt 
(%rax)",-DHAVE_AS_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
-$(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
 
diff --git a/xen/arch/x86/include/asm/invpcid.h 
b/xen/arch/x86/include/asm/invpcid.h
index bf5c30313a..204052f1b4 100644
--- a/xen/arch/x86/include/asm/invpcid.h
+++ b/xen/arch/x86/include/asm/invpcid.h
@@ -5,9 +5,6 @@
 
 extern bool use_invpcid;
 
-#define INVPCID_OPCODE ".byte 0x66, 0x0f, 0x38, 0x82\n"
-#define MODRM_ECX_01   ".byte 0x01\n"
-
 static inline void invpcid(unsigned int pcid, unsigned long addr,
                            unsigned int type)
 {
@@ -17,17 +14,10 @@ static inline void invpcid(unsigned int pcid, unsigned long 
addr,
         uint64_t addr;
     } desc = { .pcid = pcid, .addr = addr };
 
-    asm volatile (
-#ifdef HAVE_AS_INVPCID
-                  "invpcid %[desc], %q[type]"
-                  : /* No output */
-                  : [desc] "m" (desc), [type] "r" (type)
-#else
-                  INVPCID_OPCODE MODRM_ECX_01
-                  : /* No output */
-                  : "a" (type), "c" (&desc)
-#endif
-                  : "memory" );
+    asm volatile ( "invpcid %[desc], %q[type]"
+                   :
+                   : [desc] "m" (desc), [type] "r" (type)
+                   : "memory" );
 }
 
 /* Flush all mappings for a given PCID and addr, not including globals */
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.