Stanislav Shwartsman
694112732b
use default base CPUID class method to detemine values of 0x80000008 leaf for IceLake CPUID
2020-01-03 19:53:20 +00:00
Stanislav Shwartsman
b69f2b052a
extract calculation of MSR_IA32_XSS supported bits to a function
2020-01-03 19:33:16 +00:00
Stanislav Shwartsman
45a25a2b67
CET: make sure enbranch64 and enbranch32 do the right thing when mode mismatch
2020-01-03 18:55:17 +00:00
Stanislav Shwartsman
495206650b
fixed CET wrmsr reserved bit checking
2020-01-03 18:44:15 +00:00
Stanislav Shwartsman
ea6b0c766c
added more VMX reasons to enum according to Intel SDM
2020-01-03 17:35:02 +00:00
Volker Ruppert
bce3c28bb5
Temporary fix for Bochs BIOS not working with CPU level < 6. Compiled BIOS on
...
a 32-bit Linux inside of Bochs. Now only i386 fails, newer CPUs are okay.
2020-01-03 15:48:20 +00:00
Volker Ruppert
b23d52ad44
LGPL'd VGABIOS updated to version 0.7b
2020-01-03 09:29:54 +00:00
Stanislav Shwartsman
bac9104f73
fixed compilation of init.cc for old CPU models
2020-01-03 05:29:45 +00:00
Volker Ruppert
2d950105cb
Fixed retrieving release timestamp from README file when compiling from outside
...
of the source tree.
2020-01-02 17:48:18 +00:00
Volker Ruppert
58ebb5819f
Releases (SVN flaG 0) now use the timestamp from README file instead of the
...
compilation time of main.cc for console and log file output.
2020-01-02 16:19:02 +00:00
Volker Ruppert
5cb6392ca4
Added function bx_get_timestamp() to reduce code duplication.
...
TODO: Use special timestamp in the release case (similar to Bochs BIOS).
2020-01-02 09:41:58 +00:00
Volker Ruppert
3146b45f59
Regenerated configure script
2020-01-01 19:03:42 +00:00
Volker Ruppert
4031aea715
Two changes from Debian patches for 2.6.10.
...
- pcidev: added support for recent Linux kernels
- fixed bochsrc manual page table
2020-01-01 19:02:50 +00:00
Volker Ruppert
546b4a78e5
Setting default values for VCLK registers not necessary. They should be set up
...
by the VGABIOS. Happy new year!
2020-01-01 14:16:29 +00:00
Volker Ruppert
8b5586bb79
Small optimization in the TRANSPARENTCOMP code.
2019-12-30 21:40:40 +00:00
Volker Ruppert
b6c1a4a919
Regenerated configure script and recompiled BIOS images.
2019-12-30 13:18:39 +00:00
Volker Ruppert
49a04c1399
Bochs BIOS changes partly based on Debian patches.
...
- Use 'iasl' for building ACPI table if present.
- Use the release date from README file for the BIOS_BUILD_DATE.
- Added Bochs VERSION string to the BIOS banner.
- Fixed the rombios32 delay loop for QEMU build.
- Improvement for rombios32.ld.
2019-12-30 13:16:18 +00:00
Volker Ruppert
30f0877ff8
Fixed compilation with PCI support disabled.
2019-12-30 07:16:46 +00:00
Volker Ruppert
f960acf028
Added missing Cirrus SVGA bitblt feature "tranparent color compare".
2019-12-29 21:38:05 +00:00
Stanislav Shwartsman
9a35c6de79
fix and simplify combined_access handling in EPT page walk
2019-12-29 21:00:35 +00:00
Stanislav Shwartsman
016aa349e5
handle supervisor-shadow-stack protection feature in the EPT
2019-12-29 20:40:18 +00:00
Volker Ruppert
74b9a0f6de
Bochs BIOS fix and update.
...
- Added hack fix to make SeaVGABIOS work: init video mode if not done.
- Update rombios32 release date.
2019-12-29 19:40:42 +00:00
Volker Ruppert
f7629c3896
Bochs BIOS fix and update.
...
- Added hack fix to make SeaVGABIOS work: init video mode if not done.
- Update rombios32 release date.
2019-12-29 19:38:52 +00:00
Volker Ruppert
34e475ec0a
Updated SeaBIOS ROM image to current version and added SeaVGABIOS for Cirrus.
2019-12-29 07:20:50 +00:00
Volker Ruppert
33d6956080
Added GLBCTL register read/write support (no function yet).
2019-12-28 21:04:53 +00:00
Stanislav Shwartsman
4f7aa4bd76
fixed compilation issue
2019-12-28 15:20:38 +00:00
Stanislav Shwartsman
f56e1aab86
VMX: save CET state to VMCS only if CET is supported
2019-12-28 15:18:55 +00:00
Stanislav Shwartsman
bcafd5bb7a
fix non-printable characters and add more verbose error messages
2019-12-28 15:08:53 +00:00
Stanislav Shwartsman
d091e3bda6
simplify XRSTOR* code
2019-12-28 14:03:54 +00:00
Stanislav Shwartsman
126ae0d0b4
more verbose debug print
2019-12-28 13:36:43 +00:00
Stanislav Shwartsman
9458e25486
reverting commit 13737 and doing correct fix
2019-12-28 13:11:13 +00:00
Stanislav Shwartsman
5d7c6d46b0
fixed compilation after prev commit
2019-12-28 13:02:02 +00:00
Stanislav Shwartsman
7f72252223
fixes in XSAVE/XRSTOR handling
2019-12-28 12:57:31 +00:00
Volker Ruppert
295336adfb
Fixed VESA BIOS function 0x4F15 (get EDID) for both the VBE and Cirrus version.
2019-12-27 19:56:37 +00:00
Stanislav Shwartsman
b09126aa34
use enums for assign_srcs error output - help with debugging unexpected #UD cases
2019-12-27 19:34:32 +00:00
Stanislav Shwartsman
6879feebf5
SHA: SHA instructions in 128-bit memory operand require to be explicitly aligned
2019-12-27 14:24:43 +00:00
Stanislav Shwartsman
5c45f6b324
AVX512: EVEX.Z is forbidden for any vector instruction using opmask as source or destination (should cause #UD)
2019-12-27 14:23:53 +00:00
Stanislav Shwartsman
8bd5272591
correctly handle CET Enbranch override prefix 0x3E in 64-bit mode
2019-12-27 13:44:57 +00:00
Stanislav Shwartsman
596c197cea
fix decoder: SHA1RNDS4 instruction should be with no SSE prefix
2019-12-27 13:08:20 +00:00
Stanislav Shwartsman
a2be16873c
VMX: save guest CET state to VMCS on vmexit
2019-12-27 13:02:30 +00:00
Stanislav Shwartsman
8e2391c44b
fixed compilation when compiling without EVEX
2019-12-26 20:12:40 +00:00
Volker Ruppert
70691fa532
Some fixes in the build system based on Debian patches for 2.6.10.
...
- The pthread library is not needed at all by the Windows ports.
- Link the ALSA and SDL sound modules only with required library.
- Fixed curses cross-compilation issue found by Debian.
- slirp/cksum.cc: NOTE for Debian.
2019-12-26 19:17:47 +00:00
Stanislav Shwartsman
ff167d0f65
change a bit more defines to const with type
2019-12-26 16:48:33 +00:00
Volker Ruppert
955a466df0
BX_KEY_* defines replaced by enum list.
2019-12-26 16:14:31 +00:00
Volker Ruppert
0bcc86716d
Operational registers can be accessed as dwords only (from a patch by Ben Lunt).
2019-12-25 09:07:12 +00:00
Stanislav Shwartsman
d6c3dcf033
revert for full vector read until figured out the right behavior for VPSHUFBITQMB
2019-12-24 20:08:33 +00:00
Stanislav Shwartsman
edcdce927c
added ability to configure hidden VMCS field mapping through CPUID
2019-12-22 18:53:07 +00:00
Stanislav Shwartsman
fc1dbe68bc
update dependencies in Mafefile.in
2019-12-21 21:42:35 +00:00
Stanislav Shwartsman
e593bb0084
CPUDB: Allow Icelake-U CPU model to exists without EVEX
2019-12-21 21:06:34 +00:00
Stanislav Shwartsman
e38cca20be
disable fault suppression for VPEXPAND* until fugured out how it should work in real life
2019-12-21 20:54:45 +00:00
Stanislav Shwartsman
f99258a2fd
fixed copy-paste issue
2019-12-21 20:30:15 +00:00
Stanislav Shwartsman
c16816485e
use optimized function for broadcastss
2019-12-21 20:20:33 +00:00
Stanislav Shwartsman
1a0237e9af
make order in AVX512 broadcast handlers, extract them into separate file
2019-12-21 20:07:03 +00:00
Stanislav Shwartsman
11585e4982
AVX512: VPBROADCASTB/W/D/Q with GPR source are only reg/reg
2019-12-21 18:29:51 +00:00
Stanislav Shwartsman
afa3626eb3
AVX512: fixed compressed immediate size (and memory access size) for VPBROADCASTB_Eb form
2019-12-21 18:17:51 +00:00
Stanislav Shwartsman
0169605f79
seems like GFNI VGF2P8AFFINEQB and VGF2P8AFFINEINVQB do not have fault suppression
2019-12-21 18:01:58 +00:00
Stanislav Shwartsman
4ac2122f3a
rename function to correct English, add broadcast and fault suppression support for EVEX encoded GFNI instructions
2019-12-21 16:12:06 +00:00
Stanislav Shwartsman
dd1ab303df
rename function to correct English
2019-12-21 15:54:52 +00:00
Stanislav Shwartsman
723554d535
AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come
2019-12-21 15:47:29 +00:00
Stanislav Shwartsman
74c73e5a76
AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come
2019-12-20 15:34:14 +00:00
Stanislav Shwartsman
0e5d843597
AVX512: Allow masked fault suppression for many AVX512 instructions - not all cases reviewed yet, more to come
2019-12-20 14:58:56 +00:00
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
96b2cb5825
update lexer/parser for internal debugger after CET additions
2019-12-20 07:57:59 +00:00
Stanislav Shwartsman
b523a202f4
update configure script
2019-12-20 07:46:17 +00:00
Stanislav Shwartsman
70d6cdc418
update CHANGES
2019-12-20 07:43:36 +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
Volker Ruppert
d290e5ba93
Changes updated (NSIS + HPET).
2019-12-19 20:36:42 +00:00
Stanislav Shwartsman
b2749a1a18
notify about significant amount of CPU bugs fixed in CHANGES
2019-12-19 20:13:35 +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
Volker Ruppert
75aabad381
Fixed some HPET issues with a patch by Oleg. The following tests are passed now:
...
wraparound test, masked level interrupt test, one shot 32-bit test, periodic
32-bit test, mode change test, long 32-bit one-shot timer test.
2019-12-17 17:40:30 +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
Volker Ruppert
2b49ecde3f
Now using different setup file names for each platform.
2019-12-15 12:25:31 +00:00
Stanislav Shwartsman
bcfcaf3958
unify branch_far32 and branhc_far64 methods
2019-12-14 17:20:35 +00:00
Volker Ruppert
a01a0262be
Two small Bochs debugger changes.
...
- Fixed a warning in the enhanced debugger core.
- Update generated file parser.c.
2019-12-14 12:55:08 +00:00
Volker Ruppert
f1cd051748
Added 64-bit support to the NSIS installer script.
2019-12-13 22:25:50 +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