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