Commit Graph

11746 Commits

Author SHA1 Message Date
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
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
Stanislav Shwartsman
bc4af1b08d add missing break statement in disasm.cc 2019-05-25 19:08:39 +00:00
Stanislav Shwartsman
4d10852c04 impemented recently published VP2INTERSECTD/Q instructions 2019-05-25 19:07:09 +00:00
Stanislav Shwartsman
85780d939a extract MONITOR/MWAIT stuff to separate trsnlation unit 2019-05-25 18:32:17 +00:00
Stanislav Shwartsman
55d2dc6b0c add some CPUID and VMCS definitions from latest SDM 2019-05-22 18:22:22 +00:00
Stanislav Shwartsman
0c28705b18 fixed compilation under MAC env 2019-05-18 04:50:07 +00:00
Volker Ruppert
64f3339c8d Added ATAPI command "get event status notification" (patch by Ben Lunt). 2019-04-22 18:54:04 +00:00
Volker Ruppert
dbf7da542f Check if Xrandr extension is present. 2019-04-21 20:08:32 +00:00
Stanislav Shwartsman
662b252507 added missing endif 2019-04-17 16:04:34 +00:00
Stanislav Shwartsman
a022d71774 fixed compilation 2019-04-14 04:05:04 +00:00
Stanislav Shwartsman
54bdb24e4b remove MOVDIRI opcode extension for now until fugured out how nicely do MOVDIR64B, they better to be both done with same CPUID feature name 2019-02-22 19:15:53 +00:00
Stanislav Shwartsman
3e007fbdea fixed copy-pasted issue with decoding 2019-02-17 21:54:38 +00:00
Stanislav Shwartsman
c3f7a34cf5 fixed copy-pasted issue with decoding 2019-02-17 21:41:45 +00:00
Stanislav Shwartsman
3da93728b3 split some opcode reference tables in new decoder between x86-64 and 32 for better perf 2019-02-17 21:22:54 +00:00
Stanislav Shwartsman
cd79d22113 fixes for 32-bit mode only compilation 2019-02-16 19:42:04 +00:00
Stanislav Shwartsman
bfd7bb2c13 remove redundant VL512 runtime check, redundant with new decoder 2019-02-16 19:25:32 +00:00
Stanislav Shwartsman
4f625b23e0 enable yet another Bochs new decoder. It is a bit slower than old one but it is much more extendable so adding new opcode won't be nightmare anymore 2019-02-16 15:23:24 +00:00
Stanislav Shwartsman
93146256f8 disasm updates 2019-02-08 16:28:51 +00:00
Stanislav Shwartsman
4c18ee784f disasm updates 2019-02-08 16:26:56 +00:00
Stanislav Shwartsman
61dcc4ace7 remove unreferenced decode table 2019-01-29 13:44:39 +00:00
Stanislav Shwartsman
f8ec18acd5 fix decode/disasm of AVX512-VBMI2 VPSH*D* opcodes 2019-01-27 18:52:03 +00:00
Stanislav Shwartsman
0b18a42e4e fixed decoding of AVX-512 opcodes 2019-01-27 17:35:21 +00:00
Stanislav Shwartsman
5cb4639891 fixed decoding of AVX-512 opcodes 2019-01-27 17:31:28 +00:00
Stanislav Shwartsman
6dc5cfe80b fixed typo in opcode name 2019-01-24 20:10:46 +00:00
Stanislav Shwartsman
af75c2a81e fixed comment in the opcode table for EVEX 2019-01-22 18:31:39 +00:00
Stanislav Shwartsman
9bc7faf493 dump all supported CPU fetures into Bochs log from CPUID object 2019-01-05 20:17:39 +00:00
Stanislav Shwartsman
264b797363 fixed compilation without VMX=2 2019-01-03 06:28:15 +00:00
Stanislav Shwartsman
df3ea7b553 fix ambiguous delete[] not matching new 2019-01-02 17:13:36 +00:00
Volker Ruppert
b9aa0de299 Fixed IRQ logic in edge-triggered mode (found in patch by Oleg) 2018-12-03 21:56:23 +00:00
Stanislav Shwartsman
098791bf95 report MONITOR/MWAITX for Ryzen configuration in CPUID 2018-12-01 12:15:57 +00:00
Stanislav Shwartsman
7a183ab520 fixed PDE4M reserved bits checking if physical address wider than 40 bit 2018-11-22 11:51:33 +00:00
Stanislav Shwartsman
eff201773f convert some defines to enums and const expressions 2018-11-17 12:45:44 +00:00
Stanislav Shwartsman
e387876145 Enable PML VMX feature in Skylake-X 2018-10-26 19:54:22 +00:00
Stanislav Shwartsman
2e192372c0 fixes for CNL CPUID 2018-10-26 19:46:56 +00:00
Stanislav Shwartsman
f8ef87138e update CHANGES 2018-10-26 09:25:50 +00:00
Stanislav Shwartsman
a9aa1040c1 add Intel Cannonlake CPU model to CPUDB featuring AVF512FMA52 and SHA instructions 2018-10-26 09:23:58 +00:00
Stanislav Shwartsman
9b6e806030 fixed dbg message when stop/continue watchpoints 2018-10-16 18:08:44 +00:00
Stanislav Shwartsman
cf41679b53 closing bug report: Missing TLB_flush on VMX_VMEXIT_EPT_VIOLATION 2018-08-30 20:18:27 +00:00
Stanislav Shwartsman
3995dc13aa fixed compilation of CLZERO pn cpu-level<6 2018-08-26 18:11:10 +00:00
Volker Ruppert
49d1755557 Fixed typo. Since these bits are reserved, it has no effect on the emulation.
TODO: Review HPET code (verify patch by Oleg).
2018-08-19 08:32:19 +00:00
Stanislav Shwartsman
ee62fc83a6 update CHANGES 2018-08-14 08:10:31 +00:00
Stanislav Shwartsman
965bcc2606 support 64-bit in 'info tab' debugger command and also speed it up significantly 2018-08-14 08:09:09 +00:00
Volker Ruppert
91bad8e4b2 Fixed screen flickering in case the hardware cursor is enabled in 3D mode. 2018-07-21 16:14:53 +00:00
Volker Ruppert
d0936f618b Attempt to fix crash that happens in some cases (suggested by Luigi B.). 2018-06-26 17:58:11 +00:00
Volker Ruppert
67135b4429 Fixed wrong model string caused by typo. 2018-06-18 20:26:51 +00:00
Volker Ruppert
20edb4600b Fixed mem read/write data conversion (mem_read() could cause segfault / thanks
to Luigi B. for pointing out this issue).
2018-06-17 11:27:18 +00:00
Stanislav Shwartsman
eebdb4d63a avoid gcc 7.3 warning 2018-05-27 19:09:59 +00:00
Stanislav Shwartsman
c830322f4c fixed cygwin gcc 7.3 warning - look like real bug ! 2018-05-27 18:33:07 +00:00
Stanislav Shwartsman
a8413aa838 update comments base on latest AMD spec 2018-05-27 18:13:24 +00:00
Volker Ruppert
04897375bb Fixed silence detection in DSP-direct (non-DMA) mode. 2018-05-24 16:22:16 +00:00
Volker Ruppert
1f1159013d Some small additions for the Voodoo3 model. 2018-05-21 18:01:49 +00:00
Volker Ruppert
50dfe4b8de Some fixes for MSVC.
- Fixed compilation failure of MSVC plugin 'speaker'.
- Fixed some MSVC warnings.
2018-05-21 16:11:46 +00:00
Volker Ruppert
e88f14558d The VSYNC timing is now based on the PIT clock sync mode instead of the VGA
screen update timing mode.
2018-05-21 07:31:18 +00:00
Volker Ruppert
bc8ac37c63 Improved BX_INFO message for AGP aperture access. Since the Banshee AGP and
Voodoo3 AGP driver I have tested are not using this feature, we don't have a
test case yet to implement it correctly. The GART is used by AGP and the newer
PCIe bus and the specs say that the format is defined by software (driver).
2018-05-19 17:13:51 +00:00
Stanislav Shwartsman
ae004a3ed3 fixed gcc warning 2018-05-19 09:13:47 +00:00
Volker Ruppert
fb60e24859 Fixed compilation error in case the lowlevel sound interface is not present. 2018-05-19 08:07:20 +00:00
Volker Ruppert
e476c0f01a Two small VGA core changes.
- Allow 16-bit reads from address 0x03da.
- Added BX_ERROR for unimplemented bits in CRTC register 0x08.
2018-05-18 18:00:09 +00:00
Volker Ruppert
766089e02d Some small improvements for the DSP direct output (non-DMA) mode.
- Generate output in 16-bit stereo format.
- Stop non-DMA output mode after 0.1 seconds of silence.
2018-05-15 18:51:41 +00:00
Volker Ruppert
bda6a2a6de Speaker beep methods should only be called in PIT mode 3 (square wave generator).
Added speaker handler to send OUT line change to new speaker method set_line().
2018-05-14 18:17:04 +00:00
Volker Ruppert
3962a08d3a Added support for DSP command 0x10 (Sending 8-bit samples directly to DSP). 2018-05-13 18:10:23 +00:00
Volker Ruppert
74d40805d1 Added support for unlocking disk images (locks leftover from previous Bochs
session) with the new command line argument '-unlock'.
2018-05-11 07:44:49 +00:00
Volker Ruppert
9e0a507726 Added stub for the undocumented DSP command 0xE2. 2018-05-10 15:50:25 +00:00
Volker Ruppert
c10e8feea6 Added support for driving the speaker line directly with the speaker gate, but
the square wave generator disabled. This feature has been used by old demos and
games to play digitized sound before soundcards with DSP became popular.
2018-05-10 10:50:42 +00:00
Volker Ruppert
53d703f6e1 Documentation updates (i440BX chipset / Voodoo AGP adapters). 2018-05-06 16:31:56 +00:00
Volker Ruppert
3f45d44184 Added subsystem ID for Voodoo3 AGP with an existing VGA ROM.
Updated some comments.
TODO: full AGP support, LGPL'd VGABIOS for Banshee / Voodoo3
2018-05-06 06:13:57 +00:00
Volker Ruppert
211eefa8d5 Updated both MSVC workspace files for current SVN (added DDC files). 2018-05-04 21:21:51 +00:00
Volker Ruppert
4462ac7319 Fixed Banshee status reading via MMIO (unaligned access is allowed).
The Banshee AGP model is now basicly working (tested with Win98SE).
Started documentation updates about i440BX chipset and Banshee AGP.
2018-05-03 19:46:12 +00:00
Volker Ruppert
9bd54cc380 Some work on the i440BX chipset AGP support in the Bochs BIOS.
- rombios.c: return maximum bus number #1 for i440BX.
- Now using different i/o and memory base address regions for PCI and AGP.
- Added some init code for the i440BX PCI/AGP bridge.
- Some code cleanups.
2018-05-03 17:55:17 +00:00
Volker Ruppert
536f9ba094 Some work on the i440BX chipset AGP support in the Bochs BIOS.
- rombios.c: return maximum bus number #1 for i440BX.
- Now using different i/o and memory base address regions for PCI and AGP.
- Added some init code for the i440BX PCI/AGP bridge.
- Some code cleanups.
2018-05-03 17:54:31 +00:00
Volker Ruppert
7412ebc07b Added new macros BX_DEBUG_PCI_READ and BX_DEBUG_PCI_WRITE to unify the debug
output of PCI config space handlers.
Banshee: some PCI register fixes.
2018-05-01 15:54:37 +00:00
Volker Ruppert
92ce5c3846 Moved PIR table modification for the i440BX chipset from the memory code to the
BIOS init code and some related fixes and cleanups.
2018-05-01 07:05:28 +00:00
Volker Ruppert
e526d6c9d7 Moved PIR table modification for the i440BX chipset from the memory code to the
BIOS init code and some related fixes and cleanups.
2018-05-01 07:04:43 +00:00
Volker Ruppert
e781a8f998 Some PCI IRQ roouting changes for i440BX chipset support.
- Bochs BIOS: Improved calculating PCI slot number from device number to handle
  the i440BX case correctly.
