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