Commit Graph

11632 Commits

Author SHA1 Message Date
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
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
49ceb971cd apply SF patch #1409 usb_msd failing to read/write requests larger than 131k 2019-12-12 18:05:20 +00:00
Volker Ruppert
8945fa4895 Added missing HPET entry in devices tree 2019-12-11 17:06:45 +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
d7d80aa61c apply SF patch #544 Use format specifiers in printf-based calls 2019-12-09 15:18:47 +00:00
Stanislav Shwartsman
a257f03c8b update comment in usb_xhci.h 2019-12-09 15:14: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
Volker Ruppert
445bf01b2a Removed deprecated function GetVersion() from eth_win32.cc and niclist.c.
Since the presence of UNICODE or ANSI format only depends on the PACKET.DLL
version, no Windows version check is necessary.
2019-12-08 18:14:30 +00:00
Volker Ruppert
038ebf5815 Replaced deprecated function GetVersionEx() with newer code based on Windows
Dev Center example (expecting Bochs is not used on hosts older than XP).
TODO: Similar changes required in eth_win32.cc and niclist.c.
2019-12-08 15:32:23 +00:00
Stanislav Shwartsman
aaa18f5384 applied patch: Some endian-conditional functions had incorrect signatures on BE hosts. 2019-12-07 06:10:30 +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
Stanislav Shwartsman
0c75e0beaf extract xcr0_support bits calculation to a function 2019-12-06 09:23:28 +00:00
Volker Ruppert
6bd7a954fc Updated generated files. 2019-12-04 21:32:55 +00:00
Stanislav Shwartsman
2b394c9e9f allow delivery of SMI or NMI from debugger using take command 2019-12-04 19:53:47 +00:00
Stanislav Shwartsman
893aa10359 cosmetic changes 2019-12-04 19:53:08 +00:00
Stanislav Shwartsman
79d6bf9d42 fixes for internal debugger for 64-bit guest debugging 2019-12-04 19:40:21 +00:00
Stanislav Shwartsman
276482e67d fix set_PKRU method 2019-12-04 18:52:00 +00:00
Stanislav Shwartsman
951361a3a5 bugfix: PKRU should affect only user-mode memory accesses (bug in page translation) 2019-12-04 17:27:57 +00:00
Volker Ruppert
4aad922419 Now using wxFONTWEIGHT_XXX constant instead of deprecated one.
Removed some extra spaces.
2019-12-01 18:57:08 +00:00
Volker Ruppert
b950a2e192 Removed legacy subsystem version number (was required for XP compatiblity). 2019-12-01 17:32:40 +00:00
Volker Ruppert
eb37ec33b1 Updates after release (version number, release tag, minor devel doc update) 2019-12-01 13:30:34 +00:00
Volker Ruppert
26d79038da Regenerated for release. 2019-12-01 07:59:22 +00:00
Volker Ruppert
c4b3f97ad0 Preparing release 2.6.10 2019-12-01 07:57:56 +00:00
Stanislav Shwartsman
20a14f3376 Update breif summary in CHANGES 2019-12-01 04:47:56 +00:00
Volker Ruppert
5a8066e093 Started preparing new Bochs release: summary of changes (to be completed). 2019-11-30 18:07:44 +00:00
Volker Ruppert
0a805faf02 Fixes related to Windows registry key for Bochs.
- Fixed typo in registry key created by installer.
- Updated registry key name used for BXSHARE environment variable generation.
2019-11-30 17:51:19 +00:00
Volker Ruppert
16d9d04ee7 Changed the name of the 3rd part of the Bochs version number from "patch" to "revision". 2019-11-30 12:20:00 +00:00
Volker Ruppert
5fac7314af Some work on the NSIS win32 installer script.
- Added version check and reinstall page based on NSIS example.
- Since the registry keys changed with each Bochs version, it is not possible
  to detect all of them. Added special code to make this possible for previous
  version 2.6.9.
