Commit Graph

2312 Commits

Author SHA1 Message Date
Stanislav Shwartsman
cd6314b65c Added ability to configure CPUID stepping through .bochsrc.
Next is CPUID model/extended model.
2010-07-16 21:03:52 +00:00
Stanislav Shwartsman
59ad9d8de8 Fixes 2010-07-15 20:18:03 +00:00
Stanislav Shwartsman
41ddb26c6f Fixed save/restore of x87 regs 2010-07-01 20:00:33 +00:00
Stanislav Shwartsman
4cf15cd18b Fixed RDTSCP VMEXIT reason 2010-07-01 16:31:46 +00:00
Stanislav Shwartsman
d47c84320a swap bits in instr 2010-06-29 19:38:56 +00:00
Stanislav Shwartsman
8e94474e03 bug fix 2010-06-21 05:35:45 +00:00
Stanislav Shwartsman
8099effaf5 typo 2010-06-18 14:24:45 +00:00
Stanislav Shwartsman
9ec1d79b8c warning fix 2010-06-18 14:15:53 +00:00
Stanislav Shwartsman
eaa2e0e0ea [PATCH] cpu/init.cc: proper CPL restore in after_restore_statE 2010-06-04 20:31:04 +00:00
Stanislav Shwartsman
23a28d2892 Fixed compilation with vs2008 2010-06-03 19:36:13 +00:00
Stanislav Shwartsman
f3980b522f bugfux 2010-06-02 05:44:12 +00:00
Stanislav Shwartsman
67aec1dc22 warning fix 2010-05-26 18:37:54 +00:00
Stanislav Shwartsman
84880793f3 optimize for speed 2010-05-26 18:34:25 +00:00
Stanislav Shwartsman
95df639614 compilation fix 2010-05-25 18:52:01 +00:00
Stanislav Shwartsman
8d8d1590f5 fetchdecide rework for AVX (0xF3 SSE prefix encoded as 2 in VEX) 2010-05-23 19:17:41 +00:00
Stanislav Shwartsman
b2dffd9258 undo incorrect change for ia32_feature_control msr init 2010-05-23 05:32:00 +00:00
Stanislav Shwartsman
c21a8fd935 sse4.2 string instruction do not required aligned mem access 2010-05-22 19:55:12 +00:00
Stanislav Shwartsman
1c00193616 cleanup 2010-05-22 10:43:39 +00:00
Stanislav Shwartsman
b6c26d394c enable VMX lock bit - required for VMXON 2010-05-22 10:21:31 +00:00
Stanislav Shwartsman
d8b1d60239 when in HLT run time faster for single cpu 2010-05-22 10:17:58 +00:00
Stanislav Shwartsman
fff0a79aea a little simpler fetchdecode 2010-05-21 21:17:32 +00:00
Stanislav Shwartsman
3dfcfd0ccd Split shift opcodes | optimize SAR opcode 2010-05-18 07:28:05 +00:00
Stanislav Shwartsman
32ff6e4879 MSR BX_DEBUG prints 2010-05-16 13:56:22 +00:00
Stanislav Shwartsman
05bbbb1a2c compilation fix 2010-05-16 05:23:18 +00:00
Volker Ruppert
cdb7e0eb96 - fixed usage of variable 'apic_id_mask' for compatibility with win32 plugin target 2010-05-15 09:23:50 +00:00
Stanislav Shwartsman
9c69b15ecb fetchdecode tables reorg phase1 2010-05-13 05:38:24 +00:00
Stanislav Shwartsman
74b87d2b68 fixes for CPUID and alloweds bits in CRs 2010-05-12 21:33:04 +00:00
Stanislav Shwartsman
f95ddc4029 Debug Extensions was introduced in Pentium 2010-05-12 18:48:51 +00:00
Stanislav Shwartsman
d849cdf128 - Determine and select max physical address size automatically at
configure time:
    - 32-bit physical address for 386/486 guests
    - 36-bit physical address for PSE-36 enabled Pentium guest
    - 40-bit physical address for PAE enabled P6 or later guests
