freebsd-skq/sys/amd64
Neel Natu ba9b7bf73a Revamp the x86 instruction emulation in bhyve.
On a nested page table fault the hypervisor will:
- fetch the instruction using the guest %rip and %cr3
- decode the instruction in 'struct vie'
- emulate the instruction in host kernel context for local apic accesses
- any other type of mmio access is punted up to user-space (e.g. ioapic)

The decoded instruction is passed as collateral to the user-space process
that is handling the PAGING exit.

The emulation code is fleshed out to include more addressing modes (e.g. SIB)
and more types of operands (e.g. imm8). The source code is unified into a
single file (vmm_instruction_emul.c) that is compiled into vmm.ko as well
as /usr/sbin/bhyve.

Reviewed by:	grehan
Obtained from:	NetApp
2012-11-28 00:02:17 +00:00
..
acpica - Remove unused code for CR3 and CR4. 2012-06-13 22:53:56 +00:00
amd64 IFC @ r243164 2012-11-17 02:55:47 +00:00
compile
conf IFC @ r242684 2012-11-11 03:26:14 +00:00
ia32 Real hardware, as opposed to QEMU, does not allow to have a call gate 2012-08-14 12:13:27 +00:00
include Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
linux32 Revert previous commit... 2012-10-10 08:36:38 +00:00
pci pciereg_cfg*: use assembly to access the mem-mapped cfg space 2012-10-14 10:13:50 +00:00
vmm Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
Makefile