Commit Graph

8662 Commits

Author SHA1 Message Date
Stanislav Shwartsman
5a350143a5 bug fixes 2011-09-06 13:09:45 +00:00
Volker Ruppert
9483414f84 - fixed 256-color mode screen update handling. Now the dword, word and byte modes
are correctly handled.
- related fixes in the graphics snapshot code
2011-09-05 18:39:02 +00:00
Stanislav Shwartsman
c67338203c small fixups, code cleanup and reorganization 2011-09-05 17:14:49 +00:00
Stanislav Shwartsman
41f9b25777 fixed avx2 gather instructions 2011-09-04 19:50:18 +00:00
Stanislav Shwartsman
c0f5919787 small optimization 2011-09-03 15:36:40 +00:00
Stanislav Shwartsman
8099fd9efd implemented alternative access to CR8: AMD feature. Lock CR0 -> CR8 2011-09-03 15:22:56 +00:00
Stanislav Shwartsman
c85da98ce5 fixed cpu:avx option crash. fixed handlers-chaining configure option name 2011-09-01 13:59:35 +00:00
Stanislav Shwartsman
cf56ffb6e0 BSF/BSR should stay, only F3 prefix change opcode 2011-08-31 21:13:50 +00:00
Stanislav Shwartsman
9d18af1207 fixed compilation for AVX OFF 2011-08-31 20:52:53 +00:00
Stanislav Shwartsman
1f5e036695 lzcnt/tzcnt bmi instructions implemented 2011-08-31 20:43:47 +00:00
Stanislav Shwartsman
e61da281c0 update cpu-configurable doc 2011-08-31 16:33:12 +00:00
Stanislav Shwartsman
d2f7351be2 cpu.h cleanup + update msdev workspaces cpudb projects 2011-08-30 22:22:07 +00:00
Stanislav Shwartsman
d893ddf5d1 added new entry to cpudb 2011-08-30 22:02:08 +00:00
Stanislav Shwartsman
dfd769a102 - Fixed compilation issue with cpu-level=5
- SYSCALL/SYSRET: SYSCALL/SYSRET instructions are not supported in legacy mode for Intel processors
- CPUID: CPUID.0x80000001.EDX[11] SYSCALL/SYSRET support should not be reported outside long64 mode if legacy mode SYSCALL/SYSRET is not supported
- Added new CPUDB entry - AMD K6-2 3D proc3essor (Chomper)
2011-08-30 22:00:27 +00:00
Stanislav Shwartsman
fb9da23f9b syscall/sysret are not supported outside long64 mode in Intel CPUs 2011-08-30 21:32:40 +00:00
Stanislav Shwartsman
9693bacacb syscall/sysret in legacy mode is supported in k6-2. preparing code to it ... 2011-08-30 20:41:00 +00:00
Stanislav Shwartsman
0f73ff39df bug fix 2011-08-30 19:16:08 +00:00
Stanislav Shwartsman
c30275016e avx2 added broadcast from register 2011-08-29 21:00:25 +00:00
Stanislav Shwartsman
1328861175 typo fix 2011-08-28 21:41:54 +00:00
Stanislav Shwartsman
1dc8f56f06 disasm for AVX2 gather 2011-08-28 21:38:53 +00:00
Stanislav Shwartsman
6bdfbeeffa fixed for gather VSIB calculation 2011-08-28 20:14:53 +00:00
Stanislav Shwartsman
239c5a449d added 'locked' information to bxInstruction_c for instrumentation and other future use 2011-08-27 20:09:18 +00:00
Stanislav Shwartsman
acfeed8e31 update msvcpp workspace with new files 2011-08-27 18:48:11 +00:00
Stanislav Shwartsman
67cbb2dac5 fixed typo 2011-08-27 14:29:11 +00:00
Stanislav Shwartsman
e907702b6e warn if configure avx w/o x86-64 2011-08-27 13:55:40 +00:00
Stanislav Shwartsman
44241a1e56 - Added support for AVX and AVX2 instructions emulation, to enable configure
with --enable-avx option. When compiled in, AVX still has to be enabled
    using .bochsrc CPUID option. AVX2 FMA instructions still not implemented.

  - Added support for Bit Manipulation Instructions (BMI) emulation. The BMI
    instructions support can be enabled using .bochsrc CPUID option.
