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
Stanislav Shwartsman
56251925a3
Fixed typo in 64-bit BSWAP
2009-03-03 06:18:00 +00:00
Stanislav Shwartsman
6dac964b27
Two more prefix66 opcodes
2009-02-28 09:28:18 +00:00
Stanislav Shwartsman
bc8be4ed06
Fixed CR8 read
2009-02-27 20:00:02 +00:00
Stanislav Shwartsman
93f375dc42
regen dependencies
2009-02-26 22:02:00 +00:00
Stanislav Shwartsman
b9de22961c
minimize SSE tables, minor speedup in SSE code
2009-02-26 21:57:01 +00:00
Stanislav Shwartsman
e6685b3557
Fixed comp err with APIC disabled
2009-02-23 17:09:39 +00:00
Volker Ruppert
9e3dd83e85
- reduce some more dependencies and related Makefile.in updates
2009-02-23 11:06:53 +00:00
Volker Ruppert
790eec83ca
- converted I/O APIC to a device plugin
...
- updated dependencies
2009-02-22 10:44:50 +00:00
Stanislav Shwartsman
2304f2abf1
reduce dependencies from CPU/APIC.H
2009-02-20 22:00:42 +00:00
Stanislav Shwartsman
87268a1ba5
Fixed dfr register in apic
2009-02-20 20:44:20 +00:00
Stanislav Shwartsman
21d753c378
short cleanup
2009-02-20 17:35:55 +00:00
Stanislav Shwartsman
09489f968a
cleanup APIC initialization and setting of APIC_ID
2009-02-20 17:26:01 +00:00
Stanislav Shwartsman
78590cc6f2
remove redundant cpu->name variable
2009-02-20 17:05:03 +00:00
Stanislav Shwartsman
11e8d090b6
moved def to config.h
2009-02-20 16:01:30 +00:00
Stanislav Shwartsman
d01725b1e9
Fixed compilation error on MAC
2009-02-20 08:12:51 +00:00
Stanislav Shwartsman
31a367283a
small optimizations for apic code
2009-02-19 23:19:11 +00:00
Stanislav Shwartsman
7be90a7426
forgot to enable local_apic in init()
2009-02-18 22:38:58 +00:00
Stanislav Shwartsman
3564ef3162
small fixes
2009-02-18 22:33:06 +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
6fb60de2b2
cpu to see up to 40 bit physical addr space
2009-02-15 18:51:13 +00:00
Stanislav Shwartsman
e8e699245f
fix code duplication in cpu.h for eflags accessors
2009-02-13 20:09:56 +00:00
Stanislav Shwartsman
f1eb1d00fd
do not produce fpu2mmx transition if mem write faults
2009-02-13 10:15:16 +00:00
Stanislav Shwartsman
714dc45589
Fixed typo
2009-02-13 10:10:39 +00:00
Stanislav Shwartsman
a5badd3b83
- bugfixes
2009-02-13 09:51:57 +00:00
Stanislav Shwartsman
6003f52704
Fixed compilation error + x86-64 correctness fix
2009-02-09 19:46:34 +00:00
Stanislav Shwartsman
25b7227ef2
convert some BX_DEBUG prints to BX_ERROR
...
fixed boundary fetch fault bug in some stupid corner cases
2009-02-08 17:37:19 +00:00
Stanislav Shwartsman
aeaf51d33a
FIxed #DB exception in 64-bit mode
2009-02-06 15:25:57 +00:00
Stanislav Shwartsman
21e2692997
Fixed bug in trace cache mode
2009-02-06 15:03:47 +00:00
Stanislav Shwartsman
7c0582e4ea
Some fixes for X86-64 OFF mode
2009-02-04 16:05:47 +00:00
Stanislav Shwartsman
26fda0626d
Added missed CR0 reserved bits #GP in long mode
2009-02-03 21:11:31 +00:00
Stanislav Shwartsman
7d5e058dfe
write to apic must be 16-byte aligned
2009-02-03 20:42:15 +00:00
Stanislav Shwartsman
fdf4f25230
revert incorret merge
2009-02-03 19:28:22 +00:00
Stanislav Shwartsman
fbc6f04d8a
correctly deliver INIT
2009-02-03 19:26:09 +00:00
Stanislav Shwartsman
4499ae8d02
more info abourt SIPI
2009-02-03 19:25:37 +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
3a918d21f7
VMENTER with pending dbg exceptions
2009-02-01 22:23:33 +00:00
Stanislav Shwartsman
2378d31998
Fixes for DR6 handling
2009-02-01 20:47:06 +00:00
Stanislav Shwartsman
de5814a22d
Fixed compilation err
2009-01-31 15:01:29 +00:00
Stanislav Shwartsman
9430c5cf95
INIT pin is blocked when CPU is waiting for SIPI
2009-01-31 11:53:57 +00:00
Stanislav Shwartsman
82969504d8
updated CPU TODO
2009-01-31 11:34:51 +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
8c8ef5b869
Mask bit 11:8 of segment AR field
2009-01-23 21:28:01 +00:00
Stanislav Shwartsman
950db498c9
Fixed #DF error code
2009-01-23 18:19:57 +00:00
Stanislav Shwartsman
cd90782293
No need to save/restore EXT field
2009-01-23 17:48:38 +00:00
Stanislav Shwartsman
503cc4c836
merge fix
2009-01-23 09:33:11 +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
0b3c7262d4
Wrongly committed line
2009-01-20 21:34: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
cc60240dc1
cleanup RDMSR
2009-01-19 17:43:54 +00:00
Stanislav Shwartsman
637630435e
Fixed typo
2009-01-19 16:45:54 +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
eaa00237c1
Notify debugger about MWAIT executed
2009-01-17 16:55:13 +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
8af7eff93f
Oops, remove future stuff
2009-01-15 17:12:18 +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
aee488ea3a
Fixed dbg print
2009-01-13 22:54:49 +00:00
Stanislav Shwartsman
d4611072f4
Some small updates
2009-01-13 19:00:30 +00:00
Stanislav Shwartsman
da511513b3
make displ field of instruction signed
2009-01-12 20:14:37 +00:00
Stanislav Shwartsman
0ff68a2aa2
Fixed XSAVE decode in x86-64 mode
2009-01-10 16:01:55 +00:00
Volker Ruppert
501952efdd
- removed unused logfunctions member 'type' and related method 'settype()'
...
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Stanislav Shwartsman
6451356d2b
make function to calculate allowed bits in cr4
2009-01-10 10:37:23 +00:00
Stanislav Shwartsman
836e9649d8
modify set cr0 functionality
2009-01-10 10:07:57 +00:00
Stanislav Shwartsman
4369152c70
- Make CS segment always writeable in real mode
2009-01-10 09:36:44 +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
Volker Ruppert
e12b21e647
- update all dependencies
2009-01-03 09:54:10 +00:00
Stanislav Shwartsman
87396f051a
msr phy addr check use new function
2009-01-02 13:23:06 +00:00
Stanislav Shwartsman
3cd5ab1041
added phy addr check
2009-01-02 13:21:48 +00:00
Stanislav Shwartsman
16275b5298
Fixed msrs.def parsing
2008-12-30 18:16:30 +00:00
Stanislav Shwartsman
d56c3a18aa
reduce include dependencies in iodev.h
...
Makefile.in in iodev folder have to be regerated !
2008-12-29 20:16:08 +00:00
Stanislav Shwartsman
aff71784fc
Fixed possible mmory bug
2008-12-29 19:18:21 +00:00
Stanislav Shwartsman
6134ece1a2
hardware reset on triple fault
2008-12-29 17:46:42 +00:00
Stanislav Shwartsman
b7839dfcbe
Optimize repeat I/O calls
2008-12-29 17:35:35 +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
7f65e6b9ed
change PANIC to ERROR
2008-12-13 18:40:39 +00:00
Stanislav Shwartsman
2682738968
added ifdefs around 1G paging implementation
2008-12-11 21:30:37 +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
69bd21bf1d
1G pages support for CPU
2008-12-11 21:00:01 +00:00
Stanislav Shwartsman
5174f9fe82
Fixed debian i386 image freeze
2008-12-08 20:01:26 +00:00
Stanislav Shwartsman
1231f64d79
move function to cpu.cc
2008-12-07 19:47:34 +00:00
Stanislav Shwartsman
24f9a22550
Fixed compilation when not in x86-64
2008-12-07 06:15:26 +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
f9ce1171fe
rename crreg accessors
2008-12-06 10:21:55 +00:00
Stanislav Shwartsman
25e05d9a60
forgot to mark code access as code
2008-12-06 07:14:40 +00:00
Stanislav Shwartsman
d7fa44d270
optimize code access detection
2008-12-05 22:34:42 +00:00
Stanislav Shwartsman
b3bbf8ded2
define generic MSR
2008-12-05 13:10:51 +00:00
Stanislav Shwartsman
70e9f4c161
preparing to different way of handling MSR registers
2008-12-05 12:48:36 +00:00
Stanislav Shwartsman
ae4e5cea65
Fixed param tree overflow
2008-12-04 20:26:06 +00:00
Stanislav Shwartsman
ef36cec716
moving definition to config.h
2008-12-01 19:35:25 +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
fbd078cb70
updates for instrumentation
2008-11-18 20:58:09 +00:00
Stanislav Shwartsman
3d60e1e20d
Fixed CPU state after software reset (INIT).
...
Update instrumentation.
Clean extra space from plugin.h biosdev device name
2008-11-18 20:55:59 +00:00
Stanislav Shwartsman
d12e1fc290
Fixed CPU runway after pressing reset button
2008-11-13 22:58:54 +00:00
Stanislav Shwartsman
dbca1fb130
Fix another corner case in prefetch()
2008-11-11 17:44:19 +00:00
Stanislav Shwartsman
5f9afb550a
Fix in cpu.cc
2008-11-09 22:33:44 +00:00
Stanislav Shwartsman
857392583a
- Fixed exceptions handling in v8086 mode
2008-11-09 22:08:21 +00:00
Stanislav Shwartsman
0f5f075e4d
- Fixed theoretically possible pageWriteStamp overflow
2008-10-21 19:50:05 +00:00
Stanislav Shwartsman
82815c4bef
Put back simple hash function for icache and trace cache - more cache misses but still ~3% speedup
2008-10-14 17:23:53 +00:00
Stanislav Shwartsman
c11ad9405d
one more
2008-10-10 21:09:25 +00:00
Stanislav Shwartsman
5261e6f73a
Optimize prefetch() method
2008-10-10 20:49:16 +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
489447ae57
Fixed FPU2MMX state transition - should be done only fater all memory faults already checked
2008-10-08 10:51:38 +00:00
Alexander Krisak
e108fe0d58
Yet another win32 build fix. cpu/resolve.cc renamed to cpu/resolver.cc
...
because it conflicts with disasm/resolve.cc.
2008-10-07 07:47:56 +00:00
Stanislav Shwartsman
52a0eb2143
- Avoid 32-bit EIP wrap in prefetch()
2008-10-06 22:19:22 +00:00
Stanislav Shwartsman
3b0e84d9e3
The same again
2008-10-06 20:41:28 +00:00
Stanislav Shwartsman
367116ee3d
Do not access 64-bit vars when guaranteed to be in 32-bit mode with upper part of ther RIP/RSP cleared
2008-10-06 20:26:14 +00:00
Stanislav Shwartsman
67fae3ab41
Fixed compilation
2008-10-06 20:06:30 +00:00
Stanislav Shwartsman
4cf63f4804
Delete unused file
2008-10-06 20:05:23 +00:00
Stanislav Shwartsman
2066d8b594
Fixed compilation issues
2008-10-06 17:50:06 +00:00
Stanislav Shwartsman
fe0456d519
Remove extra ;;
2008-10-03 17:00:46 +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
5d0a807f0e
CR1 is not exists
2008-10-02 18:14:52 +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
dee5b0a7a6
Correctly set DR6 when instr BP detected
2008-09-26 20:41:41 +00:00
Stanislav Shwartsman
8adcf06f27
Fixed bug
2008-09-25 19:19:40 +00:00
Stanislav Shwartsman
3d97374ce8
Some fixes for functionality
2008-09-24 10:39:35 +00:00
Stanislav Shwartsman
cbadccb63c
Fixed DR6 handling
2008-09-23 19:33:37 +00:00
Stanislav Shwartsman
0966fe8621
Fix corruption when executing WBINVD in SMP
2008-09-23 17:33:18 +00:00
Alexander Krisak
a6cce95418
fixed compillation
2008-09-23 13:25:32 +00:00
Stanislav Shwartsman
5aaeb331fe
Fixed typo
2008-09-22 21:41:22 +00:00
Stanislav Shwartsman
3b276bc9fe
Implement modern BIOS mode for limiting max reported CPUID function to 3.
...
This mode is required in order to correctly boot and install WinNT guest
2008-09-22 21:38:15 +00:00
Stanislav Shwartsman
b0abb5d6a6
task switch fixes
2008-09-22 19:53:47 +00:00
Stanislav Shwartsman
bc381e51da
very small cleanups
2008-09-19 19:18:57 +00:00
Stanislav Shwartsman
39d4db5564
- No alignment check required for 16-byte 'unaligned' access
2008-09-18 17:37:28 +00:00
Stanislav Shwartsman
db664c4012
more optimizations after fetchdecode
2008-09-16 20:57:16 +00:00
Stanislav Shwartsman
d7fdaaad5b
remove not needed index set
2008-09-16 19:22:13 +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
7657ae626e
Change error message level
2008-09-14 20:58:20 +00:00
Stanislav Shwartsman
d57a211df9
Fixed handling of prefixes for EMMS
...
Small FPU optimization
2008-09-12 20:59:31 +00:00
Stanislav Shwartsman
2b2fd6e810
Fixed SMM valid bit save/restore for sregs
2008-09-11 21:54:57 +00:00
Stanislav Shwartsman
23933d731c
Remove 4G limit optimization that didn't work quite well
2008-09-08 20:47:33 +00:00
Stanislav Shwartsman
b03f940807
optimize seg_override decoding
2008-09-08 16:15:59 +00:00
Stanislav Shwartsman
f5ba90da55
Misaligned check small optimization
2008-09-08 15:45:57 +00:00
Stanislav Shwartsman
a95c24b019
Some functions could be called only from 32 bit
2008-09-06 21:18:08 +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
0cd11fd385
Updated instrumentation callbacks - removed fetchdecode_completed callback
2008-09-06 17:49:32 +00:00
Stanislav Shwartsman
7145d240f4
Optimize system read using Guest2Host TLB
2008-09-06 17:44:02 +00:00
Stanislav Shwartsman
f6531f6df9
-Fixed alignment chek to be on laddr instead of eaddr for CMPXCHG16B
2008-09-05 21:43:12 +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
bf9eea4fa5
- Fixed segment limit violations with 4G segment limit
2008-08-30 15:00:38 +00:00
Stanislav Shwartsman
79eb5efffa
- Preliminary implementation of X86 IO breakpoints
2008-08-30 08:14:46 +00:00
Stanislav Shwartsman
db8445abde
Allow 8b BP in 32bit mode as well
2008-08-29 22:14:02 +00:00
Stanislav Shwartsman
a0e395188f
Fixed merge error
2008-08-29 20:43:05 +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
b1da3d7d46
very slight optimization in io permissions check
2008-08-27 21:26:23 +00:00
Stanislav Shwartsman
d029823fb5
Fixed compilation error under --enable-smp
2008-08-24 17:29:17 +00:00
Stanislav Shwartsman
9a2072bba6
More fetchdecode optimization
2008-08-23 22:34:17 +00:00
Stanislav Shwartsman
d0803ebd10
branch_16 optimizations
2008-08-23 22:27:58 +00:00
Stanislav Shwartsman
991ae348cb
Clean invalidate_prefetch_q when not needed
2008-08-23 13:55:37 +00:00
Stanislav Shwartsman
51cb5451d8
Apply CPUID vendor/brand string from @SF
2008-08-19 16:43:07 +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
f275eb3e86
- CALL instructions should push old EIP to stack before checking new EIP for CS.limits
2008-08-16 15:32:44 +00:00
Stanislav Shwartsman
8107e7f084
Fixed restore of FCS field
2008-08-16 12:19:30 +00:00
Stanislav Shwartsman
edae99eb48
Revert back last commmit
2008-08-15 17:39:22 +00:00
Stanislav Shwartsman
65f3344496
Bugfix for big real mode
2008-08-15 14:31:31 +00:00
Stanislav Shwartsman
5eb845763e
Fixed corner case problem cause by my prev optimization
2008-08-15 14:30:50 +00:00
Stanislav Shwartsman
460d91fc8c
Added missed #GP fault when writing invalid memtype to MTRR/PAT
2008-08-15 10:59:31 +00:00
Stanislav Shwartsman
9d61bbb903
Fixed BX_ERR messages
2008-08-15 10:12:41 +00:00
Stanislav Shwartsman
aea946b4a3
One more change to speedup memory access through HostPtr check
2008-08-14 22:26:15 +00:00
Stanislav Shwartsman
dcb82ec4bf
Optimize TLB flush methods
2008-08-13 21:51:54 +00:00
Stanislav Shwartsman
c9a8e4d79d
Remove redundant TLB flush - it is even before TLB iniT
2008-08-13 20:54:03 +00:00
Stanislav Shwartsman
3e03443405
Fixed speed bug when alignment access is disabled
2008-08-12 20:24:24 +00:00
Stanislav Shwartsman
fa49bd17dc
Fixed small performance bug in HandleAsyncEvent
2008-08-12 19:25:42 +00:00
Stanislav Shwartsman
8ecea83f02
Fixed compilation error
2008-08-12 05:03:51 +00:00
Stanislav Shwartsman
6b79e1e204
Add missed crc32.cc
2008-08-12 04:57:59 +00:00
Stanislav Shwartsman
70f363a05c
Unroll back 32-bit fetchdecode displ
2008-08-11 21:06:27 +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
cddcdccd99
Fixed paging bug
2008-08-10 20:32:00 +00:00
Stanislav Shwartsman
e5cb22772d
Fixed compilation error
2008-08-10 19:40:47 +00:00
Stanislav Shwartsman
1da5943f1a
More use of LOAD_Ex method
2008-08-10 19:34:28 +00:00
Stanislav Shwartsman
79cabe4bec
Already first small optimization :)
2008-08-09 21:07:48 +00:00