Commit Graph

3162 Commits

Author SHA1 Message Date
Stanislav Shwartsman
901b7be1a8 code reorg 2015-02-12 20:18:35 +00:00
Stanislav Shwartsman
40312cec2d added pentium cpudb files 2015-02-11 21:44:24 +00:00
Stanislav Shwartsman
b60d7d3154 Cleanup of CPUDB modules, moved common functionality into bx_cpuid_t base class
Added Pentium (P54C) AKA Pentium with no MMX to CPUDB
2015-02-11 21:31:17 +00:00
Stanislav Shwartsman
adaca4a6f5 more correct limit4g fix 2015-02-08 06:37:59 +00:00
Stanislav Shwartsman
e80e911166 fixed compilation on cpu level < 6 2015-01-29 18:41:28 +00:00
Stanislav Shwartsman
d6631f767d correct alignment checking (on linear address and not on effective address) 2015-01-28 16:49:46 +00:00
Stanislav Shwartsman
51808f775d 4G optimization is active only when seg.base == 0 2015-01-27 15:47:02 +00:00
Stanislav Shwartsman
17c89d1c78 masked load-store optimization for avx-512 2015-01-26 20:52:03 +00:00
Stanislav Shwartsman
ee3841ef07 fixed more compilation problems and code cleanup 2015-01-26 20:01:25 +00:00
Stanislav Shwartsman
3a4bd2da51 fixed debug message 2015-01-26 19:16:51 +00:00
Stanislav Shwartsman
9a70727814 fixed fault priority for memory accesses requiring alignment 2015-01-26 19:09:58 +00:00
Stanislav Shwartsman
74da7a7092 fixed compilation err 2015-01-26 15:34:52 +00:00
Stanislav Shwartsman
b5a603c8c7 fixed %d->%u format found by cppcheck (patch by Maxim Derbasov) 2015-01-25 21:24:13 +00:00
Stanislav Shwartsman
ea390d58dc added new files, removed old files, remove obsolete assert 2015-01-25 20:58:04 +00:00
Stanislav Shwartsman
5e6955c5e7 Major rewrite of memory access methods to avoid massive code duplication and enable inlining of memory access methods 2015-01-25 20:55:10 +00:00
Stanislav Shwartsman
271f06026d fixed compilation err with SVM without VMX 2015-01-16 06:15:47 +00:00
Stanislav Shwartsman
63c3ed3f70 update (c) and fix instrumentation stub 2015-01-11 20:50:26 +00:00
Stanislav Shwartsman
3b237df41d Added far branch origin to bx_instr_far_branch instrumentation callback by user request
Updated instrumentation examples
Fixed code duplication
2015-01-11 20:45:39 +00:00
Stanislav Shwartsman
6fd2d32180 fixed exception error code for debugger and instrumentation 2014-12-18 19:45:03 +00:00
Volker Ruppert
2ec57b8a6b Fixed some more C++11 warnings. 2014-12-18 17:52:40 +00:00
Stanislav Shwartsman
fea4d47830 fixed spelling in comments 2014-12-16 20:11:08 +00:00
Stanislav Shwartsman
6700a3f5e6 fix cpuid patch merged 2014-12-16 06:52:24 +00:00
Stanislav Shwartsman
03dab0b0c9 remove debug prints from param tree dump in xml format, small code reorg 2014-11-30 21:26:33 +00:00
Stanislav Shwartsman
f01891faa2 fixed compilation err with perfmon disabled 2014-11-07 13:15:54 +00:00
Stanislav Shwartsman
9219c2c20b fixed format for debug printing x87 numbers 2014-11-05 18:29:35 +00:00
Stanislav Shwartsman
6e254743c1 Added missing sanity check.
The sanity check would help to detect real Bochs crash issue under Win x64 with MSDEV
configure script under Mingw env decided that SIZEOF_INT_P == 4 which is terribly wrong for 64-bit host.
2014-11-04 19:00:20 +00:00
Stanislav Shwartsman
9feed6d777 fixed bug in write_new_stack_qword 2014-11-03 14:34:20 +00:00
Volker Ruppert
b7c8323633 Fixed panic in case x86-64 support is not present (Bochs 2.6.7 P4-SMP release
binaries are already fixed).
Usual updates after release (version strings, release tag).
2014-11-02 14:14:36 +00:00
Stanislav Shwartsman
987e2ad223 Added definitions from recently published Intel Architecture
Instruction Set Extensions Programming Reference rev22.
Implemented CLWB instruction
2014-11-01 13:12:24 +00:00
Stanislav Shwartsman
45ddcf2e02 compilation fix 2014-11-01 11:51:03 +00:00
Stanislav Shwartsman
5f4e7f8b49 fixed compilation when APIC if snot enabled 2014-11-01 10:25:42 +00:00
Stanislav Shwartsman
618bc234ab changes in comments 2014-10-24 11:18:52 +00:00
Stanislav Shwartsman
f11b9a7f58 CPUID: "Yonah" and "Atom N-270" should report max virtual address as 32-bit in leaf 0x80000008 2014-10-22 19:53:23 +00:00
Stanislav Shwartsman
cb18f1e0a1 more use of the clearflagsOSZAPC 2014-10-22 18:24:33 +00:00
Stanislav Shwartsman
1c027b17d7 some lazy flags handling optimizations 2014-10-22 17:49:12 +00:00
Stanislav Shwartsman
25ad64f75a rename one more mem access handler 2014-10-21 19:11:21 +00:00
Stanislav Shwartsman
1de7a35031 update (c) 2014-10-20 21:10:52 +00:00
Stanislav Shwartsman
ea91354b3b code reorg : take laddr calculation out of 64-bit memory handlers. this creates generic linear address memory handlers which now could be used elsewhere 2014-10-20 21:08:29 +00:00
Stanislav Shwartsman
2c4b17ebff fixed compilation err without x86-64 compiled in 2014-10-16 06:29:58 +00:00
Stanislav Shwartsman
54a009ccf9 update CHANGES. added BX_INFO prints related to Perfmon usage 2014-10-15 19:04:28 +00:00
Stanislav Shwartsman
6252632e31 Fixed segmentation fault that could happen under rare conditions with handlers chaining speedups enabled.
I saw that issue under gcc 4.9.0. for some reason gcc 4.9.0 didn't optimize next handler call in all fpu opcode handlers.
As result, instead of finishing the handler and jumping to next one, the next handler is called blowing up stack.
After some long period stack overflow might occur.

