Commit Graph

2653 Commits

Author SHA1 Message Date
Stanislav Shwartsman
f12396566c added CR8 to control registers print in debugger 2012-06-28 18:27:26 +00:00
Stanislav Shwartsman
3415f7bb0f add XD bit to page attributes print 2012-06-28 10:59:30 +00:00
Stanislav Shwartsman
79628a2f4f fixed VME corner case 2012-06-27 15:09:10 +00:00
Stanislav Shwartsman
4c38969ef0 fixed uninitialized variables 2012-06-24 17:52:45 +00:00
Stanislav Shwartsman
48ae41a2fd fixed MASKMOVDQU SSE instruction to match hardware 2012-06-23 16:25:52 +00:00
Stanislav Shwartsman
515d8b5c25 add new instrumentation callbacks for physical memory access from CPU 2012-06-18 11:41:26 +00:00
Stanislav Shwartsman
720a9b2fb7 fixed 64-bit segment print from internal debugger 2012-06-14 18:56:47 +00:00
Stanislav Shwartsman
171d400bd8 GATHER: update gather mask handling to match latest Intel SDM definition
Fixes in x86 HW breakpoint handling
2012-06-06 14:01:45 +00:00
Stanislav Shwartsman
6782efde05 correctly initialize lazy flags on reset 2012-06-05 20:53:22 +00:00
Stanislav Shwartsman
832d3a09a3 compile fix for SMP disable 2012-06-05 11:42:07 +00:00
Stanislav Shwartsman
a604818ecf fixed another valgrind issue 2012-06-05 11:40:59 +00:00
Stanislav Shwartsman
efcca3e9d4 fixup VCVTPH2PS instruction implementation to match published Intel SDM 2012-06-05 11:36:50 +00:00
Stanislav Shwartsman
37e193d49c clean one more valgrind issue 2012-06-04 19:21:23 +00:00
Stanislav Shwartsman
5192d09655 fixed some more valgrind issues 2012-06-04 18:46:07 +00:00
Stanislav Shwartsman
7bae496840 fixed valgrind issues in apic initialization and generic cpuid reported in SF bug report 2012-06-04 14:27:34 +00:00
Stanislav Shwartsman
bd6330d480 small optimization for debugger 2012-06-03 18:46:20 +00:00
Stanislav Shwartsman
2ee3386c37 cpu bugfixes 2012-05-31 14:25:49 +00:00
Stanislav Shwartsman
f528290652 fixed bug EPT Access Dirty support 2012-05-27 19:17:13 +00:00
Stanislav Shwartsman
8e7f582bc3 correct init.cc fix - copy/paste issue 2012-05-20 19:02:29 +00:00
Stanislav Shwartsman
3f32517201 small fix for save/restore 2012-05-20 18:58:57 +00:00
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
2644ef5f63 another had_vex/had_xop fix 2012-05-19 19:46:10 +00:00
Stanislav Shwartsman
59eb1318d5 small fix 2012-05-19 19:38:57 +00:00
Stanislav Shwartsman
ffc5e4bf2d optimize x2apic reg write 2012-05-12 19:07:18 +00:00
Stanislav Shwartsman
08d4655886 X2APIC: incorrect write to self IPI X2APIC register (with reserved bits set) should not trigger the self IPI 2012-05-12 12:49:05 +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
9ea0987396 fixed send_ipi case in x2apic 2012-05-12 08:07:30 +00:00
Stanislav Shwartsman
6180a0a733 remove unused leafs from generic_cpuid 2012-05-11 06:51:04 +00:00
Stanislav Shwartsman
b5c5082ff2 Completely remove b1() field from bxInstruction structure and resuse it for AVX instructions flags.
the iaOpcode field has no masking anymore.

fixed bug during the code reorganization:
                        
+ XOP: Fixed instructions with operands order depending on VEX.W (fixed VEX.W read from instruction object)
2012-05-11 06:35:16 +00:00
Volker Ruppert
53e1a5d204 - fixed typo (file names are case sensitive on Linux and others) 2012-05-08 18:33:26 +00:00
Stanislav Shwartsman
f01e5f3e11 removed b1() from shift methods in CPU - lead to removal of b1() field from bxInstruction_c 2012-05-08 16:42:15 +00:00
Stanislav Shwartsman
708fc666c8 Added Corei7 ivyBridge configuration to CPUDB 2012-05-07 12:31:22 +00:00
Stanislav Shwartsman
9d802e2762 very small cleanup 2012-05-05 18:40:37 +00:00
Stanislav Shwartsman
2188322ab3 fixed CR8 SVM intercepts 2012-05-03 16:12:58 +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
e12494bf7b fixed segfault when setting ESP/EIP in GUI debugger 2012-04-16 19:18:23 +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
59e13d5299 fixed compilation error with 386/486 and internal dbger enabled 2012-04-11 18:11:14 +00:00
Stanislav Shwartsman
a68ad9a7f6 small code optimization 2012-04-06 09:41:58 +00:00
Stanislav Shwartsman
a6f0ca70ff more robust SVM fix 2012-04-04 19:55:36 +00:00
Stanislav Shwartsman
72a00ce9dd improved debug prints in MOV to/from CR
SVM bugfix
remove redundant TLB flush call from SVM and VMX code
2012-04-04 19:31:02 +00:00
Stanislav Shwartsman
279c61dc67 updated + fixed instrumentation example for instr histogram, code cleanup in the cpu 2012-03-28 21:11:19 +00:00
Stanislav Shwartsman
90fc12d9e4 switching between compatibility and long64 mode also affect SS.BASE which is always zero in long64 mode 2012-03-27 15:21:40 +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
8b78f6ca2c fixed prev commit 2012-03-26 19:24:20 +00:00
Stanislav Shwartsman
97a6d0ad46 missed ; 2012-03-26 19:08:28 +00:00
Stanislav Shwartsman
547678e8bd fixed compilation error in 386 config. also fixed bugs in tasking code found by new assertion added in stack.cc new code 2012-03-26 19:05:58 +00:00
Stanislav Shwartsman
bfca96f8ce added TLB contents to param tree for debugger purposes. Nopw the TLB could be browsed through param-tree in debugger and GUI debugger as well 2012-03-25 20:56:18 +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