- Updated tested NSIS version number in docs.
2019-11-30 10:00:37 +00:00
Stanislav Shwartsman
4e9e3f85de simplify code by merging two opcodes with similar behavior 2019-11-27 15:31:32 +00:00
Volker Ruppert
cb1c03efec Add version information to NSIS installer script.
TODO: check for installed Bochs version and ofter suitable options.
2019-11-26 20:21:56 +00:00
Stanislav Shwartsman
cf23a59a55 silence compiler warning and do better code. no impact as both buffers are same size 2019-11-26 19:04:55 +00:00
Stanislav Shwartsman
36991e9f59 fixed typo in comment 2019-11-26 17:39:09 +00:00
Volker Ruppert
a201be5031 Since source and destination area overlap, we have to use memmove() here. 2019-11-24 18:13:12 +00:00
Stanislav Shwartsman
9a1c3a9313 fixed buffer overflow warning 2019-11-23 15:15:50 +00:00
Stanislav Shwartsman
7833a82347 fixed bug in instruction decoding - regression before release 2019-11-22 17:46:54 +00:00
Stanislav Shwartsman
1dcca2e338 clarify CHANGES 2019-11-22 13:36:59 +00:00
Stanislav Shwartsman
3b9db9e4cd fixed bug in faststring optimizations recently introduced 2019-11-22 10:54:36 +00:00
Stanislav Shwartsman
46b862fe5e do not truncate disasm branch target in 64-bit mode 2019-11-20 20:41:03 +00:00
Stanislav Shwartsman
a030d03935 fixed bug in instruction decoding - regression before release 2019-11-20 20:18:22 +00:00
Stanislav Shwartsman
83846cc821 fixed bug in instruction decoding - regression before release 2019-11-20 20:11:00 +00:00
Stanislav Shwartsman
82b6f7cb6c fixed bug in instruction decoding - regression before release 2019-11-20 19:58:51 +00:00
Volker Ruppert
01526c35cc Some more changes in NSIS win32 installer script.
- Added welcome and finish page.
- Now using Bochs logo from website as installer bitmap.
- Temporarily added top of 2.6.9 CHANGES file at the bottom of the README.
  Now showing one file after successful installation is enough.
  TODO: update before release!
2019-11-17 21:42:44 +00:00
Volker Ruppert
363bcb59de Some work on the NSIS win32 installer script.
- The Desktop icon for the DLX Linux demo is now optional.
- Removed obsolete PIF entries.
- Started preparing the script for version detection.
- Script tested with NSIS 3.04.
2019-11-15 13:46:18 +00:00
Volker Ruppert
f206839636 Some work on the Bochs version number strings.
- Get rid of VER_STRING since it's the same as VERSION
- Add new defines VER_MAJOR, VER_MINOR, VER_PATCH and VER_SVN and use them for
  the version number on Windows.
- TODO: Add the capability to detect installed version to the Windows installer.
2019-11-14 10:34:39 +00:00
Volker Ruppert
449c65a625 Fixed possible deadlock on exit. The pthread library cannot kill a waiting
thread and destroying an object locked by another thread is not possible.
2019-11-13 12:00:27 +00:00
Stanislav Shwartsman
6d479ed72a fix segfault in 32-bit mode while printing SSE regs from debugger 2019-11-13 04:20:39 +00:00
Stanislav Shwartsman
00237b5c9d add missing XSAVE_PKRU_STATE_LEN define 2019-11-12 22:02:02 +00:00
Stanislav Shwartsman
4aba3b54e7 do not use uint 2019-11-12 22:00:29 +00:00
Stanislav Shwartsman
b1e9701e5c avoid goto 2019-11-12 21:48:54 +00:00
Stanislav Shwartsman
8d7bffa311 optimize highest_priority_int routine 2019-11-12 21:42:57 +00:00
Stanislav Shwartsman
8d13fb3ffd rewritten APIC interfaces to hold irr/isr/tmr in Bit32u values instead of array of bytes 2019-11-12 21:15:29 +00:00
Stanislav Shwartsman
a70df308fa add defines for CPUID bits published in latest SDM 071 2019-11-12 18:54:08 +00:00
Volker Ruppert
724ddb6f8b Updated both MSVC workspace files for current SVN (new cpu files). 2019-11-12 12:51:14 +00:00
Volker Ruppert
27c47b6ab8 Use pkg-config (if available) to set up the link option for the term gui. 2019-11-11 22:36:40 +00:00
Volker Ruppert
32c342eda7 Fix for SF bug #1405 based on a patch for Qemu. 2019-11-11 21:44:38 +00:00
Volker Ruppert
207c0a55b1 Fixed GTK version detection. 2019-11-11 20:47:13 +00:00
Volker Ruppert
9a27303afa Some work for GTK version 3 compatiblity
- if wxGTK uses GTK 3.x, also use it for the gui debugger to avoid trouble
- the name of the include file for GDK keysyms now depends on GDK version, so
  the temporary translation table can be removed
