Commit Graph

2186 Commits

Author SHA1 Message Date
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
Stanislav Shwartsman
70dc124b3a 1st step of moving CPU options to runtime 2010-02-24 19:27:51 +00:00
Stanislav Shwartsman
5a81abb795 code duplication fix 2010-02-21 18:23:50 +00:00
Stanislav Shwartsman
9268646239 cleanup and optimization 2010-02-21 06:56:48 +00:00
Stanislav Shwartsman
c201a53c76 cleanup and optimization 2010-02-15 14:04:48 +00:00
Stanislav Shwartsman
ef1dadcdd8 cleanup and optimization 2010-02-15 08:42:57 +00:00
Stanislav Shwartsman
bc7f9d4ced move boundaryFetch to another file 2010-02-13 10:35:51 +00:00
Stanislav Shwartsman
11b7f83a93 rename trace ilen to tlen 2010-02-13 09:41:51 +00:00
Stanislav Shwartsman
eb13ccdb10 extra vmexit info for ins/outs 2010-02-11 14:19:11 +00:00
Stanislav Shwartsman
c322f07be9 bugfix 2010-02-11 08:06:25 +00:00
Stanislav Shwartsman
5f89b554aa split few more opcodes 2010-02-10 17:21:15 +00:00
Stanislav Shwartsman
c841eaa953 fixes and cleanups in disasm and decoder 2010-02-09 19:44:25 +00:00
Stanislav Shwartsman
7f7b2cfcf0 cleanup 2010-02-08 15:22:53 +00:00
Stanislav Shwartsman
be646e042b cleanup 2010-02-08 14:54:26 +00:00
Stanislav Shwartsman
94a00978f7 Fixed bug in task_switch logic 2010-02-08 14:22:39 +00:00
Stanislav Shwartsman
a2a080894b split fetchdecode.h for better readability 2010-02-08 10:39:30 +00:00
Stanislav Shwartsman
9d934cb989 small updates 2010-02-06 20:52:27 +00:00
Stanislav Shwartsman
4217d76d26 fetchdecode code duplication cleanup 2010-02-06 17:14:07 +00:00
Stanislav Shwartsman
856e2491ba undo the change 2010-02-06 10:15:26 +00:00
Stanislav Shwartsman
4a70e73b9d compilation fix + code duplication fix 2010-02-06 09:59:52 +00:00
Stanislav Shwartsman
26c7abf988 decode tables opt 2010-02-01 07:59:22 +00:00
Stanislav Shwartsman
da93b6c3a6 undo wrong change 2010-01-31 19:39:46 +00:00
Stanislav Shwartsman
c3a73d3579 comment out CS.LIMIT demotion fix - it causes too big slowdown.
Need to think about better solution
+ small optimization
2010-01-31 18:06:45 +00:00
Stanislav Shwartsman
eae084920a optimized decode tables 2010-01-31 09:45:27 +00:00
Stanislav Shwartsman
dc02d836ce Fix POPCNT decode tables 2010-01-29 10:16:28 +00:00
Stanislav Shwartsman
33107b54fc - Fixed CPUID function 0x80000005 for Intel CPUs (should be reserved) 2010-01-24 20:21:47 +00:00
Stanislav Shwartsman
d8718ae92a allow instrumentation to change i->execute (1% total slowdown is the price)
patch from @SF
2010-01-24 12:48:42 +00:00
Stanislav Shwartsman
7d7f18b585 cleanup 2010-01-19 14:43:47 +00:00
Stanislav Shwartsman
cf6a4f5417 added ia_opcode into bxInstruction class 2010-01-09 15:11:32 +00:00
Stanislav Shwartsman
c82b66c847 CS change from debugger could change CPL or CPU mode 2009-12-28 10:56:23 +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
cccbac3bb7 bugfix 2009-12-23 07:26:14 +00:00
Stanislav Shwartsman
5579bdfc55 removed unused param 2009-12-22 12:11:09 +00:00
Stanislav Shwartsman
33ad9296ff bugfix 2009-12-22 11:58:26 +00:00
Stanislav Shwartsman
30c9eef6f9 small optimization 2009-12-21 13:38:06 +00:00
Stanislav Shwartsman
c403090327 ! Implemented PCLMULQDQ AES instruction 2009-12-20 09:00:40 +00:00
Stanislav Shwartsman
71457f464f Fixed trace cache CS.LIMIT demotion problem 2009-12-17 11:11:58 +00:00
Stanislav Shwartsman
8fbcfa6b39 Fixed SMC detection with trace cache disabled 2009-12-16 12:32:51 +00:00
Stanislav Shwartsman
edaf19f0a1 Split MOVQ_PqQq opcode 2009-12-14 11:55:42 +00:00
Stanislav Shwartsman
796d24ecb7 Fixed injection of hardware exception 2009-12-10 07:57:32 +00:00
Stanislav Shwartsman
57d14f071b style 2009-12-04 21:27:17 +00:00
Stanislav Shwartsman
bd60e0264c change Copyright to Bochs Project 2009-12-04 16:53:12 +00:00
Stanislav Shwartsman
604e7aa7ac typo fix 2009-11-29 21:05:59 +00:00
Stanislav Shwartsman
2defc78bac cleanups 2009-11-29 21:01:26 +00:00
Stanislav Shwartsman
553ca8af01 split more SSE ops 2009-11-25 20:49:47 +00:00
Stanislav Shwartsman
6819ab4eb7 split sse opcodes 2009-11-23 18:21:23 +00:00
Stanislav Shwartsman
eba83b886b Fixed sending of interrupt 0xFF via lapic 2009-11-21 10:09:35 +00:00
Stanislav Shwartsman
f57e382416 bugfix for Instruction SYSRET and SS(PL) 2009-11-21 09:57:10 +00:00
Stanislav Shwartsman
28d0cd7e60 remove incorrect warning msg 2009-11-20 19:20:19 +00:00
Stanislav Shwartsman
0a735942e2 restore real mode with CPL != 0 2009-11-20 14:18:43 +00:00
Stanislav Shwartsman
5bfbc9df5f RETF bug fuxed 2009-11-19 20:00:35 +00:00
Stanislav Shwartsman
5099cff0e5 save restore for new var 2009-11-13 16:01:37 +00:00
Stanislav Shwartsman
71bb10f98c move ignore-bad-msrs to runtime option in ,bochsrc 2009-11-13 15:55:46 +00:00
Stanislav Shwartsman
67e4f97e73 make maskmov fault order like in real HWQ 2009-11-13 09:55:22 +00:00
Stanislav Shwartsman
b3ad88f23d typofix 2009-11-08 21:03:59 +00:00
Stanislav Shwartsman
fbd9f291f7 small optimization 2009-11-06 18:19:01 +00:00
Stanislav Shwartsman
438dd080ce bugfix found by regression 2009-11-06 09:13:30 +00:00
Stanislav Shwartsman
6d9271634d bugfix + small optimization 2009-11-05 21:07:18 +00:00
Stanislav Shwartsman
6b3ecd7a87 lazy flags with less computs 2009-11-05 17:19:57 +00:00
Stanislav Shwartsman
896457e437 cleanup 2009-11-05 16:51:06 +00:00
Stanislav Shwartsman
22d2630e0d gcc more likes this construction 2009-11-05 16:06:57 +00:00
Stanislav Shwartsman
98ae54675c more MTRR res bits 2009-11-04 17:04:28 +00:00
Stanislav Shwartsman
868e716411 instrumentation fixes + new example 2009-11-04 15:48:28 +00:00
Stanislav Shwartsman
074d2e6a95 fixed merge problem from my prev commit 2009-11-04 06:46:04 +00:00
Stanislav Shwartsman
cff7d8a74d mtrr reserved bits checks 2009-11-03 12:34:36 +00:00
Stanislav Shwartsman
6d71bdb785 cleanups and optimizations 2009-11-02 15:00:47 +00:00
Stanislav Shwartsman
40821d996e bugfix 2009-10-31 20:16:21 +00:00
Stanislav Shwartsman
d16afb6d47 ia_opcodes instrumentation 2009-10-31 20:02:44 +00:00
Stanislav Shwartsman
3e3cfc610f cleanup 2009-10-31 19:16:09 +00:00
Stanislav Shwartsman
6f0db17b08 fixed #DB on rpeat instructions 2009-10-30 09:13:19 +00:00
Stanislav Shwartsman
98b51805d5 updates for Bochs debugger 2009-10-29 15:49:50 +00:00
Stanislav Shwartsman
234770395d Fixes for x87 restore by FXRSTOR/XRSTOR 2009-10-27 20:03:35 +00:00
Stanislav Shwartsman
5ab53ac4b0 cleanup + small optimization 2009-10-27 18:30:13 +00:00
Stanislav Shwartsman
54cdee30c1 fix dbg method as well 2009-10-26 22:05:00 +00:00
Stanislav Shwartsman
220c893c6d remove dbg print 2009-10-26 21:19:23 +00:00
Stanislav Shwartsman
40352dc310 fix 4M paging 2009-10-26 21:16:04 +00:00
Stanislav Shwartsman
ff5a2acc76 Fixed error code in long mode exception 2009-10-26 15:53:24 +00:00
Volker Ruppert
e14f643741 - fixed MTRR mask write bug and enabled check in msr.cc 2009-10-25 10:25:38 +00:00
Stanislav Shwartsman
e9967c6b83 fixed 4M paging 2009-10-24 21:00:43 +00:00
Stanislav Shwartsman
f7886e2a37 comment out 2009-10-24 17:33:39 +00:00
Stanislav Shwartsman
4dd73f2ebe fixed CF/OF flags 2009-10-24 17:23:19 +00:00
Stanislav Shwartsman
aac4e85884 optimization 2009-10-24 11:24:21 +00:00
Stanislav Shwartsman
78e4b3d616 split SSE move instructions 2009-10-24 11:17:51 +00:00
Stanislav Shwartsman
b80249dfcb added PANIC for unsupported VMX feature 2009-10-22 13:33:13 +00:00
Stanislav Shwartsman
1518579e34 fixed for code bp 2009-10-19 19:59:10 +00:00
Stanislav Shwartsman
0c08841e99 forgot to restore MXCSR in XRSTOR 2009-10-18 17:33:35 +00:00
Stanislav Shwartsman
127649453c fixed XSETBV 2009-10-18 17:16:08 +00:00
Stanislav Shwartsman
89d0b3aee3 bugfix 2009-10-18 17:11:25 +00:00
Stanislav Shwartsman
da4722e257 optimize sr params 2009-10-16 18:29:45 +00:00
Stanislav Shwartsman
3dbb1da68a remove "dirty" pages tracking - it is too memory consuming and can fit with >4G phy addr space 2009-10-15 20:50:33 +00:00
Stanislav Shwartsman
7254ea36a1 copyright fixes + small optimization 2009-10-14 20:45:29 +00:00
Stanislav Shwartsman
2a8b7e04ba bugfix 2009-10-13 15:28:16 +00:00
Stanislav Shwartsman
5909ef1494 loading of null segment with RPL != 0 2009-10-12 20:50:14 +00:00
Stanislav Shwartsman
0e2a0fe110 optimization 2009-10-12 16:30:52 +00:00
Stanislav Shwartsman
83c2dfd556 fixed vmx i/o bitmaps 2009-10-11 21:23:41 +00:00
Stanislav Shwartsman
12e6a33436 vmx bugfix 2009-10-10 13:45:39 +00:00
Stanislav Shwartsman
3a558cbfee update for instrumentation 2009-10-10 09:17:53 +00:00
Stanislav Shwartsman
6d6bf4a65e code optimization for future 2009-10-08 18:07:50 +00:00
Stanislav Shwartsman
a5a22cc00d VMWRITE fixed (patch from @SF) 2009-10-08 14:33:08 +00:00
Stanislav Shwartsman
d5c190ab2b Merged #SF patch: fix CS segment type during fast syscall invocation 2009-10-07 15:45:15 +00:00
Stanislav Shwartsman
1be2832e53 comment out MTRR check to workaround BIOS bug 2009-10-03 14:29:31 +00:00
Stanislav Shwartsman
b6155ef5ca compilation fix 2009-10-03 11:39:29 +00:00
Stanislav Shwartsman
d49e60a6e1 bugfix 2009-10-03 07:25:03 +00:00
Stanislav Shwartsman
d9f701ddb0 LSL/LAR fixed in 64-bit mode 2009-10-02 16:09:08 +00:00
Stanislav Shwartsman
85f1004ce0 implemented TPR shadow feature for VMX 2009-09-30 05:57:21 +00:00
Stanislav Shwartsman
d0b849a37a Fixed invalid MTRR write 2009-09-28 15:39:52 +00:00
Stanislav Shwartsman
a7f3038cc4 cleanups + fix 2009-09-26 13:50:09 +00:00
Stanislav Shwartsman
d273ae14b0 rework in paging.cc 2009-09-26 06:06:35 +00:00
Stanislav Shwartsman
e05040e891 rework in paging.cc - phase1 2009-09-26 06:05:23 +00:00
Stanislav Shwartsman
e5daa4abee bugfiX 2009-09-25 14:25:24 +00:00
Stanislav Shwartsman
5ccec842cf bugfix` 2009-09-19 06:42:31 +00:00
Stanislav Shwartsman
c940141323 bugfix 2009-09-17 05:28:51 +00:00
Stanislav Shwartsman
6d46f5c670 unreal mode fix 2009-08-30 05:03:04 +00:00
Stanislav Shwartsman
67bf255646 bugfix 2009-08-28 13:05:21 +00:00
Stanislav Shwartsman
8e3276cf14 split opcodes by ModC0 2009-08-22 11:47:42 +00:00
Stanislav Shwartsman
a259ba7321 FPU2MMX again 2009-08-22 11:02:45 +00:00
Stanislav Shwartsman
8ae803f930 MASKMOVDQU bug fix 2009-08-21 13:44:51 +00:00
Stanislav Shwartsman
7a75cad5ea FPU2MMX fixed 2009-08-20 19:53:05 +00:00
Stanislav Shwartsman
d26660dac1 small fixes 2009-08-19 09:59:30 +00:00
Stanislav Shwartsman
d5b93041e4 added prefixSSE for few opcodes 2009-08-15 15:43:40 +00:00
Stanislav Shwartsman
54e3422e1b bugfix 2009-08-15 15:36:35 +00:00
Stanislav Shwartsman
b95b70651c bugfix 2009-08-14 09:14:21 +00:00
Stanislav Shwartsman
8a95120e12 deprecate --enable-vme option, now it will be supported iff CPU_LEVEL >= 5 (like in real life) 2009-08-10 15:44:50 +00:00
Stanislav Shwartsman
eff4e00924 bugfix 2009-08-09 18:40:18 +00:00
Stanislav Shwartsman
b19da50414 bugfix 2009-08-07 05:55:45 +00:00