Commit Graph

3538 Commits

Author SHA1 Message Date
Stanislav Shwartsman
cff6a67adb AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-20 14:57:42 +00:00
Stanislav Shwartsman
9fbf974e6b AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-20 13:45:00 +00:00
Stanislav Shwartsman
222185ad11 AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-20 13:42:59 +00:00
Stanislav Shwartsman
553a9471d1 fixed push error check for VMX injecting event vector 21 on configuration that doesn't support CET 2019-12-20 13:27:18 +00:00
Stanislav Shwartsman
ec5f526ac0 ENBRANCH and RDSSP should remain NOP when CET not enabled, this means they not require an specifical CPU feature to be decoded into the hnadler 2019-12-20 13:16:52 +00:00
Stanislav Shwartsman
f90e5f4f44 Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071
Only missing items (to be added soon):
  - Supervisor Shadow Stack EPT Control is not implemented yet
  - SMM placing for SSP
Currently have to be added manually to some CPUID model, for example to ICL-U
To enable configure with --enable-cet
2019-12-20 07:42:07 +00:00
Stanislav Shwartsman
9c98d68f87 AVX512_VBMI2: Fixed shift count from register source for VBMI2 shift instructions (VPSHRDVD/VPSHLDVD/VPSHRDVQ/VPSHLDVQ) 2019-12-19 21:55:46 +00:00
Stanislav Shwartsman
1b9e0081b4 fixed bugs in recently implemented load methods with fault suppression support 2019-12-19 21:36:13 +00:00
Stanislav Shwartsman
39aee8773f AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-19 21:21:24 +00:00
Stanislav Shwartsman
682fbda5af AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-19 21:12:47 +00:00
Stanislav Shwartsman
59cad2e156 AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-19 21:12:23 +00:00
Stanislav Shwartsman
2df60c3b3f AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come 2019-12-19 20:08:49 +00:00
Stanislav Shwartsman
df986a05ca fixed bug in SHA256RNDS2 instruction - wrong order of dwords in result 2019-12-19 19:20:13 +00:00
Stanislav Shwartsman
9b556d7656 fixed compilation error in crregs.cc xsave method init code - more methods to fix 2019-12-19 19:14:37 +00:00
Stanislav Shwartsman
258679b6dc fixed compilation error in crregs.cc xsave method init code 2019-12-19 19:12:39 +00:00
Stanislav Shwartsman
bb58ef5548 fixed bug in SHA256RNDS2 instruction (wrong sha transformation used) 2019-12-19 19:08:50 +00:00
Stanislav Shwartsman
019c934cfd decode GFNI opcodes in 64-bit mode too 2019-12-18 19:55:04 +00:00
Stanislav Shwartsman
6b1992783e w/a compilation issue in gcc7 2019-12-18 18:19:52 +00:00
Stanislav Shwartsman
26b67c1942 fixed calling for XSAVE methods with BX_USE_SMF=0 2019-12-17 19:14:09 +00:00
Stanislav Shwartsman
eca847c8b3 fixed compilation error 2019-12-16 19:47:41 +00:00
Stanislav Shwartsman
895c4b75df rewritten xsave/xrestore implementation in generic way to simplify adding new xsave/xrestore extensions 2019-12-16 16:14:51 +00:00
Stanislav Shwartsman
112e61f1c3 coding style: avoid goto, magic constants and defines which could be replaced by enums 2019-12-15 18:45:04 +00:00
Stanislav Shwartsman
bcfcaf3958 unify branch_far32 and branhc_far64 methods 2019-12-14 17:20:35 +00:00
Stanislav Shwartsman
c117208bbf extending fix to AMD SVM 2019-12-13 18:47:51 +00:00
Stanislav Shwartsman
1968cdf248 proposed fix for SF issue #547 vmcshostptr not invalidated after memory swapped out 2019-12-13 18:31:43 +00:00
Stanislav Shwartsman
134b23a809 enable AVX512_CD for Icelake configuration 2019-12-13 16:48:15 +00:00
Stanislav Shwartsman
2ea27f1afb more correct fix for load with mask and broadcast 2019-12-13 14:57:32 +00:00
Stanislav Shwartsman
6d612df280 AVX512_BITALG: Fixed decoding of VPSHUFBITQMB instruction 2019-12-13 14:11:08 +00:00
Stanislav Shwartsman
abdeea560a AVX512: fix masked broadcast with mask of all zero corner case - no memory access should be made at all 2019-12-13 13:44:30 +00:00
Stanislav Shwartsman
c9ac9a1e43 AVX512_VBMI: Fixed decoding of VPERMB instruction 2019-12-13 13:24:02 +00:00
Stanislav Shwartsman
fc79466dcb AVX512_VBMI: Fixed decoding of VPERMI2B/VPERMT2B instructions 2019-12-13 13:08:45 +00:00
Stanislav Shwartsman
eb009ddd00 fixed VPACKSSDW/VPACKUSDW opcodes - allow broadcast 2019-12-13 12:53:48 +00:00
Stanislav Shwartsman
f9d04849b3 fixed decoding for VPSHLDVW/VPSHRDVW/VPSHLDVD/VPSHLDVQ/VPSHRDVD/VPSHRDVQ 2019-12-13 12:34:16 +00:00
Stanislav Shwartsman
9bbf43ed4b fixed decoding of AVX512_VNNI instructions 2019-12-13 08:39:23 +00:00
Stanislav Shwartsman
27e96c807c fixed decoding of VPBROADCASTMW2D opcode 2019-12-13 08:09:18 +00:00
Stanislav Shwartsman
7090abe1a1 fix one more place with incorrect detection of x2apic MSR space. use function instead of magic numbers in all places 2019-12-10 21:07:19 +00:00
Stanislav Shwartsman
e35fcd1782 clarify err message 2019-12-10 20:38:45 +00:00
Stanislav Shwartsman
6c8db0f569 simplify interfaces to DTLB/ITLB 2019-12-09 18:46:36 +00:00
Stanislav Shwartsman
4b66fecaad split Bochs CPU TLB to DTLB and ITLB to avoid aliasing conflicts between them. ~5% speedup measured 2019-12-09 18:37:02 +00:00
Stanislav Shwartsman
311ef81e87 fixed comment 2019-12-09 18:16:29 +00:00
Stanislav Shwartsman
b228d22303 expose TLB_INDEX_OF for debugger compilation 2019-12-09 16:55:41 +00:00
Stanislav Shwartsman
8befc3bf82 make separate class for TLB to be used in CPU class. preparation to DTLB and ITLB split of TLB structure 2019-12-09 16:49:51 +00:00
Stanislav Shwartsman
44b3ebeca2 remove BX_TRUE/BX_FALSE macros, use stdc++ true/false instead 2019-12-09 16:44:36 +00:00
Stanislav Shwartsman
96e2c50bef applying SF patch #545 Speling fixes 2019-12-09 16:29:23 +00:00
Stanislav Shwartsman
12d228abde split vmx initialization to multiple methods for better code readability, improve VMX error messages 2019-12-08 20:46:51 +00:00
Stanislav Shwartsman
b3076793b7 fixed MSR range reserved for x2apic 2019-12-08 19:17:46 +00:00
Stanislav Shwartsman
c7fdf6d428 add ability to read or write LVT_CMCI APIC register. It will never fire and interrupt as #MC is don't care but user can configure the interface 2019-12-06 19:38:59 +00:00
Stanislav Shwartsman
06d826755b increase max configurable msrs to 0x1000 again 2019-12-06 12:31:51 +00:00
Stanislav Shwartsman
8c385f2a9a fix in cpu features print 2019-12-06 11:05:05 +00:00
Stanislav Shwartsman
7861ff5160 fixed typo in feature name 2019-12-06 10:39:42 +00:00