2011-08-27 13:47:16 +00:00
Stanislav Shwartsman
0d15044913 fixed configure script bug 2011-08-26 19:08:37 +00:00
Stanislav Shwartsman
d841e82d87 MOVBE instruction exists only in memory form 2011-08-25 21:20:50 +00:00
Stanislav Shwartsman
b3898f4bec small optimization for PALIGNR instruction 2011-08-25 19:29:33 +00:00
Stanislav Shwartsman
e796e6a96c disasm avx2 new instructions (no gather yet) 2011-08-24 20:55:23 +00:00
Volker Ruppert
a1b9a8e190 - enable extended "read TOC" feature for Windows versions newer than XP (>= 5.1)
- TODO: move win32 specific cdrom stuff to a separate file
2011-08-24 10:48:05 +00:00
Stanislav Shwartsman
5dde2dc744 fixed typo 2011-08-23 21:56:35 +00:00
Stanislav Shwartsman
fa930961c2 small optimization 2011-08-23 21:25:34 +00:00
Stanislav Shwartsman
4fae848888 just rename variable 2011-08-23 20:27:52 +00:00
Volker Ruppert
aaf5d0a94d - removed raw floppy access support for Win 95/98/ME hosts 2011-08-22 17:57:21 +00:00
Stanislav Shwartsman
638a834c4a remove redundant code 2011-08-22 17:19:04 +00:00
Volker Ruppert
53c30f487b - fixed a warning caused by wrong runtime library for the BOCHS.EXE components 2011-08-22 12:35:49 +00:00
Volker Ruppert
5e9b35994c - removed Windows font support for the text mode (was disabled by default)
- TODO: implement optional stretching of the Bochs display to double size if
  the desktop is big enough (e.g. HD display)
2011-08-22 10:25:29 +00:00
Volker Ruppert
0b670248ca - added command line option '--help cpu' that shows the list of supported cpu
models (TODO: this could be done for devices, too)
2011-08-22 04:07:10 +00:00
Stanislav Shwartsman
002e7a3818 MSR_TSC_AUX is not available without RDTSCP 2011-08-21 19:09:35 +00:00
Stanislav Shwartsman
371dc200fc Remove the 'trace' debug feature fro the main stream (which now runs with handlers chaining) and this way reduce each handler size.
Another 3% speedup on WinXP boot on top of handlers chaining + reduction of Bochs binary size by 45K.
2011-08-21 17:04:21 +00:00
Stanislav Shwartsman
a5e187189a set max trace length back to 32 2011-08-21 16:44:02 +00:00
Stanislav Shwartsman
1e2e3c8b0e forgot to merge file 2011-08-21 14:38:33 +00:00
Stanislav Shwartsman
13feb0772a - 10% emulation speedup with handlers chaining optimization implemented. The
feature is enabled by default when configure with --enable-all-optimizations
    option, to disable handlers chaining speedups configure with
        --disable-handlers-chaining
2011-08-21 14:31:08 +00:00
Volker Ruppert
af1e3a6f80 - added cpudb project to workspace files 2011-08-20 23:10:41 +00:00
Stanislav Shwartsman
eba771bf39 remove '-cpu' command line option, it can be used using cpu:model command line so no extra option is needed 2011-08-20 18:59:25 +00:00
Stanislav Shwartsman
dd79431702 rename AVX handlers - match their real operands 2011-08-20 15:10:18 +00:00
Volker Ruppert
d5973c06cf - added runtime config handler for the floppy. Now the media change is handled
after all parameters have been set.
2011-08-19 20:20:25 +00:00
Volker Ruppert
bfdbf589a0 - removed duplicate 'clean' for cpu/cpudb
- added missing 'dist-clean' for cpu/cpudb
2011-08-19 06:31:51 +00:00
Stanislav Shwartsman
3a575a036d added make clean for libcpudb 2011-08-18 19:27:45 +00:00
Stanislav Shwartsman
542af0dcc1 forgot to add a file 2011-08-18 19:02:16 +00:00
Stanislav Shwartsman
b8b63ac6ea compile CPUDB to separate library
reduce compile-time dependencies
2011-08-18 18:55:22 +00:00
Volker Ruppert
e607d6e070 - rewrite of the method init_module() similar to the netmod one
- lowlevel sound modules must always include their headers for correct
  auto-generated dependencies