The fix simply limit the max chaining depth to 1000 traces (should be enough)
The same fix should be able to address the stack overflow problem when compiling with -O0 and handlers chaining speedup enabled.
2014-10-15 18:00:04 +00:00
Stanislav Shwartsman
d82e51f947 added comment to RDPMC instr 2014-10-15 15:28:13 +00:00
Stanislav Shwartsman
841117c721 added more perfmon MSR defines into cpu.h 2014-10-15 15:21:38 +00:00
Stanislav Shwartsman
caab07e580 move common code (extended topology leaf) into base cpuid class to save code duplication 2014-10-15 14:25:08 +00:00
Stanislav Shwartsman
f8267ec3a7 rework in CPUID code (fixed code duplication). Re-enable perfmon reporting in CPUID because Win8/Win10 installation doesn't want to start without perfmon reported. TODO: implement basic perfmon support (at least only fixed counters) because win7-64 doesn't install with perfmon reported but not implemented 2014-10-15 08:04:38 +00:00
Stanislav Shwartsman
8d1e3b2ac1 Added statistics collection infrastructure in Bochs and
implemented important CPU statistics which were used for Bochs CPU model performance analysis.
old statistics code from paging.cc and cpu.cc is replaced with new infrastructure.

In order to enale statitics collection in Bochs CPU:

- Enable statistics @ compilation time in cpu/cpustats.h
- Dump statistics periodically by adding -dumpstats N into Bochs command line
2014-10-14 15:59:10 +00:00
Stanislav Shwartsman
1ef6c3139c removed duplication in XCHG instruction handlers 2014-10-12 19:31:14 +00:00
Stanislav Shwartsman
24cb334304 fixed large code duplication in write_new_stack methods 2014-10-12 18:59:10 +00:00
Stanislav Shwartsman
3db00a7e52 fixed CMPXHG16B implementation 2014-10-02 18:53:41 +00:00
Stanislav Shwartsman
4ab9f62a20 bugfix: register supported cpu extensions for trinity cpu model 2014-09-26 19:24:11 +00:00