linux_dsm_epyc7002/drivers/kvm
Laurent Vivier ff593e5abe KVM: VMX: Let gcc to choose which registers to save (i386)
This patch lets GCC to determine which registers to save when we
switch to/from a VCPU in the case of intel i386.

* Original code saves following registers:

    eax, ebx, ecx, edx, edi, esi, ebp (using popa)

* Patched code:

  - informs GCC that we modify following registers
    using the clobber description:

    ebx, edi, rsi

  - doesn't save eax because it is an output operand (vmx->fail)

  - cannot put ecx in clobber description because it is an input operand,
    but as we modify it and we want to keep its value (vcpu), we must
    save it (pop/push)

  - ebp is saved (pop/push) because GCC seems to ignore its use the clobber
    description.

  - edx is saved (pop/push) because it is reserved by GCC (REGPARM) and
    cannot be put in the clobber description.

  - line "mov (%%esp), %3 \n\t" has been removed because %3
    is ecx and ecx is restored just after.

Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-01-30 17:52:56 +02:00
..
i8259.c KVM: Export PIC reset for kernel device reset 2008-01-30 17:52:55 +02:00
ioapic.c KVM: Split IOAPIC reset function and export for kernel RESET 2008-01-30 17:52:55 +02:00
irq.c KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) 2008-01-30 17:52:54 +02:00
irq.h KVM: Split IOAPIC reset function and export for kernel RESET 2008-01-30 17:52:55 +02:00
Kconfig Consolidate host virtualization support under Virtualization menu 2007-10-23 15:49:47 +10:00
kvm_main.c KVM: Add ioctl to tss address from userspace, 2008-01-30 17:52:56 +02:00
kvm_svm.h KVM: Dynamically allocate vcpus 2007-10-13 10:18:20 +02:00
kvm.h KVM: Add ioctl to tss address from userspace, 2008-01-30 17:52:56 +02:00
lapic.c KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) 2008-01-30 17:52:54 +02:00
Makefile KVM: Move x86 msr handling to new files x86.[ch] 2008-01-30 17:52:51 +02:00
mmu.c KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) 2008-01-30 17:52:54 +02:00
paging_tmpl.h KVM: MMU: Partial swapping of guest memory 2008-01-30 17:52:54 +02:00
segment_descriptor.h [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00
svm.c KVM: Add ioctl to tss address from userspace, 2008-01-30 17:52:56 +02:00
svm.h KVM: CodingStyle cleanup 2008-01-30 17:52:50 +02:00
vmx.c KVM: VMX: Let gcc to choose which registers to save (i386) 2008-01-30 17:52:56 +02:00
vmx.h KVM: CodingStyle cleanup 2008-01-30 17:52:50 +02:00
x86_emulate.c KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) 2008-01-30 17:52:54 +02:00
x86_emulate.h KVM: x86 emulator: Remove no_wb, use dst.type = OP_NONE instead 2008-01-30 17:52:49 +02:00
x86.c KVM: Portability: split kvm_vcpu_ioctl 2008-01-30 17:52:52 +02:00
x86.h KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) 2008-01-30 17:52:54 +02:00