2011-08-18 07:05:09 +00:00
Stanislav Shwartsman
30b94b112b regen Makefile.in dep 2011-08-18 05:44:54 +00:00
Volker Ruppert
4b4f691a80 - don't include plugin.h in bochs.h to reduce dependencies 2011-08-17 22:41:03 +00:00
Stanislav Shwartsman
367e8999d6 fixed leaf 0x7 report in cpuid 2011-08-17 21:33:55 +00:00
Stanislav Shwartsman
ed9b8478b5 undo RDTSC commit 2011-08-17 21:13:06 +00:00
Stanislav Shwartsman
165e6f0fdf separate TSC to uniq feature that can be disabled in CPU configuration 2011-08-17 20:57:44 +00:00
Stanislav Shwartsman
4a3209ae31 Increase cpu param length (exceeded with new icount variable)
CHECK_MAX_INSTRUCTIONS is not needed for debugger anymore.
Next step: eliminate it for SMP as well and remove cpu_loop parameter.
2011-08-17 20:00:51 +00:00
Stanislav Shwartsman
b69f728246 Fixed internal debugger part of the bug:
#3312237 stepN command might be not working properly
The problem still can be exists for SMP.
2011-08-17 19:51:32 +00:00
Stanislav Shwartsman
3018b08f59 clarify error message for pcidev 2011-08-17 18:27:49 +00:00
Volker Ruppert
0d23553cae - updated / added some project files for plugin DLLs
- split 'bx_netmod' from 'bx_ne2k'
  - moved cdrom.cc to 'bx_hdimage'
  - added missing project 'bx_pcivga'
- TODO: project 'cpu' not yet fixed (temporary fix for compilation test not applied)
2011-08-17 11:00:48 +00:00
Stanislav Shwartsman
86d042a46e added AVX to msdev workspaces 2011-08-16 20:44:02 +00:00
Stanislav Shwartsman
60a33f24d5 added new bochs binary param to choose cpu to emulate 2011-08-16 20:30:01 +00:00
Stanislav Shwartsman
b0d7ffeb90 fixed compilation 2011-08-16 20:07:34 +00:00
Stanislav Shwartsman
9de4164d1f remove double include 2011-08-16 20:07:08 +00:00
Stanislav Shwartsman
a03e0266fb added yonah CPUID to cpudb. remove bxversion.h from dep files 2011-08-16 19:58:56 +00:00
Stanislav Shwartsman
0bc93fdc59 added pentium mmx to cpudb. for now only can be enabled when cpu-level=5 2011-08-16 19:04:36 +00:00
Stanislav Shwartsman
04456ca66a update MSDEV workspaces
CPU/CPUDB files are not added into workspaces yet
2011-08-16 18:05:26 +00:00
Stanislav Shwartsman
01dbcff569 Support ctrl-alt-del for reboot by Sebastian 2011-08-16 17:54:44 +00:00
Volker Ruppert
a7690f873e - regenerated configure script 2011-08-16 17:33:55 +00:00
Volker Ruppert
fd56ce2a5a - forgot to add / remove files 2011-08-16 17:31:16 +00:00
Volker Ruppert
592c3399eb - created separate plugin 'netmod' that contains the common networking code
and the supported ethernet modules
  - renamed eth.* files to netmod.*
  - pseudo-device plugin implementation similar to 'soundmod'
- TODO: move sound, net and usb stuff to a separate subdirectory of iodev
2011-08-16 17:27:27 +00:00
Stanislav Shwartsman
6606c62439 cr4 available since Pentium only 2011-08-16 16:49:04 +00:00
Stanislav Shwartsman
0c32889d24 added txt guide to configurable Bochs CPU model 2011-08-16 16:11:15 +00:00
Volker Ruppert
7bbfee58a2 - usually the realtime synchronization keeps the PIT-based system clock in sync
with the host time. After using a runtime config dialog or save and restore
  simulation, this behaviour makes the PIT clock and the VGA update timer
  running way too fast until it's back in sync. Now the elapsed time is stored
  in the variable 'real_time_delay' and it is used to let the PIT clock run at
  realtime speed, even if it is out of sync.
