Commit Graph

551 Commits

Author SHA1 Message Date
Stanislav Shwartsman
f9540f1c24 - Improved CPU status restore after restoring from Bochs saved image
- Changed many BX_ERROR messages about VMX VMEXIT takesn to BX_DEBUG
2012-05-19 20:36:40 +00:00
Stanislav Shwartsman
3e35d5b6ce update CHANGES 2012-05-12 11:59:21 +00:00
Stanislav Shwartsman
03162d86f5 LAPIC: fixed timer interrupts after reloading of LAPIC Timer Divide Configuration register 2012-05-12 11:52:29 +00:00
Stanislav Shwartsman
708fc666c8 Added Corei7 ivyBridge configuration to CPUDB 2012-05-07 12:31:22 +00:00
Stanislav Shwartsman
39c14ef0d1 Implemented EPT A/D extensions support.
Bochs is fully aligned with the latest published revision of
Intel Architecture Manual (revision 043) now.
2012-05-02 18:11:39 +00:00
Stanislav Shwartsman
e1611e717e Implemented feature request:
[3519794] debugger's ability to save physical/linear memory dumps
2012-04-24 11:01:59 +00:00
Stanislav Shwartsman
d71ed03ba1 fixed buffer overflow in serial.cc 2012-04-21 18:13:10 +00:00
Stanislav Shwartsman
c7c431f88e bx_instr_mem_data_access became completely obsolete with new stack optimization merged into SVN.
It already had limited usability before. With stack direct access optimization the callback won't be called for stack accesses as well.
See note by Brian Slechta:

=== Cut Hete ===
While using Bochs as a reference model for simulations, the simulator needs
information about what loads/stores are taking place with each instruction.
Presumably,  that  is  what  the BX_INSTR_MEM_DATA() instrumentation macros
cover (which is the place where our simulator hooks up).

The RETnear_xxx() functions call access_linear() directly, rather than call
read_virtual_xxx()  functions. This is a problem for code making use of the
BX_INSTR_MEM_DATA()   hook  because  it  does  not  get  called  for  these
instructions.  Should  this  be  changed along with some other instructions
that exhibit this?
=== Cut Hete ===

