Added an infix 'ASMFIX' to the PATMA.h fixup types used in the patch template code in PATMA.asm.
PATM,CPUM: Redid the CPUID stuff by calling a patch helper function implemented by CPUM. This eliminates needing to expose CPUM guts to in patches that gets saved. Also reimplemented the lookup as a binary search (for the leaf, not sub-leaf).
VMM,REM: CPUID revamp - almost there now.
PATM,CPUM: CPUID patch update.
Oops
PATMA.asm: New way of writing patches that exploits the fact that we're using different sections for code and record/fixups.
PATM: Doing some more cleanups while trying to understand stuff again.
PATM: Renamed the PATMA.asm global data to g_patm* (was PATM*).
PATM: Added some comments and formalized the reloc array type (instead of having two anonymous uint32_t's).
Ring-1 compression patches, courtesy of trivirt AG: - main: diff to remove the hwvirt requirement for QNX - rem: diff for dealing with raw ring 0/1 selectors and general changes to allowed guest execution states - vmm: changes for using the guest's TSS selector index as our hypervisor TSS selector (makes str safe) (VBOX_WITH_SAFE_STR ) - vmm: changes for dealing with guest ring 1 code (VBOX_WITH_RAW_RING1) - vmm: change to emulate smsw in RC/R0 (QNX uses this old style instruction a lot so going to qemu for emulation is very expensive) - vmm: change (hack) to kick out patm virtual handlers in case they conflict with guest GDT/TSS write monitors; we should allow multiple handlers per page, but that change would be rather invasive
header (C) fixes
VMMR3/PATMA.asm: moved all patch records to the data section to prevent text relocations in the binary (thanks Mathias Krause!)
Moved VBox/x86.h/mac to iprt/x86.h/mac.
tabs
VMM reorg: Moving PATM to where the other VMM sources are.