2011-08-15 10:37:41 +00:00
Volker Ruppert
83f0e388c5 - recompiled after latest changes 2011-08-15 06:25:51 +00:00
Stanislav Shwartsman
7feb947830 BIOS fixes 2011-08-15 06:05:52 +00:00
Stanislav Shwartsman
e50e187128 #GP on EFER access when not supported 2011-08-14 20:41:46 +00:00
Stanislav Shwartsman
fb8d302f72 changed SHOW-IPS format for all GUIs 2011-08-14 20:21:07 +00:00
Volker Ruppert
7600c1bc60 - fixed dialog size if a 2-line label is used 2011-08-14 17:07:47 +00:00
Volker Ruppert
a0b4b4898b - implemented graphics snapshot for mode X (variant of VGA mode 0x13)
- bugfix: CGA1 mode depends on the CGA compatiblity switch
2011-08-14 14:56:54 +00:00
Volker Ruppert
b8b2a7253b - implemented graphics snapshot for VGA mode 0x13
- new method get_dac_palette() for the graphics snapshot feature
- small code cleanup
2011-08-14 08:06:05 +00:00
Stanislav Shwartsman
2f7e73fda9 update CHANGES 2011-08-13 19:48:54 +00:00
Stanislav Shwartsman
43e2a59e3e configure show-ips ON by default for all configurations 2011-08-13 19:44:24 +00:00
Stanislav Shwartsman
35ec48d17d small fixes 2011-08-13 18:39:17 +00:00
Volker Ruppert
f9918d6317 - cleanups in X11 dialog code (control text and selection rectangle handling) 2011-08-12 21:50:32 +00:00
Stanislav Shwartsman
290d3bf6ad typofix 2011-08-12 18:09:24 +00:00
Stanislav Shwartsman
8962cfddde re-definition of x86-64 support, 1st step towards x86-64 enable/disable through .bochsrc 2011-08-12 18:04:56 +00:00
Volker Ruppert
c627270a86 - rewrite of the X11 dialog box code (implemented new class x11_dialog_c that handles the event loop) 2011-08-12 15:02:39 +00:00
Stanislav Shwartsman
7af5dccdcf fixed compilation issue 2011-08-11 19:45:21 +00:00
Stanislav Shwartsman
e4513c727a simplify some bochs internal dbg stuff 2011-08-11 19:40:51 +00:00
Stanislav Shwartsman
9d2e601173 correctly handle SSE presence in GUI debugger 2011-08-11 18:43:13 +00:00
Stanislav Shwartsman
d0344a1b84 added Id Revision to new files 2011-08-11 18:17:45 +00:00
Stanislav Shwartsman
27df10acb6 fixed typo-like bug 2011-08-11 18:16:56 +00:00
Stanislav Shwartsman
6344c6a719 Added P2 Klamath CPUID + some code reorg again 2011-08-11 18:06:09 +00:00
Stanislav Shwartsman
5ea65d1753 fix for disasm 2011-08-10 22:11:12 +00:00
Stanislav Shwartsman
f15bc6cf75 support for NX outside of x86-64.
required for Intel Yonah processor which is another interesting CPUID to be added
also found Via C7 CPUID, looking for the way to add it too
2011-08-10 22:04:33 +00:00
Stanislav Shwartsman
1b27438146 cleanups + small code reorg 2011-08-10 20:31:29 +00:00
Volker Ruppert
9416eaccc2 - added error handling for the case malloc() fails 2011-08-10 07:12:32 +00:00
Stanislav Shwartsman
360481b391 infastructure for RDMSR/WRMSR control for cpuid class
now the order is going to be:

