Bochs/bochs/cpu
Shwartsman 591e2aa79f bugfix: when CET was not compiled in the emulation behavior of non-CET CPU was altered
CET 'change' some x86 behavior
For example EPTP[7] become not-reserved and write to it not fail anymore
VMX doesn't check error code for CP exception if CET is enabled
These behaviors these changed even when CET was not compiled in
2023-11-21 15:35:49 +02:00
..
avx added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
cpudb enable MOVDIRI for TigerLake 2023-11-18 12:35:28 +02:00
decoder fixed compilation with CET not compiled in 2023-11-20 15:24:57 +02:00
fpu fixed FPATAN for case of |x|=|y| 2023-11-19 22:00:46 +02:00
3dnow.cc optimize handling of allowed_to_run_FPU_MMX instructios common block 2023-11-08 06:48:53 +02:00
access2.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
access.cc use isReadOK instead of magic arithmetic for system_read_* methods 2023-11-17 23:14:38 +02:00
access.h keep def of YMM/ZMM register even if AVX or EVEX are not compiled in and let reading/writing them to MEM 2018-04-04 19:31:56 +00:00
aes.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
apic.cc introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00
apic.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
arith8.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
arith16.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
arith32.cc introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00
arith64.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
bcd.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
bit16.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
bit32.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
bit64.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
bit.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
bmi32.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
bmi64.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
call_far.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
cet.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
cmpccxadd32.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
cmpccxadd64.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
cpu_templates.h make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
cpu.cc sync emulated time when linking traces 2023-11-14 19:26:56 +02:00
cpu.h coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
cpuid.cc fixed compilation with .conf.nothing 2023-11-19 23:55:52 +02:00
cpuid.h enable CPUID reporting for recently added ISA extensions 2023-10-12 21:48:09 +03:00
cpustats.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
crc32.cc change a bit more defines to const with type 2019-12-26 16:48:33 +00:00
crregs.cc fixed compilation without SVM configured in 2023-11-20 19:10:46 +02:00
crregs.h update crregs.h with all known XSAVE/XRESTOR state information 2023-11-17 23:24:00 +02:00
ctrl_xfer16.cc use boolean constants true/false instead of 0/1 (#26) 2022-07-30 18:38:22 +03:00
ctrl_xfer32.cc use boolean constants true/false instead of 0/1 (#26) 2022-07-30 18:38:22 +03:00
ctrl_xfer64.cc use boolean constants true/false instead of 0/1 (#26) 2022-07-30 18:38:22 +03:00
ctrl_xfer_pro.cc Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071 2019-12-20 07:42:07 +00:00
data_xfer8.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
data_xfer16.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
data_xfer32.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
data_xfer64.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
debugstuff.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
descriptor.h convert many consts from #define to enum or const variables (#23) 2022-07-27 23:20:47 +03:00
event.cc implemented VMX Monitor Trap Flag handling 2022-08-16 21:17:05 +03:00
exception.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
faststring.cc Removed SVN property "executable" from some files. 2021-02-21 09:25:33 +00:00
flag_ctrl_pro.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
flag_ctrl.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
fpu_emu.cc optimize handling of allowed_to_run_FPU_MMX instructios common block 2023-11-08 06:48:53 +02:00
generic_cpuid.cc fixed compilation without SVM configured in 2023-11-20 19:10:46 +02:00
generic_cpuid.h enable CPUID reporting for recently added ISA extensions 2023-10-12 21:48:09 +03:00
gf2.cc fix GFNI instructions emulation 2023-11-18 20:15:29 +02:00
i387.h coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
icache.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
icache.h resolve github issue #57 + more clear variable name 2023-11-07 16:10:41 +02:00
init.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
io.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
iret.cc Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071 2019-12-20 07:42:07 +00:00
jmp_far.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
lazy_flags.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
load.cc added missing else which caused redundant memory access for 512-bit loads 2023-11-18 14:52:55 +02:00
logical8.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
logical16.cc more faststring cleanup 2019-10-14 14:54:07 +00:00
logical32.cc more faststring cleanup 2019-10-14 14:54:07 +00:00
logical64.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
Makefile.in update include dependencies for CPU, MEMORY and BX_DBG folders 2023-10-16 19:42:44 +03:00
mmx.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
msr.cc introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00
msr.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
mult8.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
mult16.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
mult32.cc introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00
mult64.cc extract Bit128 arithmetic to separate wide_int.cc/wide_int.h compiled independently of long mode emulation 2020-05-19 16:01:23 +00:00
mwait.cc correctly advance to next instruction for MONITOR with non-WB memory type 2023-10-23 09:32:25 +03:00
paging.cc fix compilation warning 2023-11-19 07:54:40 +02:00
proc_ctrl.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
protect_ctrl.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
rdrand.cc simplify rdrand code for future extension 2023-11-19 07:29:10 +02:00
ret_far.cc Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071 2019-12-20 07:42:07 +00:00
scalar_arith.h fix copy/paste induced bug in ROR64 2023-10-08 08:10:54 +03:00
segment_ctrl_pro.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
segment_ctrl.cc VMX: save guest CET state to VMCS on vmexit 2019-12-27 13:02:30 +00:00
sha512.cc SHA512 instructions implemented (#88) 2023-10-10 21:33:16 +03:00
sha.cc SHA512 instructions implemented (#88) 2023-10-10 21:33:16 +03:00
shift8.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
shift16.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
shift32.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
shift64.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
simd_compare.h Implement AVX512BW and AVX512DQ extensions published in recently published Intel Archtecture Extensions manual rev20. 2014-07-18 11:14:25 +00:00
simd_int.h make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
simd_pfp.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
simd_vnni.h make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
sm3.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
sm4.cc implemented SM3 instructions (#84) 2023-10-07 21:34:04 +03:00
smm.cc use boolean constants true/false instead of 0/1 (#26) 2022-07-30 18:38:22 +03:00
smm.h convert many consts from #define to enum or const variables (#23) 2022-07-27 23:20:47 +03:00
soft_int.cc improve fix for VMCS_GUEST_PENDING_DBG_EXCEPTIONS saved on VMEXIT (should be cleared after most of VMEXITs) 2023-11-14 15:59:59 +02:00
sse_move.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
sse_pfp.cc make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
sse_rcp.cc cleanup return value of all instruction handlers 2018-02-16 07:57:32 +00:00
sse_string.cc use boolean constants true/false instead of 0/1 (#26) 2022-07-30 18:38:22 +03:00
sse.cc make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
stack16.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
stack32.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
stack64.cc added a comment for future: some memory operations must be done atomically 2023-11-17 23:18:43 +02:00
stack.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
stack.h Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071 2019-12-20 07:42:07 +00:00
string.cc remove pc_system.h from bochs.h and include it only where required 2021-01-30 18:29:28 +00:00
svm.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
svm.h implement MSR PAR handling in AMD SVM 2021-03-21 15:33:18 +00:00
tasking.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
tlb.h fixed some MSVC wannings in CPU code 2021-02-08 13:06:44 +00:00
todo fixed compilation with CET not compiled in 2023-11-20 15:24:57 +02:00
vapic.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
vm8086.cc Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071 2019-12-20 07:42:07 +00:00
vmcs.cc remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
vmexit.cc improve fix for VMCS_GUEST_PENDING_DBG_EXCEPTIONS saved on VMEXIT (should be cleared after most of VMEXITs) 2023-11-14 15:59:59 +02:00
vmfunc.cc coding style, cleanups and optimizations 2023-11-19 20:31:05 +02:00
vmx.cc bugfix: when CET was not compiled in the emulation behavior of non-CET CPU was altered 2023-11-21 15:35:49 +02:00
vmx.h introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00
wide_int.cc extract Bit128 arithmetic to separate wide_int.cc/wide_int.h compiled independently of long mode emulation 2020-05-19 16:01:23 +00:00
wide_int.h remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
xmm.h make CPU to use C++ template for implementation of CPU methods (#115) 2023-10-30 06:57:16 +02:00
xsave.cc introduce GET64_FROM_HI32_LO32 to form 64-bit integer from 2 32-bit 2023-11-17 23:31:38 +02:00