Commit Graph

2101 Commits

Author SHA1 Message Date
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
Stanislav Shwartsman
0db4bc29e6 compatibility bugfix 2009-08-06 14:50:38 +00:00
Stanislav Shwartsman
a3c8c25d45 remove incorrect asserts 2009-08-05 14:47:33 +00:00
Stanislav Shwartsman
d1237de4c8 bugfix 2009-08-04 16:19:15 +00:00
Stanislav Shwartsman
73b80a2391 bugfix + optimization 2009-08-02 14:23:27 +00:00
Stanislav Shwartsman
461d5a0ef2 more 'accessed' bit fix 2009-07-28 14:55:27 +00:00
Stanislav Shwartsman
d44dc8b83c Fix param name 2009-07-28 14:52:19 +00:00
Stanislav Shwartsman
1356764958 vmx bugfiX 2009-07-28 04:42:49 +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
f2d84e1604 Fixed VMREAD/VMWRITE of 16-bit vmx fields 2009-07-21 11:56:26 +00:00
Stanislav Shwartsman
f5b04f6b61 bugfix 2009-07-19 12:51:36 +00:00
Stanislav Shwartsman
e15bfef9f7 remove --enable-daz option, it will be turned on by default iff SSE2 is supported (like in real hardware) 2009-07-08 14:02:42 +00:00
Stanislav Shwartsman
cfa3611a5f bugfixes, comment fixes, compilation fix in VMX 2009-06-20 20:39:51 +00:00
Stanislav Shwartsman
712e5a6f18 fixed priority between #AC and #GP on canonical access 2009-06-20 09:38:51 +00:00
Stanislav Shwartsman
61cb00c149 Fixed shift flags (thanks Darek for showing the bug) 2009-06-20 09:10:48 +00:00
Stanislav Shwartsman
7a473a14f3 Revert incorrect changE 2009-06-15 19:05:29 +00:00
Stanislav Shwartsman
733491871d copy/paste typo fix 2009-06-15 15:10:05 +00:00
Stanislav Shwartsman
26a1cef63b removed redundant (now) compilation directives 2009-06-15 09:34:49 +00:00
Stanislav Shwartsman
cd445195dd cleanup configure options. All paging related stuff is now automatically set/unset according to cpu-level option.
Related configure options (--enable-pae, --enable-mtrr, --enable-global-pages, --enable-large-pages) are deprecated.
Less configure options - less configure problems :)
2009-06-15 09:30:56 +00:00
Stanislav Shwartsman
f59f067368 compilation err fixed 2009-06-12 11:45:05 +00:00
Stanislav Shwartsman
d7eb001223 small optimization 2009-06-09 15:23:28 +00:00
Stanislav Shwartsman
cb8ef697d5 PSE-36 is also supported 2009-06-06 10:40:11 +00:00
Stanislav Shwartsman
716465fb16 bugfix: Half-baked VMX Link Pointer state checking. 2009-06-06 10:21:49 +00:00
Stanislav Shwartsman
d5efb5c378 implemented biasing of unmasked x87 over/underflow result 2009-06-05 17:48:55 +00:00
Stanislav Shwartsman
03ba2ec988 implement pdptr checks in legacy PAE mode 2009-05-31 07:49:04 +00:00
Stanislav Shwartsman
222129db4b Rewritten long mode page walk - large code cleanup and few bugfixes 2009-05-30 15:09:38 +00:00
Stanislav Shwartsman
a98a917c98 code cleanup 2009-05-28 20:18:34 +00:00
Stanislav Shwartsman
3d7bbf4356 fixed VMXON pointer concept 2009-05-28 08:26:17 +00:00
Stanislav Shwartsman
847179fd13 mtrr reverved bits check 2009-05-21 13:25:30 +00:00
Stanislav Shwartsman
98d632c197 Fixed ROUNDxx opcodes 2009-05-21 11:44:59 +00:00
Stanislav Shwartsman
efc413d2b4 VMX fixes 2009-05-21 10:39:40 +00:00
Stanislav Shwartsman
071a27fd99 fixed 1g paging cpuid bit (26, not 27) 2009-05-19 18:54:05 +00:00
Stanislav Shwartsman
27805e9aba 64 Bit XP boot requirements CPUID changes - thanks Mark ! 2009-05-19 15:46:07 +00:00
Stanislav Shwartsman
867ef05705 The same for G15R 2009-05-16 09:26:16 +00:00
Stanislav Shwartsman
9339740d8b G15M have SSE prefix style 2009-05-16 09:11:14 +00:00
Stanislav Shwartsman
0b59fdfe31 small fix 2009-05-13 14:31:09 +00:00
Stanislav Shwartsman
68633b09d2 -typo 2009-05-07 12:02:34 +00:00
Stanislav Shwartsman
6fe6da5f25 small fixes 2009-05-07 12:00:02 +00:00
Stanislav Shwartsman
aac70fdf25 faster vmenter/vmexit 2009-05-03 13:02:14 +00:00
Stanislav Shwartsman
ecf82d54cd bugfix 2009-05-01 14:59:21 +00:00
Stanislav Shwartsman
78418c6a74 removed cr1 from cpu 2009-05-01 09:32:46 +00:00
Stanislav Shwartsman
89f057ae7b x87 fix 2009-04-27 14:00:55 +00:00
Stanislav Shwartsman
19dce66e50 fixed instruiction fetch bug which happens in 64-bit mode when jumping rip by scale of 32bit 2009-04-18 21:09:50 +00:00
Stanislav Shwartsman
150f8bfff0 remove unused vars 2009-04-14 19:34:03 +00:00
Stanislav Shwartsman
4d40d7a471 - Fixed TR.LIMIT when checking TSS permission bitmap from Int_Ib() in VME mode 2009-04-14 17:41:58 +00:00
Stanislav Shwartsman
012b3a2e89 Eliminate code duplication 2009-04-14 13:43:21 +00:00
Stanislav Shwartsman
e0833381d5 Fixed priority between #NP and #GP 2009-04-14 09:23:36 +00:00
Stanislav Shwartsman
024d36fa12 x87: fixed C1 (rounding up) for overflow condition 2009-04-11 17:00:28 +00:00
Stanislav Shwartsman
6f6414e456 fixed inv phy addr breakpoints 2009-04-11 14:02:13 +00:00
Stanislav Shwartsman
fb76e852f0 Almost made to get rid of icount 2009-04-11 13:58:34 +00:00
Stanislav Shwartsman
4fc66aab31 Fixes for compilation by Visual Studio 2008 2009-04-07 16:12:19 +00:00
Stanislav Shwartsman
9d4c24b6a3 Split instruction 32/64 2009-04-06 18:44:28 +00:00
Stanislav Shwartsman
6fbc9bd250 Fixed SMC when trace cache is OFF + small speedup again 2009-04-06 18:27:30 +00:00
Stanislav Shwartsman
57f5bcf9e7 some very small optimization in cpu_loop 2009-04-06 18:14:20 +00:00
Stanislav Shwartsman
153f86b1a8 save/restore mwait status correctly 2009-04-05 19:38:44 +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
f7efa100e0 Redefine "generic" VMCS table 2009-03-28 13:42:09 +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
8eb93f4c41 More debug prints 2009-03-27 09:37:48 +00:00
Stanislav Shwartsman
fcb51dc168 oops, this break max_instr_count feature 2009-03-26 10:24:10 +00:00
Stanislav Shwartsman
c4eed92bb0 small optimization 2009-03-26 09:44:23 +00:00
Stanislav Shwartsman
043be27c2c M$ comilerr can't optimize very good functions with long_jmp inside 2009-03-26 09:28:49 +00:00
Stanislav Shwartsman
722d489ad9 Fix SMC detection optimization 2009-03-24 16:04:47 +00:00
Stanislav Shwartsman
839ef8b6ce optimizations in icache 2009-03-24 12:37:28 +00:00
Stanislav Shwartsman
b46aa8e905 Fixed assertion failure in iret 2009-03-23 19:36:48 +00:00
Stanislav Shwartsman
85cdc96a49 Undo perf optimization which broke correctness 2009-03-23 16:46:17 +00:00
Stanislav Shwartsman
aee1b3d3b8 FIxed MOVBE16 2009-03-22 21:23:12 +00:00
Stanislav Shwartsman
e5be60be64 Fixed lazy flags bug I added in one of my prev merges
ICACHE code reorganization
2009-03-22 21:12:35 +00:00
Stanislav Shwartsman
888000e7d4 Fixed compilation err with trace cache disabled 2009-03-22 06:09:18 +00:00
Stanislav Shwartsman
c3392488b5 reorganize cpu debugger support, less function, faster code 2009-03-17 19:40:26 +00:00
Stanislav Shwartsman
b9283af695 fixed compilation warning 2009-03-15 16:52:54 +00:00
Stanislav Shwartsman
4470c6a1c8 make ICACHE always enabled option and deprecate it in the configure script
Trace cache still can be turned off
2009-03-13 18:48:08 +00:00
Stanislav Shwartsman
10c8d8ea33 improve lazy flags after ADD instruction 2009-03-13 18:26:10 +00:00
Stanislav Shwartsman
9417cbee63 - cpu optimizations 9remove redundant, add new) 2009-03-13 18:02:33 +00:00
Stanislav Shwartsman
2bdc6ff231 insert updateFetchModeMask into handleCpuModeChange - avoid bugs in future 2009-03-10 22:28:08 +00:00
Stanislav Shwartsman
08de514d9c code cleanup for future optimization 2009-03-10 21:43:11 +00:00
Stanislav Shwartsman
07f811013c bugfixes 2009-03-10 20:01:56 +00:00
Stanislav Shwartsman
51ea504442 Fixed compilation with debugger on 2009-03-10 17:02:03 +00:00
Stanislav Shwartsman
9e723a044f - Added configure option to enable/disable A20 pin support. Disabling the
A20 pin support slightly speeds up the emulation.

  - small code cleanup
2009-03-10 16:28:01 +00:00
Stanislav Shwartsman
6fe0b40b44 move a20 handling into getHostAddr method of BX_MEM 2009-03-08 21:23:40 +00:00
Stanislav Shwartsman
43fc81651d Removed redundant code 2009-03-05 17:48:12 +00:00
Stanislav Shwartsman
72e2a2258f Fixed BSWAP in MOVBE instruction 2009-03-03 16:55:20 +00:00