From: Alexander M. Merritt Date: Wed, 2 Apr 2025 14:54:10 +0000 (+0000) Subject: x86/svm: Drop wrappers of SVM instructions X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ae5fd39be98c6219a302045aec7c25bdafa81781;p=xen.git x86/svm: Drop wrappers of SVM instructions The new toolchain baseline knows the SVM instructions. Resolves: xen-project/xen#204 Signed-off-by: "Alexander M. Merritt" Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h index beeaaab4f7..f5b0312d2d 100644 --- a/xen/arch/x86/hvm/svm/svm.h +++ b/xen/arch/x86/hvm/svm/svm.h @@ -23,25 +23,17 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len); static inline void svm_vmload_pa(paddr_t vmcb) { - asm volatile ( - ".byte 0x0f,0x01,0xda" /* vmload */ - : : "a" (vmcb) : "memory" ); + asm volatile ( "vmload" :: "a" (vmcb) : "memory" ); } static inline void svm_vmsave_pa(paddr_t vmcb) { - asm volatile ( - ".byte 0x0f,0x01,0xdb" /* vmsave */ - : : "a" (vmcb) : "memory" ); + asm volatile ( "vmsave" :: "a" (vmcb) : "memory" ); } static inline void svm_invlpga(unsigned long linear, uint32_t asid) { - asm volatile ( - ".byte 0x0f,0x01,0xdf" - : /* output */ - : /* input */ - "a" (linear), "c" (asid) ); + asm volatile ( "invlpga" :: "a" (linear), "c" (asid) ); } /* diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h index ab653f3218..1b821db49c 100644 --- a/xen/arch/x86/include/asm/asm-defns.h +++ b/xen/arch/x86/include/asm/asm-defns.h @@ -1,17 +1,5 @@ #include -.macro vmrun - .byte 0x0f, 0x01, 0xd8 -.endm - -.macro stgi - .byte 0x0f, 0x01, 0xdc -.endm - -.macro clgi - .byte 0x0f, 0x01, 0xdd -.endm - /* * Call a noreturn function. This could be JMP, but CALL results in a more * helpful backtrace. BUG is to catch functions which do decide to return...