For Bryan's usage bx_instr_lin_access and bx_instr_phy_read/bx_instr_phy_write callbacks should be used.
2012-04-11 19:01:25 +00:00
Stanislav Shwartsman
83d1e1ee0f update CHANGES 2012-04-10 14:18:54 +00:00
Stanislav Shwartsman
60e92204b1 update CHANGES 2012-04-04 19:59:26 +00:00
Stanislav Shwartsman
e7a4a1bec8 surprisingly, opensuse 12.1 requre alignment check support in hardware so I can't disable it by default for all configurations.
but in case you want a few %% of extra emulation performance - it is still possible to disable it with configure option.
most guests I saw do not use it !
2012-03-26 19:33:38 +00:00
Stanislav Shwartsman
d4688e8b95 - Do not compile support for alignment check (#AC exception) by default
for CPU emulation performance reasons, the alignment check compilation
    still can be enabled using configure option --enable-alignment-check.

There is no software in the world which enable #AC exception checking, this
x86 feature is completely legacy but its emulation support costs up to 3-5%
emulation speed.

The checking for #AC exception enable still will be done, if

 CPL == 3, EFLAGS.AC = 1 and CR0.AM = 1

but the alignment check is not compiled in, the Bochs will PANIC with corresponding message.
You can press 'always continue' and ignore the PANIC, the simulation will continue as if alignment checking is not enabled.
2012-03-25 19:07:17 +00:00
Stanislav Shwartsman
3ca29cbdf3 stack direct access optimization - 5% emu speedup to all 32-bit guests, for 64-bit guests speedup is less because they have less stack accesses 2012-03-25 11:54:32 +00:00
Stanislav Shwartsman
e1506e3e29 some cleanup in CPU code + patch SVM SS.DPL instead of failing VMRUN 2012-03-19 19:24:15 +00:00
Stanislav Shwartsman
733dc3bb3c dump CPUID .bochsrc options only if no CPUDB profile is selected 2012-03-15 19:55:14 +00:00
Stanislav Shwartsman
1dd0500259 Merge SF patch 3505209 and update CHANGES 2012-03-15 19:34:13 +00:00
Volker Ruppert
3ba2751b6f - update changes 2012-03-13 19:08:40 +00:00
Stanislav Shwartsman
406a381371 update CHANGES (not complete) 2012-03-13 15:24:47 +00:00
Volker Ruppert
ae860d3cb8 - added changes in bugfix release 2.5.1 2012-01-06 21:56:48 +00:00
Volker Ruppert
9fd437d22c - preparing release 2.5 2011-11-27 15:55:49 +00:00
Volker Ruppert
bc3b84e43c - added 'x' display library option "nokeyrepeat" to documentation 2011-11-27 12:13:22 +00:00
Stanislav Shwartsman
ea87faad6e update CHANGES 2011-11-26 17:42:31 +00:00
Stanislav Shwartsman
5e2834b69f update CHANGES with more fixed bug 2011-11-24 16:27:23 +00:00
Stanislav Shwartsman
f660d3dc68 implemented missed XOP instructions FRCZPS/PD/SS/SD + update CHANGES with fixed bugs 2011-11-24 11:34:26 +00:00
Stanislav Shwartsman
9f5dabf839 added to CHANGES info about internal dbger and GUI dbger fixes 2011-11-23 20:09:21 +00:00
Stanislav Shwartsman
44c3b65961 update CHANGES with fixed bug 2011-11-21 13:21:19 +00:00
Stanislav Shwartsman
c74f590077 implemented TSC-Deadline APIC timer mode 2011-11-21 12:51:50 +00:00
Stanislav Shwartsman
25ac87009b update CHANGES 2011-11-19 14:32:13 +00:00
Stanislav Shwartsman
cf314eb064 update CHANGES with closed bug 2011-11-08 18:01:35 +00:00
Stanislav Shwartsman
c68fdf4223 fixed typo in CHANGES 2011-11-06 21:51:30 +00:00
Volker Ruppert
80be7ef9b1 - preparing Bochs 2.5.pre1 2011-11-06 09:00:41 +00:00
Stanislav Shwartsman
9be8552b80 - Implemented VM Functions support and EPTP-Switching VM Functions
- Added VMEXIT conditions for INVPCID instruction

Now Bochs is fully aligned with latest pulished Intel's SDM rev040.
2011-11-05 07:31:51 +00:00
Volker Ruppert
de38d27b99 - changes updated 2011-10-30 17:15:59 +00:00
Stanislav Shwartsman
f73cdfaeac change nickname ('ch100') to realname ('Christian Inci') in CHANGES 2011-10-23 04:47:33 +00:00
Stanislav Shwartsman
60582e2b9d merge patch [3426460] [PATCH] PIC: remove never-executed code by ch100 2011-10-20 19:19:06 +00:00
Stanislav Shwartsman
5cc04b9955 Implemented AMDs Buldozer XOP and TBM extensions.
XOP: few instructions are still missing, coming soon

  BX_PANIC(("VPERMILPS_VpsHpsWpsVIbR: not implemented yet"));
  BX_PANIC(("VPERMILPD_VpdHpdWpdVIbR: not implemented yet"));
  BX_PANIC(("VPMADCSSWD_VdqHdqWdqVIbR: not implemented yet"));
  BX_PANIC(("VPMADCSWD_VdqHdqWdqVIbR: not implemented yet"));
  BX_PANIC(("VFRCZPS_VpsWpsR: not implemented yet"));
  BX_PANIC(("VFRCZPD_VpdWpdR: not implemented yet"));
  BX_PANIC(("VFRCZSS_VssWssR: not implemented yet"));
  BX_PANIC(("VFRCZSD_VsdWsdR: not implemented yet"));
2011-10-19 20:54:04 +00:00
Stanislav Shwartsman
887aac2a4e updating CHANGES 2011-10-16 06:27:09 +00:00
Stanislav Shwartsman
2580d8c46d added FMA4 AMD instructions support, fixed mem access length for Intel scalar FMA instructions 2011-10-07 14:09:35 +00:00
Stanislav Shwartsman
e4560dd814 some comments about usb xhci support 2011-09-29 22:51:33 +00:00
Stanislav Shwartsman
6751af5d8e added AVX FMA extensions support. The implementation is based on QEMU patch by Peter Maydell (fixed) 2011-09-29 22:20:56 +00:00
Stanislav Shwartsman
c28c7f6a06 Supply real VMX capabilities together with the CPU MODEL .bochsrc option.
So now the same single option will choose not only the CPUID flags but also VMX capabilities matching real HW machine.

Removed cpuid of core2_extreme_x9770 from the cpudb. I don't remember its VMX capabilities anyway.
There is another Penryn model in the cpudb - core2_penryn_t9600.
2011-09-26 12:31:40 +00:00
Stanislav Shwartsman
f7f06aebdf Updating CHANGES for coming 2.5 release
It was a real challenge to summarize all the highlights we have done in past half a year.
Hopefully it looks good and I didn't miss anything important.
2011-09-25 22:15:21 +00:00
Stanislav Shwartsman
62d0c8abf7 - Now you could disable x86-64 from .bochsrc so now it is possible to emulate
32-bit CPU using Bochs binary compiled with x86-64 support.

The commit also fixes some init.cc issues with initialization of SYSCALL/SYSRET MSR in AMD hosts and also includes code reorg.
2011-09-25 17:36:20 +00:00
Stanislav Shwartsman
1b9f286945 - New way of CPUs scheduling in SMP mode brings up to 50% speedup to the
SMP emulation. New implementation uses dynamic CPU quantum value and takes
   full advantage of the trace cache. Each emulated processor will execute
   the whole trace before switching to the next processor.
 * It is also safe to use large (up to 16 instructions) quantum values for
   the SMP emulation now and improve performance even further.

The same merge also completely fixes SF bug :
  [3312237] stepN command might be not working properly

Handlers chaining speedups are also supported with SMP emulation now.
2011-09-22 19:38:52 +00:00
Stanislav Shwartsman
50207eeb90 - Added support for AMD SSE4A emulation, the instructions can be enabled
using .bochsrc CPUID option.
2011-09-18 16:18:22 +00:00
Stanislav Shwartsman
330bf62f61 added INVPCID instruction support 2011-09-16 20:06:23 +00:00
Stanislav Shwartsman
d5fcfabb38 bugfix + update changes 2011-09-13 19:38:09 +00:00
Stanislav Shwartsman
6bdfbeeffa fixed for gather VSIB calculation 2011-08-28 20:14:53 +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
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
Stanislav Shwartsman
60a33f24d5 added new bochs binary param to choose cpu to emulate 2011-08-16 20:30:01 +00:00
Stanislav Shwartsman
7feb947830 BIOS fixes 2011-08-15 06:05:52 +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
075db389a9 added atom n270 cpuid + small fixes 2011-08-03 17:49:49 +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
29f0e93025 spelling 2011-07-31 20:07:43 +00:00
Stanislav Shwartsman
62ad2a0d06 update CHANGES 2011-07-29 15:55:17 +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
84636ca141 update fixed bugs in CHANGES 2011-07-24 19:36:19 +00:00
Stanislav Shwartsman
d11114ac19 Patch for emulating target with larger memory than host has available by Gary Cameron.
The patch was posted in mailing list at Thu 6/16/2011.

Desription for CHANGES:

- Memory
  - Added new configure option which enables RAM file backing for large guest
    memory with a smaller amount host memory, without causing a panic when
    host memory is exhausted (patch by Gary Cameron). To enable configure with
        --enable-large-ramfile option.
2011-07-22 17:46:06 +00:00
Stanislav Shwartsman
1e2c7de064 register state for pause-loop exiting 2011-07-22 09:28:31 +00:00
Stanislav Shwartsman
1b9fd6a18b fixed format of cpuid param in .bochsrc generated by Bochs 2011-07-17 18:14:29 +00:00
Stanislav Shwartsman
a6853a8b75 removed not implemented g2h device 2011-07-10 21:25:12 +00:00
Stanislav Shwartsman
432bf97197 was playing with SMP and debugger 2011-07-09 22:17:16 +00:00
Volker Ruppert
ec2f54a65e - changes updated 2011-07-03 19:37:59 +00:00
Stanislav Shwartsman
909e750549 Implemented VMX preemption timer VMEXIT control (patch by Jianan Hao) 2011-07-03 15:59:48 +00:00
Stanislav Shwartsman
7e57d95364 Fix wrong address translation in debugger 2011-06-24 13:05:36 +00:00
Stanislav Shwartsman
c45720f31a update CHANGES 2011-06-22 16:16:12 +00:00
Stanislav Shwartsman
070a803a99 Ctrl-Break support for the Win32 gui 2011-06-21 17:10:40 +00:00
Stanislav Shwartsman
48f5c3b794 merged patch: Ctrl-Break support for the X11 gui by Nikolay Nikolov 2011-06-15 15:35:22 +00:00
Stanislav Shwartsman
1414e0bd6e Report memory above 4GB to BIOS (patch by Sebastian Herbszt) 2011-06-12 20:27:36 +00:00
Stanislav Shwartsman
8399dee24c implemented AVX float16 convert instructions 2011-06-11 13:12:32 +00:00
Stanislav Shwartsman
d5da9c83ea fixed typo 2011-06-01 20:34:29 +00:00
Stanislav Shwartsman
29e3f6e762 remove trace cache disabled mode from the code. next step going to be - introducing new optimization features based on trace cache 2011-06-01 20:34:04 +00:00
Stanislav Shwartsman
e9ed944ba8 BIOS32 - fix length of the BIOS service.
Fix for bug #3170157 supplied by Jonathan de Boyne Pollard.
2011-05-29 16:35:30 +00:00
Stanislav Shwartsman
ee3f9e36cb Implemented Supervisor Mode Execution Protection (SMEP) 2011-05-29 16:28:26 +00:00
Stanislav Shwartsman
6ace540891 update for rev39 of Intel SDM 2011-05-28 20:20:25 +00:00
Stanislav Shwartsman
e0160b4f29 ability to turn on/off AVX if compiled in 2011-05-24 20:33:36 +00:00
Volker Ruppert
0638a4174d - use timer functions for recording only if the record handler is not NULL
- added sound recording framework in the soundosx.* files. I hope someone wil
  be able to add the required platform specific code.
2011-05-24 16:47:07 +00:00
Stanislav Shwartsman
92bb77ef1d Merge patch from SF tracker:
[3298173] Breakpoint on VMEXIT event by Jianan Hao

Patch description:

The patch provides a new command "vmexitbp" to set breakpoint when VM guest exit. The simulation will be stopped before first HOST mode instruction is executed.

Usage:
Type "vmexitbp" in debugger command window to switch it on/off (similar to modebp).


Currently, the patch has no corresponding interface on GUI debugger. Someone may add it if interested.
2011-05-06 08:19:03 +00:00
Stanislav Shwartsman
8875e79425 update CHANGES 2011-05-04 19:26:11 +00:00
Stanislav Shwartsman
17f477814a merged SVN patch Fix CopyHost*WordLittleEndian macros 2011-05-01 16:31:54 +00:00
Stanislav Shwartsman
76c11e1a40 - Configure option --enable-acpi is deprecated and should not be used anymore.
The ACPI support is always automatically compiled in if PCI is compiled in.
    The ACPI still could be disabled using .bochsrc 'plugin_ctrl' option.

Updated CHANGES and docs as well.
2011-04-30 20:04:42 +00:00
Stanislav Shwartsman
c3de861958 fixed gui debugger mode change display 2011-04-28 19:16:51 +00:00
Stanislav Shwartsman
c3a31d3cf0 applied patch bochs-110423-builtinbswap.patch 2011-04-25 15:20:27 +00:00
Volker Ruppert
c5f385552f - use the new Core Audio API if available (SF patch #3292581 by Heikki Lindholm)
- TODO: some more work may be required
2011-04-25 11:22:19 +00:00
Volker Ruppert
e3916f0df4 - always enable Cirrus extensions of the PCI version
- changed statements true / false to 1 / 0
- added definitions for unimplemented features
2011-04-24 08:08:35 +00:00
Stanislav Shwartsman
e65509d384 typo fix 2011-04-21 18:30:07 +00:00
Stanislav Shwartsman
c9c067bf8b compilation fixes for OpenBSD 2011-04-21 18:29:07 +00:00
Stanislav Shwartsman
9979817f4a fix for acpi (merge SF patch) 2011-04-21 15:40:33 +00:00
Stanislav Shwartsman
024a1ace38 move X2APIC to be .bochsrc option, rework of the cpuid code 2011-04-21 13:27:42 +00:00
Stanislav Shwartsman
c8577e77e1 merge patch Mac OS X audio missing framework dependency by Heikki Lindholm 2011-04-19 12:50:22 +00:00
Stanislav Shwartsman
74792e6841 update CHANGES 2011-04-15 04:46:27 +00:00
Stanislav Shwartsman
5172d473fa update CHANGES 2011-04-03 04:12:46 +00:00
Stanislav Shwartsman
a2576c6892 updated CHANGES 2011-03-26 22:05:47 +00:00
Stanislav Shwartsman
f0a3cce1e2 added XSAVEOPT instruction emulation (for now with no state tracking according to Intel docs, just alias it to XSAVE)
update CHANGES
2011-03-25 20:32:07 +00:00
Stanislav Shwartsman
7ced718040 implemented AVX instructions support
many changes - some cleanup will follow
please report ay found bugs !
2011-03-19 20:09:34 +00:00
Stanislav Shwartsman
ab1ea79f2c Unify manifest file for Win32 and Win64 - also fixes MSDEV command line compilation issue 2011-03-07 17:07:29 +00:00