Stanislav Shwartsman
91e0db63c4
no need to invalidate prefetch queue for RDMSR/WRMSR
2007-12-03 21:43:14 +00:00
Stanislav Shwartsman
c58e95f611
Make hw breakpoint match check a function - normally it should be called from read/write_virtual as well
2007-12-03 20:49:24 +00:00
Stanislav Shwartsman
dbfa7a51e9
Do not affect CPU state if any exception occured - in this case do not write to MEM and flags
2007-12-03 20:48:02 +00:00
Stanislav Shwartsman
1bcf42baec
oops, fixed incorrect checkin
2007-12-01 16:59:36 +00:00
Stanislav Shwartsman
7ca78b88e9
configure/compile changes + small optimizations
2007-12-01 16:45:17 +00:00
Stanislav Shwartsman
d1e71ec4a7
deliver smi should be available even if apic is OFF
2007-11-30 17:59:10 +00:00
Stanislav Shwartsman
a0147fe055
Fixed bug prevented to boot Win98
2007-11-30 08:49:12 +00:00
Stanislav Shwartsman
39b2680110
Fixed compilation error when x86-64 emualtion disabled
2007-11-29 22:22:24 +00:00
Stanislav Shwartsman
aa00d33640
BITSCAN lazy flags evaluation optimization
2007-11-29 21:52:16 +00:00
Stanislav Shwartsman
1a55835155
Optimize lazy flags for MUL/IMUL
2007-11-29 21:45:10 +00:00
Stanislav Shwartsman
8cfd17202a
some simple SSE code optimizations
2007-11-27 22:12:45 +00:00
Stanislav Shwartsman
91add6a05a
cleanup
2007-11-26 17:45:48 +00:00
Stanislav Shwartsman
35c3791bb7
Correctly implement EFER.FFXSR feature
2007-11-25 20:52:40 +00:00
Stanislav Shwartsman
c51888f43f
Split last BxLockable opcodes -> this allows to eliminate mod==0xc0 check from fetchdecode of every instruction
...
reduce ACPU.CC dependencies - now that file doesn't depend of CPU
2007-11-25 20:22:10 +00:00
Stanislav Shwartsman
42d06b2d2b
make some functions RSP safe so it is not needed to save/restore RSP for the anymore
2007-11-24 15:27:55 +00:00
Stanislav Shwartsman
e51184c8cf
Eliminate saving of RSP from heart of cpu_loop
...
Now save RSP only where it is really required
2007-11-24 14:22:34 +00:00
Stanislav Shwartsman
d0052dcd3e
Removed unused setFlags code
2007-11-23 22:49:54 +00:00
Stanislav Shwartsman
3daa468c02
Fixed comments in bit.cc
...
Revert back lock prefix changes in fetchdecode - not all lockable instructions are splitted yet ;(
2007-11-23 16:37:06 +00:00
Stanislav Shwartsman
af9a14ff3b
cleanups
2007-11-22 21:52:55 +00:00
Stanislav Shwartsman
1dbe51a2fb
Split ENTER_IwBw function according to os32. Fixed ENTER/LEAVE in 64-bit mode
2007-11-22 17:33:06 +00:00
Stanislav Shwartsman
e0ee0eaaaf
Diplicate ICACHE size - now index to ICACHE is exactly 16 bit so ICACHE hash function could be computed more efficiently
2007-11-22 17:32:00 +00:00
Stanislav Shwartsman
8e909508c8
a bit faster SETL/SETNL code
2007-11-21 22:42:40 +00:00
Stanislav Shwartsman
0a1063ad77
Split GvEv opcode groups
2007-11-21 22:36:02 +00:00
Stanislav Shwartsman
506dc3d963
Optimize 64-bit fetchdecode prefix handling
...
Deparecated set_FLAG() method, setB_FLAG() method was used everywhere
Rename setB_FLAG to set_FLAG, so set_FLAG() will must receive 0/1 inly
2007-11-20 23:00:44 +00:00
Stanislav Shwartsman
48650a70b4
Optimized alignment check
2007-11-20 21:22:03 +00:00
Stanislav Shwartsman
1af7010e50
Optimized memory access for 64-bit mode
...
Starting convergence to new lazy flags scheme by Darek Mihocka (www.emulators.com). The new flags code is still being validated and perfected but I try to minimize the diff between 2 versionS
2007-11-20 17:15:33 +00:00
Stanislav Shwartsman
2bd8958783
Change force_flags() implementation and make lazy flags a bit more lazy :)
2007-11-19 19:55:09 +00:00
Stanislav Shwartsman
d75a69fd2e
Remove BxResolve tables
2007-11-18 22:14:39 +00:00
Stanislav Shwartsman
fb61418307
optimize modrm/sib decoding
2007-11-18 21:38:58 +00:00
Stanislav Shwartsman
30f42d74f1
make sreg index tables static in fetchdecode and remove them from init.cc/cpu.h
2007-11-18 21:07:40 +00:00
Stanislav Shwartsman
1e0db62984
bit.cc speedup (small)
2007-11-18 20:21:34 +00:00
Stanislav Shwartsman
bcaba54489
Merge resolve functions for 32 and 64-bit
2007-11-18 19:46:14 +00:00
Stanislav Shwartsman
090dd61a1e
code cleanup in stack16/32.cc
2007-11-18 18:52:44 +00:00
Stanislav Shwartsman
57d2d14865
Split POP_Ev opcodes
2007-11-18 18:49:19 +00:00
Stanislav Shwartsman
e1496bb9e0
Small optimization
2007-11-18 18:40:38 +00:00
Stanislav Shwartsman
cdc9a09090
Split more opcodes
2007-11-18 18:24:46 +00:00
Stanislav Shwartsman
83f6eb6945
Changes copyrights for the files I wrote :)
...
Also split EqId G1 group for x86-64
2007-11-17 23:28:33 +00:00
Stanislav Shwartsman
613bad34ee
split MOVZX/MOVSX opcodes
2007-11-17 18:29:00 +00:00
Stanislav Shwartsman
5ec15df46d
Split more opcodes EbIb opcodes
2007-11-17 18:08:46 +00:00
Stanislav Shwartsman
d5a58e1df2
Split more opcodes - G3 group
2007-11-17 16:20:37 +00:00
Stanislav Shwartsman
d9e58bd598
split11b on opcode tables level - split almost eevery splittable instruction
...
will be continued
2007-11-17 12:44:10 +00:00
Stanislav Shwartsman
abe3f4c5c2
Split one more opcode
2007-11-16 21:43:23 +00:00
Stanislav Shwartsman
b4b922809a
Move 3byte opcode decoding under Modrm condition
2007-11-16 20:49:51 +00:00
Stanislav Shwartsman
d4db077e48
Fixed MSVCPP warning/error
2007-11-16 20:33:21 +00:00
Stanislav Shwartsman
565e7f9868
Merge common fetchdecode groups. Add more comments to fetchdecode tables
2007-11-16 18:34:14 +00:00
Stanislav Shwartsman
393018cdf8
More split11b
2007-11-16 17:45:58 +00:00
Stanislav Shwartsman
351244d1ea
Rename splitmod11b methods
2007-11-16 08:30:22 +00:00
Stanislav Shwartsman
db02731cbf
Replace BxAnother attribute in fetchdecode by table lookup like it is done in disasm. This is done in preparation to feature huge fetchdecode change - all fethdecode tables will be duplicated and made separatate table for ModC0 and others.
...
So ALL instructions will emjoy SplitMod11b automatically (if they want).
After splitting ALL instruction I hope to get 20% speedup at least.
2007-11-15 17:57:56 +00:00
Stanislav Shwartsman
9da22f9b65
Remove redundant BxAnother attr from prefixes
...
The meaning of BxAnother attr - instryction has modrm byte
2007-11-14 22:52:16 +00:00
Stanislav Shwartsman
dc5c25133f
Fixes in registers read/write -> fixed zero upper of register in POP_Ed
2007-11-13 21:07:08 +00:00