- small fix to compile the gui debugger with GTK 3.x (warnings still exist)
2019-11-11 19:40:09 +00:00
Volker Ruppert
2cf71c5c1f Some more work on the GTK debuggger gui: updated code to compile with symbol
GSEAL_ENABLE set.
2019-11-10 19:36:04 +00:00
Volker Ruppert
fb61d54b4b Some work on the GTK debuggger gui: replace deprecated functions.
TODO: Updates to support GTK 3.0 for compatibility with wx GTK.
2019-11-08 17:43:14 +00:00
Volker Ruppert
dbc8f1aa19 Fixed some warnings caused by possibly not enough space for sprintf format. 2019-11-08 13:49:48 +00:00
Volker Ruppert
05f80c2c81 Fixed slirp compilation in MinGW/MSYS.
TODO: Update GTK gui debugger to GTK 3.0 (v2.0 conflicts with wxGTK 3.1).
2019-11-03 12:48:52 +00:00
Volker Ruppert
9ab4b36ec1 Fixed compilation after upgrading Linux host to openSUSE Leap 15.1.
- configure script now supports wxGTK 3.1 (using GTK 3.0).
- added workaround for GDK keysym name change.
- define deprecated WXWIN symbol wxADJUST_MINSIZE for compatibility.
- compilation fix for Linux in the slirp code.
2019-11-02 19:30:39 +00:00
Stanislav Shwartsman
c098ab7de1 take msr.ia32_spec_ctrl out of @ifdef CPU_LEVEL=6 2019-10-26 20:17:41 +00:00
Stanislav Shwartsman
d766cc8112 implemented SCA (Side-Channel-Attack) Prevention reporting and corresponding MSR registers, enabled for Icelake-U CPU definition 2019-10-26 20:09:30 +00:00
Stanislav Shwartsman
a580b0ccbe cosmetic change with no logic affected 2019-10-24 20:33:05 +00:00
Stanislav Shwartsman
c97bb62b6c VMX: Fix RDRAND/RDSEED VMEXIT Instruction-Information Field 2019-10-24 20:12:00 +00:00
Stanislav Shwartsman
330c691367 VMX: Fix RDRAND/RDSEED VMEXIT Instruction-Information Field 2019-10-24 20:10:56 +00:00
Stanislav Shwartsman
27e23ad1eb give priority for VMX induced #UD in INVPCID and RDTSCP instructions over all other exeptions that could be generated there 2019-10-24 19:49:25 +00:00
Stanislav Shwartsman
72b9d26717 coding style changes, tab2space, macro2function or macro2const 2019-10-17 19:23:27 +00:00
Stanislav Shwartsman
eec720c62b convert bochs.h macros to inline functions with strong types 2019-10-16 20:46:00 +00:00
Stanislav Shwartsman
64ae3fe1ba convert bochs.h macros to inline functions with strong types 2019-10-16 20:19:34 +00:00
Stanislav Shwartsman
bb5ccc97c1 remove unused function parameter 2019-10-16 19:53:04 +00:00
Stanislav Shwartsman
9c61e9e9f5 remove unused function parameter 2019-10-16 19:48:21 +00:00
Stanislav Shwartsman
10c23b5d39 implement fasstring for 64-bit mode as well 2019-10-14 19:50:47 +00:00
Stanislav Shwartsman
9d7233a9b5 fixed code duplication in fast string invocaion code 2019-10-14 19:15:01 +00:00
Stanislav Shwartsman
bf16e720f8 add faststring mode for REP MOVSW in 32-bit mode 2019-10-14 18:12:37 +00:00
Stanislav Shwartsman
fe7acbb6a0 more faststring cleanup 2019-10-14 14:54:07 +00:00
Stanislav Shwartsman
ee3f1b91a3 allow fast string only for forward strings and simplify the code 2019-10-14 14:45:01 +00:00
Stanislav Shwartsman
f0245b5f2b introduce special handlers for zero-idiom instructions - ~1% speedup to simulation. infra for fast string emulation in 64-bit mode 2019-10-14 06:40:19 +00:00
Stanislav Shwartsman
d6e08702e4 add Icelake-U model to CPUDB database. TODO: verify its VMX features 2019-09-24 20:26:14 +00:00
Stanislav Shwartsman
4f0094c472 update CHANGES 2019-08-09 19:59:00 +00:00
Stanislav Shwartsman
2ae332cce8 patch by Luigu.B - significantly speedup multi-threaded guest simulation 2019-08-09 19:57:13 +00:00
Stanislav Shwartsman
2eb47f866f added minor clarifications based on most recent AMD SDM published 2019-07-30 18:17:21 +00:00
Stanislav Shwartsman
49ebaf8397 typofix: attached MASK_K0 attr to wrong opcode 2019-05-25 19:10:55 +00:00