1. MSRs emulated in Bochs (msr.cc)
2. MSRs emulated in model specific derivative class of cpuid_t
3. MSR can be loaded from msrs.def file
4. MSR is not found. We can fault or ignore based on ignore_bad_msrs option
2011-08-09 22:11:56 +00:00
Stanislav Shwartsman
0171324877 small favor to VMX OFF for code that compiled with VMX ON
avoid function call when not in vmx guest.
2011-08-09 20:50:51 +00:00
Stanislav Shwartsman
17a94fc58e warning fixes 2011-08-09 18:00:19 +00:00
Volker Ruppert
d2b0146a7e - changed BX_ERROR to BX_PANIC for the case a host directory does not fit on the virtual disk
- stop reading host directory in case of an error (finally causes a BX_PANIC)
2011-08-09 16:52:18 +00:00
Volker Ruppert
4743f2a503 - started rewrite of the X11 dialog implementation
- added a class for control elements with a proper init (fixes warnings)
  - TODO: add a class for the dialog itself
2011-08-09 14:28:25 +00:00
Volker Ruppert
9669929cbb - several fixes related to the graphics snapshot feature
- fixed size entries in bitmap file header for 8 bpp
  - bx_param_filename_c now uses the file extension from the initial value as
    the default (if present)
  - SIM->ask_filename() now uses the correct parameter type
  - win32paramdlg AskFilename(): added filter for BMP files
2011-08-09 09:56:00 +00:00
Stanislav Shwartsman
c6c94a79da dos2unix for generic_cpuid.cc
fixed xsave leaf CPUID (again)
added one more CPUID configuration: Intel Mobile Core 2 Duo T9600
2011-08-08 18:20:29 +00:00
Volker Ruppert
f151aabe5f - added support for snapshot from EGA/VGA standard memory layout (saved as 8 bpp BMP)
- added new method get_vga_pixel() that read the color value from EGA/VGA memory layout (moved from
  display update code and now also used for snapshots)
- minor code cleanups
2011-08-08 07:52:25 +00:00
Stanislav Shwartsman
4476dea8f8 remove redundant code 2011-08-08 05:47:49 +00:00
Volker Ruppert
bce6a17b98 - VBE specific case for graphics snapshot can be used for >= 8 bpp modes only
- palette data for snapshot is now dword aligned to simplify code
- prepared snapshot code to support 4 bpp EGA/VGA memory layout (not yet complete)
2011-08-06 13:08:31 +00:00
Volker Ruppert
c7f63fca93 - added palette for 8 bpp support
(TODO: support for standard VGA 4 bit mode - saving as 8 bpp BMP)
2011-08-05 15:47:33 +00:00
Stanislav Shwartsman
20becdfbe7 fix compilation errors 2011-08-05 07:22:43 +00:00
Stanislav Shwartsman
2ee0029749 extract ffxsr support to separate CPU feature 2011-08-04 19:02:49 +00:00
Stanislav Shwartsman
b6e37b818d small changes 2011-08-04 17:35:08 +00:00
Stanislav Shwartsman
1068b4bd8c cleanup 2011-08-03 21:46:46 +00:00
Stanislav Shwartsman
5ffb201184 fixed CPU leaf 0xD 2011-08-03 21:23:08 +00:00
Stanislav Shwartsman
1adda7bf64 Fixed MWAIT leaf CPUID - required for Fedora15 startup 2011-08-03 20:29:24 +00:00
Stanislav Shwartsman
5451be2676 remove duplicated code 2011-08-03 18:09:07 +00:00
Stanislav Shwartsman
9162c0dc2a dos2unix 2011-08-03 17:50:23 +00:00
Stanislav Shwartsman
075db389a9 added atom n270 cpuid + small fixes 2011-08-03 17:49:49 +00:00
Volker Ruppert
b889e91898 - implemented graphics snapshot for 15, 16 and 32 bpp modes (using 24 bpp BMP format)
- TODO: add palette to support 8 bpp modes
2011-08-03 16:35:04 +00:00
Volker Ruppert
08e80d55e0 - implemented graphics snapshot in BMP format for 24 bpp modes
- TODO: color conversion for 15/16 and 32 bit modes, palette for 8 bpp modes
2011-08-02 20:08:34 +00:00
Stanislav Shwartsman
9d1538f0c9 update docs about moving of cpuid_limit_winnt option 2011-08-02 20:01:56 +00:00
Stanislav Shwartsman
fb405ad39a Compile in MONITOR/MWAIT support by default for all cpu-level=6 configurations. 2011-08-02 19:52:24 +00:00
Stanislav Shwartsman
539c740f10 cpuid_limit_winnt moved back to CPU option in .bochsrc 2011-08-02 16:25:25 +00:00
Volker Ruppert
828b52fc50 - prepared graphics snapshot feature for VBE and Cirrus modes (TODO: save data in BMP format) 2011-08-01 18:21:25 +00:00
Stanislav Shwartsman
b9a44a9dbf added const to all cpudb methods 2011-08-01 18:10:48 +00:00
Stanislav Shwartsman
77f025b9b0 cleanup and rename old doc abou cosimulation 2011-08-01 07:50:31 +00:00
Stanislav Shwartsman
ea7d5e74ee fixed cpuid_limit_winnt mode 2011-07-31 21:02:04 +00:00
Stanislav Shwartsman
e958df1333 report 3dnow for amd cpudb machine 2011-07-31 20:19:09 +00:00
Stanislav Shwartsman
bccf330665 typo fix 2011-07-31 20:11:04 +00:00
Stanislav Shwartsman
d84dbcd02b fixed *x86 ISA extensions that enable this instruction* in ia_opcodes.h 2011-07-31 20:09:04 +00:00
Stanislav Shwartsman
29f0e93025 spelling 2011-07-31 20:07:43 +00:00
Stanislav Shwartsman
04635ca88b small fixes 2011-07-31 19:00:56 +00:00
Stanislav Shwartsman
1d89709e62 Added another CPU to CPUDB: p4_willamette (one more without x86-64 support).
Reimplemented CPUDB using pure C macros magic.
Fixed compilation errors when compiling with SMP on.
2011-07-31 18:43:46 +00:00
Volker Ruppert
bbb1586616 - added display library option to detect and turn off host keyboard repeat (X11 key repeat detection
grabbed from SDL 1.2)
- TODO: implement this feature in other display libraries and add a key repeat generator in the
  keyboard code that uses the typematic values from the guest.