- Memory code: Detect and modify the PCI IRQ roouting table of the Bochs BIOS
  for the i440BX chipset (TODO: this could be done by the BIOS itself after
  copying to shadow RAM).
2018-04-29 16:22:44 +00:00
Volker Ruppert
eeefe369d7 Some PCI IRQ roouting changes for i440BX chipset support.
- Bochs BIOS: Improved calculating PCI slot number from device number to handle
  the i440BX case correctly.
- Memory code: Detect and modify the PCI IRQ roouting table of the Bochs BIOS
  for the i440BX chipset (TODO: this could be done by the BIOS itself after
  copying to shadow RAM).
2018-04-29 16:20:58 +00:00
Volker Ruppert
69be05b2b5 Started preparing the Bochs BIOS for i440BX chipset support.
- Added symbols for the i440BX host bridge device ID.
- Probe and search for devices on PCI bus #1 (AGP).
- Set up memory and i/o regions only for header type 0.
- Set AGP aperture size to 64 MB.
- TODO: PCI IRQ routing, i440BX specific register setup.
2018-04-24 21:30:31 +00:00
Volker Ruppert
00ac6013f0 Started preparing the Bochs BIOS for i440BX chipset support.
- Added symbols for the i440BX host bridge device ID.
- Probe and search for devices on PCI bus #1 (AGP).
- Set up memory and i/o regions only for header type 0.
- Set AGP aperture size to 64 MB.
- TODO: PCI IRQ routing, i440BX specific register setup.
2018-04-24 21:29:41 +00:00
Stanislav Shwartsman
fcd9ce1634 fix compilation without x86_64 2018-04-15 14:22:16 +00:00
Stanislav Shwartsman
d000e21001 added MOVDIRI opcode implementation 2018-04-06 05:06:36 +00:00
Volker Ruppert
776e8270f6 Started preparing Bochs BIOS for the sector size option.
- Function ata_cmd_data_io: using fixed block size 512 only for 'identify'
  commands. For read/write commands the hard disk sector size must be used.
