Commit Graph

912 Commits

Author SHA1 Message Date
Stanislav Shwartsman
0de2b305bc split SSE opcode 2011-01-21 19:21:16 +00:00
Stanislav Shwartsman
a31103e7d8 optimize fetchdecode tables - part2 2011-01-21 16:07:51 +00:00
Stanislav Shwartsman
fbc9b8b190 phase1 of opcode tables optimization 2011-01-20 16:24:42 +00:00
Stanislav Shwartsman
8c5c078b13 optimize sse and mmx code 2011-01-16 20:42:28 +00:00
Stanislav Shwartsman
45f0c72385 remove duplicated instr 2011-01-15 15:17:28 +00:00
Stanislav Shwartsman
fcdadabbc4 Rewritten SMC handling, removed pageWriteStamp, now trace fetch chck only for pAddr 2011-01-12 18:49:11 +00:00
Stanislav Shwartsman
a80b44b6db split more sse ops 2011-01-09 20:18:02 +00:00
Stanislav Shwartsman
c5aca5ac21 move function to inline 2011-01-08 19:50:22 +00:00
Stanislav Shwartsman
37204c0aaa split more SSE ops 2011-01-08 12:28:25 +00:00
Stanislav Shwartsman
a1bc92a46b split more SSE opcodes 2011-01-08 11:20:29 +00:00
Stanislav Shwartsman
2946d0ac26 split more SSE ops 2010-12-30 21:45:39 +00:00
Stanislav Shwartsman
f9f868247a split more SSE ops 2010-12-30 20:35:10 +00:00
Stanislav Shwartsman
fd5558d4be another way to implement this op 2010-12-26 20:54:23 +00:00
Stanislav Shwartsman
25b1e2e58d split more SSE ops 2010-12-26 20:41:47 +00:00
Stanislav Shwartsman
f705cbbc63 rename functions 2010-12-25 19:34:43 +00:00
Stanislav Shwartsman
1bd512e98d split more SSE ops, optimizations in MMX code 2010-12-25 17:04:36 +00:00
Stanislav Shwartsman
c005444d5b split more SSE opcodes 2010-12-25 07:59:15 +00:00
Stanislav Shwartsman
040a8e1a3a split bunch of SSE opcodes 2010-12-24 08:35:00 +00:00
Stanislav Shwartsman
43600f3756 complete rework of SSE code
next step - split all SSE opcodes by ModC0
2010-12-22 21:16:02 +00:00
Stanislav Shwartsman
29a674e520 split rd/wr CR opcodes for simplicity 2010-12-19 22:36:19 +00:00
Stanislav Shwartsman
c7017b1c05 simplification 2010-12-19 21:41:15 +00:00
Stanislav Shwartsman
4a85a8680e SSE optimization 2010-12-19 07:06:40 +00:00
Stanislav Shwartsman
48d94d6dc3 optimization 2010-12-18 11:58:16 +00:00
Stanislav Shwartsman
36291b0b1d accessor to upper part of 64-bit reg 2010-11-12 20:46:59 +00:00
Stanislav Shwartsman
e6981218dc next step for fully configurable CPU + more optimal VMX execution
- check at startup time which VMX fields are accessible
- next step: simplify VMREAD and VMWRITE instructions - eliminate switch statements
2010-11-11 21:41:03 +00:00
Stanislav Shwartsman
5ea2591cd9 fixes 2010-10-07 20:40:01 +00:00
Stanislav Shwartsman
6d089dd238 changed CPUID constants to defines 2010-10-07 16:39:31 +00:00
Stanislav Shwartsman
75f2ae9c18 fetchdecode simplification rework 2010-09-25 09:55:40 +00:00
Stanislav Shwartsman
1107ce138e small fetchdecode optimization 2010-09-07 19:54:50 +00:00
Stanislav Shwartsman
31e8bfc5a7 Fixed fsgsbase cpuid bit 2010-07-22 20:19:00 +00:00
Stanislav Shwartsman
91ac0df65c implemented GS/FS BASE access instructions published in _319433-007.pdf document 2010-07-22 16:41:59 +00:00
Stanislav Shwartsman
7f7c249934 disasm and some cpuid code according to recently published AVX_319433-007.pdf document 2010-07-22 15:12:08 +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
1c00193616 cleanup 2010-05-22 10:43:39 +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
74b87d2b68 fixes for CPUID and alloweds bits in CRs 2010-05-12 21:33:04 +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
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
749d6c33d2 relocate lazy_flags code from cpu.h 2010-04-15 05:51:00 +00:00
Stanislav Shwartsman
689ecc57dd split 2 more SSE opcodes 2010-04-08 17:35:32 +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
c94e72d4d3 make lpf_mask smaller 2010-04-07 14:38:53 +00:00
Stanislav Shwartsman
21de4f8b8b remove cr3_masked 2010-04-04 09:04:12 +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
01de3e1926 PEXTRB/W/D/EXTRACTPS fixed 2010-04-02 19:03:47 +00:00
Stanislav Shwartsman
2efb11f2bc fixes 2010-03-30 18:12:19 +00:00
Stanislav Shwartsman
64e9ff6aff add PDPTRS into param tree 2010-03-25 22:04:31 +00:00
Stanislav Shwartsman
f5ce2a7639 split crreg access functions to separate file 2010-03-25 21:33:07 +00:00
Stanislav Shwartsman
e88e168081 bswap undefined behavior 2010-03-19 10:00:48 +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
79466dffe2 apic virtualization + vmx fixes 2010-03-16 14:51:20 +00:00
Stanislav Shwartsman
1c6cc35b06 fixed TPR shadow 2010-03-15 14:18:36 +00:00
Stanislav Shwartsman
6134283932 vmx update 2010-03-15 13:54:54 +00:00
Stanislav Shwartsman
3c1b8a63d7 VMX bugfix 2010-03-15 13:22:14 +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
6dd9c7d5f5 ifdef 2010-03-12 20:30:12 +00:00
Stanislav Shwartsman
11de02bd89 MONITOR/MWAIT: rewritten MONITOR/MWAIT implementation from scratch 2010-03-07 09:16:24 +00:00
Stanislav Shwartsman
5d2c2879a7 IA32_FEATURE_CONTROL_MSR is implemented 2010-03-06 16:59:05 +00:00
Stanislav Shwartsman
189553d702 bugfix 2010-03-05 08:54:07 +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
5b6a14656d Make XSAVE as runtime option 2010-02-26 22:53:43 +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
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
70dc124b3a 1st step of moving CPU options to runtime 2010-02-24 19:27:51 +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
dc02d836ce Fix POPCNT decode tables 2010-01-29 10:16:28 +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
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
edaf19f0a1 Split MOVQ_PqQq opcode 2009-12-14 11:55:42 +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
5bfbc9df5f RETF bug fuxed 2009-11-19 20:00:35 +00:00
Stanislav Shwartsman
71bb10f98c move ignore-bad-msrs to runtime option in ,bochsrc 2009-11-13 15:55:46 +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
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
da4722e257 optimize sr params 2009-10-16 18:29:45 +00:00
Stanislav Shwartsman
5909ef1494 loading of null segment with RPL != 0 2009-10-12 20:50:14 +00:00
Stanislav Shwartsman
6d6bf4a65e code optimization for future 2009-10-08 18:07:50 +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
d273ae14b0 rework in paging.cc 2009-09-26 06:06:35 +00:00
Stanislav Shwartsman
8e3276cf14 split opcodes by ModC0 2009-08-22 11:47:42 +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
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
733491871d copy/paste typo fix 2009-06-15 15:10:05 +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
716465fb16 bugfix: Half-baked VMX Link Pointer state checking. 2009-06-06 10:21:49 +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
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
efc413d2b4 VMX fixes 2009-05-21 10:39:40 +00:00
Stanislav Shwartsman
aac70fdf25 faster vmenter/vmexit 2009-05-03 13:02:14 +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
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
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
153f86b1a8 save/restore mwait status correctly 2009-04-05 19:38:44 +00:00
Stanislav Shwartsman
fcb51dc168 oops, this break max_instr_count feature 2009-03-26 10:24:10 +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
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
c3392488b5 reorganize cpu debugger support, less function, faster code 2009-03-17 19:40:26 +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
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
6dac964b27 Two more prefix66 opcodes 2009-02-28 09:28:18 +00:00
Stanislav Shwartsman
b9de22961c minimize SSE tables, minor speedup in SSE code 2009-02-26 21:57:01 +00:00
Stanislav Shwartsman
2304f2abf1 reduce dependencies from CPU/APIC.H 2009-02-20 22:00:42 +00:00
Stanislav Shwartsman
78590cc6f2 remove redundant cpu->name variable 2009-02-20 17:05:03 +00:00
Stanislav Shwartsman
d01725b1e9 Fixed compilation error on MAC 2009-02-20 08:12:51 +00:00
Stanislav Shwartsman
1b72e66bb3 support for apic global disable
separate between I/O apic and local apic
2009-02-18 22:25:04 +00:00
Stanislav Shwartsman
87b705d036 Changes in lapicbase msr 2009-02-17 19:44:02 +00:00
Stanislav Shwartsman
3a1852ea23 take local APIC read/write access into CPU class from BX_MEM (needed for APIC virtualization later) 2009-02-17 19:20:47 +00:00
Stanislav Shwartsman
e8e699245f fix code duplication in cpu.h for eflags accessors 2009-02-13 20:09:56 +00:00
Stanislav Shwartsman
6003f52704 Fixed compilation error + x86-64 correctness fix 2009-02-09 19:46:34 +00:00
Stanislav Shwartsman
26fda0626d Added missed CR0 reserved bits #GP in long mode 2009-02-03 21:11:31 +00:00
Stanislav Shwartsman
592484408f Initial NMI virtualization for VMX, clean out CPU pins set/clear code 2009-02-03 19:17:15 +00:00
Stanislav Shwartsman
f6cb9e529f Fixes for VMX emulation 2009-02-02 18:59:44 +00:00
Stanislav Shwartsman
2378d31998 Fixes for DR6 handling 2009-02-01 20:47:06 +00:00
Stanislav Shwartsman
f8185a6bc6 Added Intel VMX emulation to Bochs CPU 2009-01-31 10:43:24 +00:00
Stanislav Shwartsman
a1c11c788b sepatate activity state from debug trap 2009-01-29 20:27:57 +00:00
Stanislav Shwartsman
aa982c27d8 move startup_SIPI code to CPU 2009-01-27 21:13:38 +00:00
Stanislav Shwartsman
0325c120b2 Separate PAUSE instruction from regular NOP 2009-01-27 20:29:05 +00:00
Stanislav Shwartsman
62005d4fd9 Minimize diff with VMX support branch 2009-01-23 09:26:24 +00:00
Stanislav Shwartsman
29a252b26e final version of exceptions cleanups/interface changes 2009-01-21 22:09:59 +00:00
Stanislav Shwartsman
e7ac62ac82 extensions for exception type for future 2009-01-20 21:28:43 +00:00
Stanislav Shwartsman
74b885d74b Updated instrumentation
Simplified exception code
2009-01-20 19:34:16 +00:00
Stanislav Shwartsman
c93d13d37b small cleanups 2009-01-20 18:15:25 +00:00
Stanislav Shwartsman
db098a1205 Fix dependencies of CPU code from disasm library
Regent Makefile.in for CPU
2009-01-19 19:01:03 +00:00
Stanislav Shwartsman
ef5df7c4a8 make functions from rdmsr and wrmsr - they will be reused in VMX 2009-01-19 18:08:38 +00:00
Stanislav Shwartsman
a396c8a1ce Rework SMM mess 2009-01-17 22:35:45 +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
0836545037 Merge io.cc and io_pro.cc (required for future VMX use) 2009-01-15 16:53:08 +00:00
Stanislav Shwartsman
836e9649d8 modify set cr0 functionality 2009-01-10 10:07:57 +00:00
Stanislav Shwartsman
6ea14b747c Fixed SEGFAULT with configurable MSRS
fixed osdep issue in win32 enhanced debugger module
2009-01-08 18:07:44 +00:00
Stanislav Shwartsman
69153fc532 added enum for memory types 2009-01-03 20:04:03 +00:00
Stanislav Shwartsman
3cd5ab1041 added phy addr check 2009-01-02 13:21:48 +00:00
Stanislav Shwartsman
e182e74a4d Added ability to define user MSRs spec for emulated CPU 2008-12-28 20:30:48 +00:00
Stanislav Shwartsman
a794bef607 optimize invlpg for split large pages 2008-12-19 16:03:25 +00:00
Stanislav Shwartsman
a2e07ff971 - Removed --enable-guest2hos-tlb configure option. The option will be
always enabled for any Bochs configuration.
2008-12-11 21:19:38 +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
d7fa44d270 optimize code access detection 2008-12-05 22:34:42 +00:00
Stanislav Shwartsman
098308dd9f some variable renames + comp warn fix 2008-12-01 19:06:14 +00:00
Stanislav Shwartsman
f69ac41e59 added infrastructure for init disable 2008-12-01 18:54:24 +00:00
Stanislav Shwartsman
e402062499 -Fixes for INVLPG 2008-11-29 19:28:10 +00:00
Stanislav Shwartsman
cde9595e86 implement cluster addressing model in local apic
deliver INIT IPI through local apic
2008-11-20 18:44:15 +00:00
Stanislav Shwartsman
577c8c7969 another way to do the same optimization 2008-10-08 20:40:26 +00:00
Stanislav Shwartsman
17040303f7 Optimization of repeat string 2008-10-08 20:15:37 +00:00
Stanislav Shwartsman
ab716f62aa inline prepareMMX method 2008-10-08 11:14:35 +00:00
Stanislav Shwartsman
67fae3ab41 Fixed compilation 2008-10-06 20:06:30 +00:00
Stanislav Shwartsman
2066d8b594 Fixed compilation issues 2008-10-06 17:50:06 +00:00
Stanislav Shwartsman
fb71c07b15 Fixes for MONITOR/MWAIT - the feature is still EXPERIMENTAL ONLY ! 2008-10-03 16:53:08 +00:00
Stanislav Shwartsman
c009e87a81 Remove external debugger interface:
- it is closed source (!!!)
 - we have very nice replacement now