2011-07-31 15:46:37 +00:00
Stanislav Shwartsman
6e6db04b8f Fixed compilation errors, dos2unix, added missed p3_katmai.txt 2011-07-31 14:56:45 +00:00
Volker Ruppert
c35e385139 - removed 'text_snapshot_check' feature and related BX_PASS loglevel
- documentation updates
2011-07-31 14:38:03 +00:00
Stanislav Shwartsman
5e291e0860 Added Athlon64 Clawhammer CPUID to CPUDB 2011-07-30 21:28:16 +00:00
Volker Ruppert
488dd8a2a9 - added support for larger label text. The horizontal position of the controls for a parameter list
is now adjusted depending on the largest label text.
2011-07-30 17:32:40 +00:00
Stanislav Shwartsman
fefa4d5e5b added PIII Katmai to CPUDB 2011-07-30 14:30:35 +00:00
Stanislav Shwartsman
7a157cf88d fixed vmexit for xsetbv and getsec 2011-07-30 13:21:31 +00:00
Stanislav Shwartsman
6aaf9297f8 ability to turn off rdtscp 2011-07-30 09:35:20 +00:00
Stanislav Shwartsman
e48765a511 VMX fixed, cleanups 2011-07-29 20:22:35 +00:00
Stanislav Shwartsman
37d8523ab4 fixed compilation with VMX=1 2011-07-29 18:41:17 +00:00
Stanislav Shwartsman
62ad2a0d06 update CHANGES 2011-07-29 15:55:17 +00:00
Stanislav Shwartsman
4ac67ec386 compilation when cu_level < 4 2011-07-29 15:24:32 +00:00
Stanislav Shwartsman
919fbd95da fixed CPUID after correlation with real HW CPUZ output 2011-07-29 15:18:39 +00:00
Stanislav Shwartsman
1a051f9f00 Added several predefined CPUs that can be selected from .bochsrc using new CPU::MODEL option.
Selecting CPU MODEL from .bochsrc automatically chooses real HW CPUID and also configures Bochs emulator to emulate this specific CPU including all its features only.
Supported CPUs to choose from:
	core2_extreme_x9770
	corei7_sandy_bridge_2600K
	p4_prescott_celeron_336
2011-07-29 15:03:54 +00:00
Stanislav Shwartsman
955f889925 change bx_info to bx_dbg 2011-07-29 08:16:28 +00:00