Bochs/bochs/cpu
Stanislav Shwartsman 75bda1d5cd implemented SVM emulation support for Bochs (incomplete yet)
I am merging the code in order to start making shortcuts between VMX emulation and SVM emulation.
Of course SVM emulation is incomplete, completely untested and not expected to work.
But someone could already take a look one the code and give some suggestions.

Also looking for anybody with existing SVM kernels - as simple as possible - for testing.

Status:
 - exceptions intercept is not implemented yet
 - IO intercept is not implemented yet
 - MSR intercept is not implemented yet
 - virtual interrupts are not implemented yet
 - CPUID is not implemented yet

No advanced SVM featurez planned - I am implementing the very basic 'Pacifica' document from 2005 using QEMU code as reference.
2011-12-25 19:35:29 +00:00
..
cpudb implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
3dnow.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
access32.cc fixed dbg print mentioned in SF bug 3029271 2011-09-22 22:08:18 +00:00
access64.cc fixed dbg print mentioned in SF bug 3029271 2011-09-22 22:08:18 +00:00
access.cc implemented AVX instructions support 2011-03-19 20:09:34 +00:00
aes.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
apic.cc implemented TSC-Deadline APIC timer mode 2011-11-21 12:51:50 +00:00
apic.h implemented TSC-Deadline APIC timer mode 2011-11-21 12:51:50 +00:00
arith8.cc Merge lazy flags optimization by Darek Mihocka. 2011-09-12 19:36:53 +00:00
arith16.cc Merge lazy flags optimization by Darek Mihocka. 2011-09-12 19:36:53 +00:00
arith32.cc Merge lazy flags optimization by Darek Mihocka. 2011-09-12 19:36:53 +00:00
arith64.cc Merge lazy flags optimization by Darek Mihocka. 2011-09-12 19:36:53 +00:00
avx2.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
avx_fma.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
avx_pfp.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
avx.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
bcd.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
bit16.cc fixed flags handling for BMI instructions 2011-11-27 13:23:26 +00:00
bit32.cc fixed flags handling for BMI instructions 2011-11-27 13:23:26 +00:00
bit64.cc fixed flags handling for BMI instructions 2011-11-27 13:23:26 +00:00
bit.cc MOVBE instruction exists only in memory form 2011-08-25 21:20:50 +00:00
bmi32.cc BMI: fixed EFLAGS after BMI instructions (set EFLAGS while preserving PF was not implemented properly in 2.5 release) 2011-11-29 19:50:26 +00:00
bmi64.cc BMI: fixed EFLAGS after BMI instructions (set EFLAGS while preserving PF was not implemented properly in 2.5 release) 2011-11-29 19:50:26 +00:00
call_far.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
cpu.cc move inhibit interrrupts functionality to icount interface 2011-12-21 06:17:45 +00:00
cpu.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
cpuid.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
crc32.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
crregs.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
crregs.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
ctrl_xfer16.cc instrumentation: added special indication for indirect call/jump 2011-12-18 18:11:56 +00:00
ctrl_xfer32.cc instrumentation: added special indication for indirect call/jump 2011-12-18 18:11:56 +00:00
ctrl_xfer64.cc instrumentation: added special indication for indirect call/jump 2011-12-18 18:11:56 +00:00
ctrl_xfer_pro.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
data_xfer8.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
data_xfer16.cc move inhibit interrrupts functionality to icount interface 2011-12-21 06:17:45 +00:00
data_xfer32.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
data_xfer64.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
debugstuff.cc - Now you could disable x86-64 from .bochsrc so now it is possible to emulate 2011-09-25 17:36:20 +00:00
descriptor.h - deleted executable properties from source files 2011-04-03 10:29:19 +00:00
exception.cc accessors for DR6 and DR7 fields 2011-03-15 20:20:15 +00:00
fetchdecode64.cc RDMSR can also read TSC so make it end-of-trace as well (same as RDTSC) 2011-11-24 16:03:51 +00:00
fetchdecode_avx.h implemented PERMIL2PS/PERMIL2PD XOP instructions 2011-10-20 17:37:57 +00:00
fetchdecode_sse.h - Added support for AMD SSE4A emulation, the instructions can be enabled 2011-09-18 16:18:22 +00:00
fetchdecode_x87.h - deleted executable properties from source files 2011-04-03 10:29:19 +00:00
fetchdecode_xop.h disasm for XOP instructions 2011-10-30 08:58:49 +00:00
fetchdecode.cc move inhibit interrrupts functionality to icount interface 2011-12-21 06:17:45 +00:00
fetchdecode.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
flag_ctrl_pro.cc Merge lazy flags optimization by Darek Mihocka. 2011-09-12 19:36:53 +00:00
flag_ctrl.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
fpu_emu.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
gather.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
generic_cpuid.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
generic_cpuid.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
i387.h Adding Id and Rev property to all files 2011-02-24 21:54:04 +00:00
ia_opcodes.h implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
icache.cc Don't allow traces longer than cpu_loop can execute 2011-09-21 20:28:29 +00:00
icache.h set max trace length back to 32 2011-08-21 16:44:02 +00:00
init.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
instr.h Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
io.cc fixed compilation err 2011-11-28 21:16:40 +00:00
iret.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
jmp_far.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
lazy_flags.h fixed compilation warning 2011-12-02 19:40:31 +00:00
load.cc fixed some warnings after compilation with msvcpp 2010 2011-12-10 18:58:25 +00:00
logical8.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
logical16.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
logical32.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
logical64.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
Makefile.in implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
mmx.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
msr.cc implemented TSC-Deadline APIC timer mode 2011-11-21 12:51:50 +00:00
mult8.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
mult16.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
mult32.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
mult64.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
paging.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
proc_ctrl.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
protect_ctrl.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
resolver.cc Adding Id and Rev property to all files 2011-02-24 21:54:04 +00:00
ret_far.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
segment_ctrl_pro.cc VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE get corrupted after saving/restoring unusable selector 2011-12-19 16:06:53 +00:00
segment_ctrl.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
shift8.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
shift16.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
shift32.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
shift64.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
simd_compare.h Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
simd_int.h implemented PERMIL2PS/PERMIL2PD XOP instructions 2011-10-20 17:37:57 +00:00
simd_pfp.h added FMA4 AMD instructions support, fixed mem access length for Intel scalar FMA instructions 2011-10-07 14:09:35 +00:00
smm.cc syscall/sysret are not supported outside long64 mode in Intel CPUs 2011-08-30 21:32:40 +00:00
smm.h support for NX outside of x86-64. 2011-08-10 22:04:33 +00:00
soft_int.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
sse_move.cc - Added support for AVX and AVX2 instructions emulation, to enable configure 2011-08-27 13:47:16 +00:00
sse_pfp.cc Move DAZ handling into softfloat library (for float16, float32 and float64 only) and cleanup SSE and AVX code 2011-10-01 15:40:36 +00:00
sse_rcp.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
sse_string.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
sse.cc Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
stack16.cc move inhibit interrrupts functionality to icount interface 2011-12-21 06:17:45 +00:00
stack32.cc move inhibit interrrupts functionality to icount interface 2011-12-21 06:17:45 +00:00
stack64.cc reword all the CPU code in preparation for future CPU speedup implementation. 2011-07-06 20:01:18 +00:00
stack.h - deleted executable properties from source files 2011-04-03 10:29:19 +00:00
string.cc - 10% emulation speedup with handlers chaining optimization implemented. The 2011-08-21 14:31:08 +00:00
tasking.cc fixed compilation err in instrumentation module 2011-11-28 10:08:03 +00:00
tbm32.cc fixed (c) info 2011-10-20 14:06:12 +00:00
tbm64.cc fixed (c) info 2011-10-20 14:06:12 +00:00
todo implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
vm8086.cc Adding Id and Rev property to all files 2011-02-24 21:54:04 +00:00
vmcs.cc added debug prints about vmcs initialization 2011-12-09 19:57:40 +00:00
vmexit.cc - Implemented VM Functions support and EPTP-Switching VM Functions 2011-11-05 07:31:51 +00:00
vmfunc.cc VMX: Fixed VMFUNC instruction behavior to align with Intel SDM revision 041 2011-12-17 14:06:23 +00:00
vmx.cc implemented SVM emulation support for Bochs (incomplete yet) 2011-12-25 19:35:29 +00:00
vmx.h - Implemented VM Functions support and EPTP-Switching VM Functions 2011-11-05 07:31:51 +00:00
xmm.h Implemented AMDs Buldozer XOP and TBM extensions. 2011-10-19 20:54:04 +00:00
xop.cc implemented missed XOP instructions FRCZPS/PD/SS/SD + update CHANGES with fixed bugs 2011-11-24 11:34:26 +00:00
xsave.cc fixing xsave/xrstor flows with AVX 2011-10-09 09:19:49 +00:00