Commit Graph

137 Commits

Author SHA1 Message Date
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
65ffcf5dc8 avoid using access_write_linear when not strickly needed 2014-07-19 20:01:44 +00:00
Stanislav Shwartsman
816f5cc2d7 fixed massive code duplication 2014-07-03 06:40:42 +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
7cdeecf198 VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE get corrupted after saving/restoring unusable selector 2011-12-19 16:06:53 +00:00
Stanislav Shwartsman
7d80a6ebe0 Adding Id and Rev property to all files 2011-02-24 21:54:04 +00:00
Stanislav Shwartsman
0478b326c3 remove ome ifdefs 2010-05-02 15:11:39 +00:00
Stanislav Shwartsman
30fecf9792 changes in comments only 2010-04-22 17:51:37 +00:00
Stanislav Shwartsman
cffe32dd2c remove unused param from exception() call 2010-03-14 15:51:27 +00:00
Stanislav Shwartsman
7d7f18b585 cleanup 2010-01-19 14:43:47 +00:00
Stanislav Shwartsman
e59ff3d779 cleanup 2009-12-28 09:26:22 +00:00
Stanislav Shwartsman
6f8f69e5bb set/get_ar_byte not need to be CPU members 2009-12-27 16:53:35 +00:00
Stanislav Shwartsman
d779842da3 added ability to modify sregs from bochs debugger 2009-12-27 16:38:09 +00:00
Stanislav Shwartsman
bd60e0264c change Copyright to Bochs Project 2009-12-04 16:53:12 +00:00
Stanislav Shwartsman
2defc78bac cleanups 2009-11-29 21:01:26 +00:00
Stanislav Shwartsman
5909ef1494 loading of null segment with RPL != 0 2009-10-12 20:50:14 +00:00
Stanislav Shwartsman
d9f701ddb0 LSL/LAR fixed in 64-bit mode 2009-10-02 16:09:08 +00:00
Stanislav Shwartsman
5ccec842cf bugfix` 2009-09-19 06:42:31 +00:00
Stanislav Shwartsman
6d46f5c670 unreal mode fix 2009-08-30 05:03:04 +00:00
Stanislav Shwartsman
a3c8c25d45 remove incorrect asserts 2009-08-05 14:47:33 +00:00
Stanislav Shwartsman
461d5a0ef2 more 'accessed' bit fix 2009-07-28 14:55:27 +00:00
Stanislav Shwartsman
82ba563bb4 typo fix 2009-07-27 13:28:25 +00:00
Stanislav Shwartsman
66c4654418 segment desriptor 'A' bit handling fixes 2009-07-27 05:52:28 +00:00
Stanislav Shwartsman
9e092a86c3 merge "system" and "segment" blocks of descriptor 2009-04-05 19:09:44 +00:00
Stanislav Shwartsman
248af1b0c3 typo fix 2009-04-05 18:22:03 +00:00
Stanislav Shwartsman
c9383813f0 don't have to keep both limit and limit_scale 2009-04-05 18:16:29 +00:00
Stanislav Shwartsman
c9d63a4e53 redo x86 hw i/o breakpoint stuff 2009-03-28 08:27:01 +00:00
Stanislav Shwartsman
a0b1fda178 bugfixes 2009-03-27 16:42:21 +00:00
Stanislav Shwartsman
07f811013c bugfixes 2009-03-10 20:01:56 +00:00
Stanislav Shwartsman
cd367becd7 remove duplicate function 2009-01-17 18:56:25 +00:00
Stanislav Shwartsman
9929e6ed78 - updated FSF address 2009-01-16 18:18:59 +00:00
Stanislav Shwartsman
e540ee75ca cleared external debugger configure stuff from configure script and makefile 2009-01-15 21:52:52 +00:00
Stanislav Shwartsman
d4611072f4 Some small updates 2009-01-13 19:00:30 +00:00
Stanislav Shwartsman
35487c3ebd get/set_segment_ar_data prepared for future reuse in other than SMM mode 2008-12-06 18:52:02 +00:00
Stanislav Shwartsman
15fa42963f get/set_segment_ar_data prepared for future reuse in other than SMM mode 2008-12-06 18:01:00 +00:00
Stanislav Shwartsman
2b2fd6e810 Fixed SMM valid bit save/restore for sregs 2008-09-11 21:54:57 +00:00
Stanislav Shwartsman
7145d240f4 Optimize system read using Guest2Host TLB 2008-09-06 17:44:02 +00:00
Stanislav Shwartsman
56504e4a67 Add some missed eflags accessors and pay more attention for special ones 2008-08-16 21:06:56 +00:00
Stanislav Shwartsman
edae99eb48 Revert back last commmit 2008-08-15 17:39:22 +00:00
Stanislav Shwartsman
65f3344496 Bugfix for big real mode 2008-08-15 14:31:31 +00:00
Stanislav Shwartsman
6398ebb1d4 First step of access bits cleanup and optimization - no perf gain yet 2008-08-03 19:53:09 +00:00
Stanislav Shwartsman
d295371450 - Correctly handle segment a byte in BIG real mode 2008-05-26 21:46:39 +00:00
Stanislav Shwartsman
77fbc2c187 Fixed LAR/LSL in 64-bit mode, compilation error fixes 2008-05-25 15:53:29 +00:00
Stanislav Shwartsman
c3f96973ba Added debug prints 2008-05-12 19:19:03 +00:00
Stanislav Shwartsman
5da460b6dc Clear segment descriptor cache when loading null selector 2008-05-06 19:45:17 +00:00
Stanislav Shwartsman
64a80c8a2d - Added canonical check for SYSENTER MSRs in WRMSR
- Fixed LLDT and LTR instructions in 64-bit mode
- Fixed error code for not 64-bit CS in interrupt from long mode
2008-05-04 21:25:16 +00:00
Stanislav Shwartsman
e86102eea5 Fixed 2nd dword of 64-bit descriptor check 2008-04-26 19:41:28 +00:00
Stanislav Shwartsman
bbe7db9e88 Fixed bug with pushing into new stack in exception function
Fixed bug with Expand down segment limits (can be critical)
2008-04-25 21:21:46 +00:00
Stanislav Shwartsman
8e08402eb2 Fixed loading of SS null selector in long mode afer exception 2008-04-24 20:52:27 +00:00