diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S index e816d661ab..442d2d62c6 100644 --- a/xen/arch/x86/hvm/svm/entry.S +++ b/xen/arch/x86/hvm/svm/entry.S @@ -97,24 +97,10 @@ UNLIKELY_END(svm_trace) VMRUN - GET_CURRENT(%rax) - push %rdi - push %rsi - push %rdx - push %rcx - mov VCPU_svm_vmcb(%rax),%rcx - push %rax - push %r8 - push %r9 - push %r10 - push %r11 - push %rbx - mov %rax,%rbx - push %rbp - push %r12 - push %r13 - push %r14 - push %r15 + SAVE_ALL + + GET_CURRENT(%rbx) + mov VCPU_svm_vmcb(%rbx),%rcx movb $0,VCPU_svm_vmcb_in_sync(%rbx) mov VMCB_rax(%rcx),%rax diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S index a5438a47f3..1744615bc6 100644 --- a/xen/arch/x86/hvm/vmx/entry.S +++ b/xen/arch/x86/hvm/vmx/entry.S @@ -29,23 +29,10 @@ #define VMLAUNCH .byte 0x0f,0x01,0xc2 ENTRY(vmx_asm_vmexit_handler) - push %rdi - push %rsi - push %rdx - push %rcx - push %rax + SAVE_ALL + mov %cr2,%rax - push %r8 - push %r9 - push %r10 - push %r11 - push %rbx GET_CURRENT(%rbx) - push %rbp - push %r12 - push %r13 - push %r14 - push %r15 movb $1,VCPU_vmx_launched(%rbx) mov %rax,VCPU_hvm_guest_cr2(%rbx)