2008-10-01 09:44:40 +00:00
Stanislav Shwartsman
bc381e51da very small cleanups 2008-09-19 19:18:57 +00:00
Stanislav Shwartsman
db664c4012 more optimizations after fetchdecode 2008-09-16 20:57:16 +00:00
Stanislav Shwartsman
a9c77eb75d Try to optimize individual instructions after fetchdecode 2008-09-16 19:20:03 +00:00
Stanislav Shwartsman
7566faf948 A bit simplify FPU decoding 2008-09-16 18:28:53 +00:00
Stanislav Shwartsman
d57a211df9 Fixed handling of prefixes for EMMS
Small FPU optimization
2008-09-12 20:59:31 +00:00
Stanislav Shwartsman
f5ba90da55 Misaligned check small optimization 2008-09-08 15:45:57 +00:00
Stanislav Shwartsman
c1306f7d75 small non-significant speedups 2008-09-06 21:10:40 +00:00
Stanislav Shwartsman
b3b2f77675 Reduce size of Bochs static tables by changing from bx_bool (which is 32bit) to Bit8u 2008-09-06 18:21:29 +00:00
Stanislav Shwartsman
7145d240f4 Optimize system read using Guest2Host TLB 2008-09-06 17:44:02 +00:00
Stanislav Shwartsman
7a57ccd435 - Partially fixed x87 Underflow/Overflow (#P) unmasked responce 2008-09-02 19:46:55 +00:00
Stanislav Shwartsman
bdf25fa3ca Inexact Result (#P) unmasked responce
CVS ----------------------------------------------------------------------
2008-09-02 05:38:36 +00:00
Stanislav Shwartsman
398f80a214 - Fixed CALL FAR between legacy and 64-bit modes 2008-08-31 06:04:14 +00:00
Stanislav Shwartsman
79eb5efffa - Preliminary implementation of X86 IO breakpoints 2008-08-30 08:14:46 +00:00
Stanislav Shwartsman
b96f78dc0a Some kind of big change in fetchdecode tables invented in order to compress the tables for better host data cache utilization 2008-08-29 19:23:03 +00:00
Stanislav Shwartsman
a5a01c4b42 optimize LEAVE operation 2008-08-27 21:57:40 +00:00
Stanislav Shwartsman
d029823fb5 Fixed compilation error under --enable-smp 2008-08-24 17:29:17 +00:00
Stanislav Shwartsman
d0803ebd10 branch_16 optimizations 2008-08-23 22:27:58 +00:00
Stanislav Shwartsman
5e92a1642d Fixed compilation errors, added BX_ASSERT in paging.cc 2008-08-18 05:20:23 +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
e2fa98b629 - Fixed TLB flush on CR3 change - flush all pages is CR4.PGE is OFF 2008-08-16 15:35:35 +00:00
Stanislav Shwartsman
dcb82ec4bf Optimize TLB flush methods 2008-08-13 21:51:54 +00:00
Stanislav Shwartsman
8ecea83f02 Fixed compilation error 2008-08-12 05:03:51 +00:00
Stanislav Shwartsman
70c7c5ceca Use LOAD_Eb approach to remove duplicated GbEb methods 2008-08-11 20:34:05 +00:00
Stanislav Shwartsman
a8adb36dc2 Implemented MOVBE Intel Atom(R) instruction 2008-08-11 18:53:24 +00:00
Stanislav Shwartsman
b61017e5b6 Split more opcodes using new LOAD technique 2008-08-10 21:16:12 +00:00
Stanislav Shwartsman
1da5943f1a More use of LOAD_Ex method 2008-08-10 19:34:28 +00:00
Stanislav Shwartsman
0d90ab0478 Completely new way to handle LD+OP cases - allows to significantly reduce number of BX_CPU_C methods 2008-08-09 21:05:07 +00:00
Stanislav Shwartsman
5dd02b26e3 Make even more efficient RmAddr calculation - good optimizing compiler could make more efficient code than it was before 2008-08-08 09:22:49 +00:00
Stanislav Shwartsman
bbf02a8bc5 More clean rewrite of the TLB access bits 2008-08-07 22:14:38 +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
2e8bc558d1 Speedup SSE by introducing read/write_virtual_dqword_aligned methods 2008-08-02 10:16:47 +00:00
Stanislav Shwartsman
67f302352c Implement PDPE cache to support faster PAE paging tranlsation 2008-08-01 13:28:44 +00:00
Stanislav Shwartsman
59514dcbfb Fixed compilation err typo 2008-07-26 20:50:20 +00:00
Stanislav Shwartsman
c388f48fff - Fixed memory bug in tripple fault detection
- Implement 16-byte memory accessor for SSEx - speedup SSE code emulation by >20%
2008-07-26 14:19:06 +00:00
Stanislav Shwartsman
85686db212 Removed unused methods 2008-07-13 14:22:43 +00:00
Stanislav Shwartsman
3f5efb6475 Remove more duplicated methods 2008-07-13 10:06:07 +00:00
Stanislav Shwartsman
0127415ba6 Clear some duplicated arithmetic opcodes - difference only in operands order 2008-07-13 09:59:59 +00:00
Stanislav Shwartsman
c1f308d80d Push error code if segment violation occurs when pushing arguments into a new stack 2008-06-25 02:28:31 +00:00
Stanislav Shwartsman
a6fda9a971 Instrumentation code updated, some PANIC messages fixed 2008-06-23 02:56:31 +00:00
Stanislav Shwartsman
678ac970aa Reorganize ctrl_xfer8.cc code, allows to inline branch32 method 2008-06-22 03:45:55 +00:00
Stanislav Shwartsman
98581c44d3 Fixed compilation when use64 is disabled 2008-06-13 08:17:52 +00:00
Stanislav Shwartsman
1a355e270e split io repeat methods by address size 2008-06-12 20:12:25 +00:00
Stanislav Shwartsman
92568f7525 Faster 32-bit emulation wwith 64-bit enabled mode.
~10% speedup byu optimization of 32-bit mem access
2008-06-12 19:14:40 +00:00
Stanislav Shwartsman
607900dd4d very small cleeanup 2008-06-12 16:40:53 +00:00
Stanislav Shwartsman
424f316e07 Fixed comment 2008-06-02 20:11:03 +00:00
Stanislav Shwartsman
7494b8823b - Support of AES CPU extensions, to enable configure with
--enable-aes option
2008-05-30 20:35:08 +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
3619c0f6b4 Some changes to make x86-debugger feature working back 2008-05-23 17:49:46 +00:00
Stanislav Shwartsman
4e5d10d02e Code reorganization + small bug fixes in translate linear code 2008-05-19 18:10:32 +00:00
Stanislav Shwartsman
76fc10e3d4 Added ability to override exception class to TRAP (#DB) 2008-05-15 20:10:00 +00:00
Stanislav Shwartsman
d934190370 Fixed data type for cr3_masked 2008-05-11 19:58:41 +00:00
Stanislav Shwartsman
4a76bd2169 Fixed setting of reserved bits in CR3 register 2008-05-11 19:36:06 +00:00
Stanislav Shwartsman
d3528cccd6 Style fixes - name convention for push to new stack methods 2008-05-10 20:35:03 +00:00
Stanislav Shwartsman
ec1ff39a5f Splitted memory access methods for 32 and 64-bit code.
The 64-bit code got >10% speedup, the 32-bit code also got about 2% because laddr cacluation optimization
2008-05-10 18:10:53 +00:00
Stanislav Shwartsman
3634c6f892 Compress FPU tag word 2008-05-10 13:34:47 +00:00
Stanislav Shwartsman
8e7cf2bf3a - Fixed CPUID
- Merged jmp_call_gate16 and jmp_call_gate32 to single function
2008-05-09 18:09:04 +00:00
Stanislav Shwartsman
5da460b6dc Clear segment descriptor cache when loading null selector 2008-05-06 19:45:17 +00:00
Stanislav Shwartsman
f642b57a54 Lazy falgs optimizations by Darek Mihocka 2008-05-04 15:07:08 +00:00
Stanislav Shwartsman
ed4be45a8b Split shift/rotate opcodes in 32-bit mode and 64-bit mode 2008-05-02 22:47:07 +00:00
Stanislav Shwartsman
f5780a5f5c Hide some BX_MEM_C variables
Optimize resolve16 methods - by reducing their amount again - reduce chance for misspredictin
2008-05-01 20:08:37 +00:00
Stanislav Shwartsman
81deffd65d More fetchdecode fixes 2008-04-30 21:32:33 +00:00
Stanislav Shwartsman
06c6ac0060 - Fixed effective address wrap in 64-bit mode with 32-bit address size
- Fixed SMSW instruction in 32-bit and 64-bit modes
2008-04-28 18:18:08 +00:00
Stanislav Shwartsman
67e534832b Remove from CPU reference to MEM object - it is only one and could be static 2008-04-27 19:49:02 +00:00
Stanislav Shwartsman
e86102eea5 Fixed 2nd dword of 64-bit descriptor check 2008-04-26 19:41:28 +00:00
Stanislav Shwartsman
9047c9be96 Support for reserved bits checking in paging
Check for page is in DTLB before invalidating by INVLPG
2008-04-25 20:08:23 +00:00