- Take account of sector size when calculating hard disk size in MBytes (TODO:
  calculation is not correct for not yet existing very big disks).
- updated comment.
2018-04-05 21:35:41 +00:00
Volker Ruppert
6739601a52 Started preparing Bochs BIOS for the sector size option.
- Function ata_cmd_data_io: using fixed block size 512 only for 'identify'
  commands. For read/write commands the hard disk sector size must be used.
- Take account of sector size when calculating hard disk size in MBytes (TODO:
  calculation is not correct for not yet existing very big disks).
- updated comment.
2018-04-05 21:35:24 +00:00
Stanislav Shwartsman
fd15b61d94 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
Stanislav Shwartsman
8c9f7f54b6 update CPUID definitions with recently published EAS-33 extensions document 2018-04-04 18:15:44 +00:00
Volker Ruppert
e63296ddca Added more default return values and improved debug output (i/o len). 2018-04-02 17:32:51 +00:00
Volker Ruppert
a086cdf08f Some work on the Voodoo Banshee emulation.
- Added default value for the video clock frequency to make sure that the
  vertical timer works.
- Changing vidDesktopStartAddr register when the video processor is on now
  forces a screen update.
2018-04-01 16:05:40 +00:00
Volker Ruppert
1aab0f9e31 If the base image of an undoable/volatile mode image has a builtin geometry,
the toplevel image inherits the base image settings.
2018-03-31 17:07:44 +00:00
Volker Ruppert
1855f22d2b Added sector size option in bximage for creating flat, sparse and growing mode
images. TODO: using ATA disk images with big sectors requires BIOS support.
2018-03-30 21:04:04 +00:00
Volker Ruppert
7895516c4d Fixed copy&paste bug making undoable/volatile disk images fail. 2018-03-30 09:35:15 +00:00