2010-05-12 14:55:12 +00:00
Stanislav Shwartsman
49934bc853 cache page split instructions
next step - cache page split traces
2010-05-08 08:30:04 +00:00
Stanislav Shwartsman
b0d5142e18 comp fixes 2010-05-06 21:46:39 +00:00
Stanislav Shwartsman
1c47847e23 Show more fields for verbose debugger 'page'command 2010-05-05 20:10:15 +00:00
Stanislav Shwartsman
9a43a89a61 verbose page command from the debugger 2010-05-04 20:16:38 +00:00
Stanislav Shwartsman
aa76181208 Fixed debug translation 2010-05-04 19:02:51 +00:00
Stanislav Shwartsman
41e9663b89 optimization 2010-05-02 17:01:15 +00:00
Stanislav Shwartsman
4e6d7835c6 #GP/#SS priority 2010-05-02 17:00:05 +00:00
Stanislav Shwartsman
0478b326c3 remove ome ifdefs 2010-05-02 15:11:39 +00:00
Stanislav Shwartsman
acc82363cd undefined CR fault higher prio than CPL GP 2010-05-02 15:10:27 +00:00
Stanislav Shwartsman
48a461116f PUSH segment register fix to be like real CPU 2010-04-30 09:12:52 +00:00
Stanislav Shwartsman
1f0d4f9663 compilation fix 2010-04-29 21:04:23 +00:00
Stanislav Shwartsman
f5a2ca3b48 optimize for x86-64 OFF 2010-04-29 20:03:03 +00:00
Stanislav Shwartsman
50f3547dbe optimize for x86-64 OFF 2010-04-29 19:56:10 +00:00
Stanislav Shwartsman
ca95477b7f Implement x86-64 PCID extension 2010-04-29 19:34:32 +00:00
Stanislav Shwartsman
1c2fa8cd0c move 1G_pages support to runtime option 2010-04-24 09:36:04 +00:00
Stanislav Shwartsman
ea95341e05 compile fix 2010-04-22 18:48:39 +00:00
Stanislav Shwartsman
30fecf9792 changes in comments only 2010-04-22 17:51:37 +00:00
Stanislav Shwartsman
3c6a8375fd small optimization 2010-04-22 17:41:05 +00:00
Stanislav Shwartsman
c9f0779199 cleanup 2010-04-20 06:14:55 +00:00
Stanislav Shwartsman
b9be4fcd3e fix 2010-04-19 11:09:35 +00:00
Stanislav Shwartsman
7319d2eee1 FENCE instructions are SSE2 only 2010-04-18 09:21:24 +00:00
Stanislav Shwartsman
cb281a1440 typo fix 2010-04-16 20:09:23 +00:00
Stanislav Shwartsman
43bc0f1f2b optimize some of x87 tables 2010-04-16 19:52:44 +00:00
Stanislav Shwartsman
59eb1200c2 fixed IMUL eflags 2010-04-15 19:50:57 +00:00
Stanislav Shwartsman
749d6c33d2 relocate lazy_flags code from cpu.h 2010-04-15 05:51:00 +00:00
Stanislav Shwartsman
9746e16657 SSE unmasked exceptions report fix 2010-04-14 20:20:17 +00:00
Stanislav Shwartsman
89c87e2743 fixes 2010-04-14 17:33:19 +00:00
Stanislav Shwartsman
77f8857ddb Fixed dbg_linear2phy function for legacy PAE 2010-04-14 15:41:57 +00:00
Stanislav Shwartsman
df07dab80f verbose phy mem access tracing 2010-04-13 17:56:50 +00:00
Stanislav Shwartsman
afcbca5bba bugfix 2010-04-11 05:28:19 +00:00
Stanislav Shwartsman
b85791686b fixed mtrr_deftype reset value 2010-04-10 07:32:48 +00:00
Stanislav Shwartsman
6dbafd6f60 bugfix 2010-04-09 15:19:14 +00:00
Stanislav Shwartsman
51b6180b28 don't use magic constant 2010-04-09 11:34:52 +00:00
Stanislav Shwartsman
955e237e46 unrestricted guests support (VMXx2) 2010-04-09 11:31:55 +00:00
Stanislav Shwartsman
04349e1041 compilation fix for CPU < 6 2010-04-09 07:15:54 +00:00
Stanislav Shwartsman
dd6cc5ce42 update todo 2010-04-08 20:08:05 +00:00
Stanislav Shwartsman
689ecc57dd split 2 more SSE opcodes 2010-04-08 17:35:32 +00:00
Stanislav Shwartsman
546d974248 If CR0.PE = 0, the following instructions cause invalid-opcode exceptions and
do not cause VM exits: INVEPT, INVVPID, LLDT, LTR, SLDT, STR, VMCLEAR,
VMLAUNCH, VMPTRLD, VMPTRST, VMREAD, VMRESUME, VMWRITE, VMXOFF,
and VMXON.
2010-04-08 17:00:55 +00:00
Stanislav Shwartsman
50462dde9a RDTSCP could be run outside long64 2010-04-08 16:38:41 +00:00
Stanislav Shwartsman
6e1204cb84 Merged X2APIC + X2APIC virtualization 2010-04-08 15:50:39 +00:00
Stanislav Shwartsman
df7db31fb4 EPT + VPID - VMXx2 support 2010-04-07 17:12:17 +00:00
Stanislav Shwartsman
fa57efb9a8 fix PANIC on 386 2010-04-07 16:02:52 +00:00
Stanislav Shwartsman
62b5c27e1b compilation fixes 2010-04-07 14:49:18 +00:00
Stanislav Shwartsman
c94e72d4d3 make lpf_mask smaller 2010-04-07 14:38:53 +00:00
Stanislav Shwartsman
10505dca81 PDPTR checks fix 2010-04-06 19:26:03 +00:00
Stanislav Shwartsman
bd8789646a cleanup 2010-04-05 09:49:26 +00:00
Stanislav Shwartsman
7b23a893ac P5 has 4 LVT entries 2010-04-05 09:36:17 +00:00
Stanislav Shwartsman
b4cd188f07 Update (c) 2010-04-04 19:56:55 +00:00
Stanislav Shwartsman
c98cc9ec86 very old typo fix 2010-04-04 19:48:18 +00:00
Stanislav Shwartsman
aea9f50b4a implemented Descriptor Table exiting control 2010-04-04 19:23:47 +00:00
Stanislav Shwartsman
9cece96d14 fixes 2010-04-04 18:46:03 +00:00
Stanislav Shwartsman
eec8c8e3d2 dbg function fix 2010-04-04 09:05:21 +00:00
Stanislav Shwartsman
21de4f8b8b remove cr3_masked 2010-04-04 09:04:12 +00:00
Stanislav Shwartsman
58bbf0d0b1 compilation fix for 386 2010-04-03 19:21:07 +00:00
Stanislav Shwartsman
25d3d950b2 vmx fix 2010-04-03 19:18:38 +00:00
Stanislav Shwartsman
eab8826173 restore back some code - optimization conflicting with EPT implementation 2010-04-03 18:00:30 +00:00
Stanislav Shwartsman
a445b5c4f3 optimization + fix 2010-04-03 16:52:33 +00:00
Stanislav Shwartsman
3f4cf46c2d fixed crash in single cpu mode due to early construction of APIC 2010-04-03 10:14:42 +00:00
Stanislav Shwartsman
7c42447c77 move secondary VMEXEC controls to -enable-vmx=2 option
EPT coming next
2010-04-03 07:30:23 +00:00
Stanislav Shwartsman
d39d485ece changes variable name to better one 2010-04-03 05:59:07 +00:00
Stanislav Shwartsman
93220f6b6e fixes 2010-04-02 21:22:17 +00:00
Stanislav Shwartsman
9d3eee21fc LAR fix in long mode 2010-04-02 19:53:29 +00:00
Stanislav Shwartsman
01de3e1926 PEXTRB/W/D/EXTRACTPS fixed 2010-04-02 19:03:47 +00:00
Stanislav Shwartsman
caa30e3462 bugfix 2010-04-02 18:24:27 +00:00
Stanislav Shwartsman
87ad43d25a handle DMA when halted as well 2010-04-02 17:15:14 +00:00
Stanislav Shwartsman
8260358afe removed redundant check 2010-04-02 16:56:59 +00:00
Stanislav Shwartsman
7080435433 VMX compilation fix 2010-04-02 08:03:04 +00:00
Stanislav Shwartsman
929ea0e071 update VMX msrs + bugfix in VMENTRY capabilities MSR 2010-04-01 21:32:25 +00:00
Stanislav Shwartsman
b049646621 compilation fix for x86_64 disable 2010-04-01 20:53:55 +00:00
Stanislav Shwartsman
a625abaaf0 small fixes 2010-04-01 20:08:57 +00:00
Stanislav Shwartsman
585cc3492b paging similication 2010-04-01 20:06:09 +00:00
Stanislav Shwartsman
5c23538d94 redundant ifdef 2010-04-01 12:32:11 +00:00
Stanislav Shwartsman
9224bf60aa paging phase 3 2010-04-01 12:23:52 +00:00
Stanislav Shwartsman
6f7b68e1ca paging redo - step2 2010-04-01 11:53:22 +00:00
Stanislav Shwartsman
3a2fbd0aae VMREAD for APIC virtualization 2010-04-01 11:43:45 +00:00
Stanislav Shwartsman
1b24ebe9bb paging anti-code-duplication, phase1 2010-04-01 05:26:20 +00:00
Stanislav Shwartsman
24bd0399d2 fixed dbg paging lookup 2010-03-31 14:17:51 +00:00
Stanislav Shwartsman
62d316e5cf fix 2010-03-31 14:03:07 +00:00
Stanislav Shwartsman
6d01eb5c1f announce (not implement yet) PCID 2010-03-31 14:00:46 +00:00
Stanislav Shwartsman
4560eaab97 fxsave enable 2010-03-30 18:16:48 +00:00
Stanislav Shwartsman
2efb11f2bc fixes 2010-03-30 18:12:19 +00:00
Stanislav Shwartsman
2614b3ca2f continue NX fix 2010-03-30 16:56:41 +00:00
Stanislav Shwartsman
845af0dc24 decode fix 2010-03-30 16:39:57 +00:00
Stanislav Shwartsman
26688136a7 bugfix 2010-03-30 15:01:09 +00:00
Stanislav Shwartsman
fcab6f13e6 improved debug print 2010-03-29 08:29:14 +00:00
Stanislav Shwartsman
33262356ec small optimization 2010-03-27 16:30:01 +00:00
Stanislav Shwartsman
6280a9560f bugfixes for luvalley boot 2010-03-27 11:14:19 +00:00
Stanislav Shwartsman
2f01469007 fix 2010-03-27 10:42:43 +00:00
Stanislav Shwartsman
6ac1bdcbdf apic_dest_t as datatype 2010-03-27 09:56:30 +00:00
Stanislav Shwartsman
e7933d9dc2 enable EFER_MSR VMX controls 2010-03-27 09:27:40 +00:00
Stanislav Shwartsman
dc732f21bc MSR_PAT VMX support 2010-03-26 21:26:08 +00:00
Stanislav Shwartsman
23927343d5 convert apic id to 32-bit -> pilot before x2apic merge
no functional change supposed to be seen yet
2010-03-26 13:00:14 +00:00
Stanislav Shwartsman
01d88bc155 minimize diff with x2apic patch 2010-03-26 11:17:02 +00:00
Stanislav Shwartsman
a220edc5bb compile fixes 2010-03-26 11:09:12 +00:00
Stanislav Shwartsman
64e9ff6aff add PDPTRS into param tree 2010-03-25 22:04:31 +00:00
Stanislav Shwartsman
c3afd368ef checkPDPTR in task switch 2010-03-25 21:57:26 +00:00
Stanislav Shwartsman
f675bb852c setCR3 change 2010-03-25 21:39:34 +00:00
Stanislav Shwartsman
2279b770e2 setCR3 change 2010-03-25 21:38:33 +00:00
Stanislav Shwartsman
f5ce2a7639 split crreg access functions to separate file 2010-03-25 21:33:07 +00:00
Stanislav Shwartsman
35f47968d9 fix 2010-03-24 21:26:13 +00:00
Stanislav Shwartsman
4400edc746 fix for 2795115 NX fault could be missed 2010-03-23 19:58:20 +00:00
Stanislav Shwartsman
d9574caafe Return max standard not max extended leaf.
- Sebastian
2010-03-21 20:52:36 +00:00
Stanislav Shwartsman
674724122a bugfix 2010-03-21 20:03:17 +00:00
Stanislav Shwartsman
d8f65d66e0 IDIV64 fix 2010-03-21 06:53:14 +00:00
Stanislav Shwartsman
b47c493388 fixes 2010-03-20 13:58:02 +00:00
Stanislav Shwartsman
15cba8d09a fail on obviosly not-supported MSRs 2010-03-19 21:04:00 +00:00
Stanislav Shwartsman
da656bf93d optimization for paging disable mode + preparing for future 2010-03-19 17:00:05 +00:00
Stanislav Shwartsman
f53a54a5e2 fix 2010-03-19 15:07:04 +00:00
Stanislav Shwartsman
9147ac4b63 MOVMSKPD/PS fix 2010-03-19 14:43:13 +00:00
Stanislav Shwartsman
11c4223519 fix 2010-03-19 11:38:21 +00:00
Stanislav Shwartsman
c4412bf357 movdq2q fix 2010-03-19 10:44:02 +00:00
Stanislav Shwartsman
e88e168081 bswap undefined behavior 2010-03-19 10:00:48 +00:00
Stanislav Shwartsman
af27d82b66 fixed IDIV result corruption 2010-03-18 22:19:10 +00:00
Stanislav Shwartsman
d0bd30e4b9 optimization 2010-03-18 15:19:16 +00:00
Stanislav Shwartsman
78badcbde4 cleanup 2010-03-17 21:55:19 +00:00
Stanislav Shwartsman
6b230414a4 mini optimization 2010-03-17 21:08:21 +00:00
Stanislav Shwartsman
855c19e396 Limit max CPUID for WinNt fix 2010-03-17 20:25:13 +00:00
Stanislav Shwartsman
6b3c785b68 more like real hardware behaves 2010-03-16 21:09:11 +00:00
Stanislav Shwartsman
bc96e7e411 PANIC fix 2010-03-16 15:11:03 +00:00
Stanislav Shwartsman
f4e2801e13 compile err fix 2010-03-16 14:55:58 +00:00
Stanislav Shwartsman
79466dffe2 apic virtualization + vmx fixes 2010-03-16 14:51:20 +00:00
Stanislav Shwartsman
b8dfe6d9b1 assert check 2010-03-15 22:58:41 +00:00
Stanislav Shwartsman
d0e118a1d0 register new fields 2010-03-15 16:34:03 +00:00
Stanislav Shwartsman
514a375cc5 fix 2010-03-15 15:49:55 +00:00
Stanislav Shwartsman
f0ac7c576e enable secondary proc-based ctrls 2010-03-15 15:48:01 +00:00
Stanislav Shwartsman
1c6cc35b06 fixed TPR shadow 2010-03-15 14:18:36 +00:00
Stanislav Shwartsman
77b4c671b2 optimization 2010-03-15 13:57:12 +00:00
Stanislav Shwartsman
6134283932 vmx update 2010-03-15 13:54:54 +00:00
Stanislav Shwartsman
3b3b920795 vmx updates 2010-03-15 13:47:18 +00:00
Stanislav Shwartsman
3c1b8a63d7 VMX bugfix 2010-03-15 13:22:14 +00:00
Stanislav Shwartsman
9f25df5568 compile fix 2010-03-14 20:14:30 +00:00
Stanislav Shwartsman
ced1e41a9f code reorg 2010-03-14 16:02:42 +00:00
Stanislav Shwartsman
cffe32dd2c remove unused param from exception() call 2010-03-14 15:51:27 +00:00
Stanislav Shwartsman
36b0b3c682 compilation fixes 2010-03-13 21:06:56 +00:00
Stanislav Shwartsman
97b4155f31 VMX_MSR_MISC implemented 2010-03-12 21:20:42 +00:00
Stanislav Shwartsman
cc509ff454 fix 2010-03-12 20:59:05 +00:00
Stanislav Shwartsman
6dd9c7d5f5 ifdef 2010-03-12 20:30:12 +00:00
Stanislav Shwartsman
93be0a18e9 update Makefile.in 2010-03-12 11:38:12 +00:00
Stanislav Shwartsman
b6f8ccb91c missed include 2010-03-12 11:35:34 +00:00
Stanislav Shwartsman
380bf0f4d3 extra checkin to msr.cc 2010-03-12 11:30:04 +00:00
Stanislav Shwartsman
4ce211e358 MWAIT_IS_NOP option 2010-03-12 11:28:59 +00:00
Stanislav Shwartsman
173f4ed1f9 fixed perm check for MONITOR 2010-03-07 09:41:12 +00:00
Stanislav Shwartsman
ae005b5e32 fix 2010-03-07 09:22:20 +00:00
Stanislav Shwartsman
11de02bd89 MONITOR/MWAIT: rewritten MONITOR/MWAIT implementation from scratch 2010-03-07 09:16:24 +00:00
Stanislav Shwartsman
7357d1664e fix 2010-03-06 17:09:25 +00:00
Stanislav Shwartsman
a217b7b08e fix 2010-03-06 17:07:25 +00:00
Stanislav Shwartsman
5d2c2879a7 IA32_FEATURE_CONTROL_MSR is implemented 2010-03-06 16:59:05 +00:00
Stanislav Shwartsman
ef4731ef49 bugfix 2010-03-06 07:00:05 +00:00
Stanislav Shwartsman
e5dc6c51a8 one more sanity check 2010-03-05 20:43:56 +00:00
Stanislav Shwartsman
13a602d069 fix undefined CPUID options when CPU_LEVEL is too small 2010-03-05 20:42:10 +00:00
Stanislav Shwartsman
538dc0577e INT1 should set EXT bit 2010-03-05 20:24:08 +00:00
Stanislav Shwartsman
a16eb3c4bf typo fix 2010-03-05 19:52:18 +00:00
Stanislav Shwartsman
23b1f058e0 fixes 2010-03-05 19:49:22 +00:00
Stanislav Shwartsman
895c6729eb cpuid debug info 2010-03-05 15:49:44 +00:00
Stanislav Shwartsman
51618b181c winxp doesn't want to boot with CPUID[0].EAX < 3 2010-03-05 15:19:15 +00:00
Stanislav Shwartsman
803e586a01 bugfix 2010-03-05 14:26:23 +00:00
Stanislav Shwartsman
189553d702 bugfix 2010-03-05 08:54:07 +00:00
Stanislav Shwartsman
4b53af902f change VMEXIT messages back to ERROR 2010-03-03 15:12:44 +00:00
Stanislav Shwartsman
14b578938d bugfixes and cleanups 2010-03-03 14:33:35 +00:00
Stanislav Shwartsman
d36e6d78e7 typo fix 2010-03-02 06:49:41 +00:00
Stanislav Shwartsman
01cfbdccbc Move MMX to be runtime option 2010-03-01 18:53:53 +00:00
Stanislav Shwartsman
160d4bbded Fixed typo 2010-03-01 17:35:49 +00:00
Stanislav Shwartsman
e3a13a7a55 Make XAPIC runtime option as well 2010-02-28 14:52:17 +00:00
Stanislav Shwartsman
fd0f428263 optimization 2010-02-26 23:09:30 +00:00
Stanislav Shwartsman
5b6a14656d Make XSAVE as runtime option 2010-02-26 22:53:43 +00:00
Stanislav Shwartsman
5df864b1f1 Move param_names.h into bochs root folder 2010-02-26 14:18:19 +00:00
Stanislav Shwartsman
927c3594d6 enable compilation with CPU_LEVEL <= 6
converted SEP to runtime option as well
2010-02-26 11:44:50 +00:00
Stanislav Shwartsman
32e5f1ffc8 fixes 2010-02-25 22:44:46 +00:00
Stanislav Shwartsman
78a420faa1 first updates 2010-02-25 22:34:56 +00:00
Stanislav Shwartsman
033a20b3b2 allow to configure CPU features at runtime - implemened on example of SSE/AES/MOVBE/POPCNT 2010-02-25 22:04:31 +00:00
Stanislav Shwartsman
50eb55d0f2 introduce --enable-xapic configure option 2010-02-24 20:59:49 +00:00