Stanislav Shwartsman
|
405fcfd75d
|
Reorganize 3-byte opcode tables - bigger tables but easier to maintain them
|
2008-02-29 03:02:03 +00:00 |
|
Stanislav Shwartsman
|
cdcd7522aa
|
Added RIP to the GPR register file as lst register
This allowed to optimize (read - remove) two more BxResolve methods in 64-bit mode
+ Some white space cleanup
|
2008-02-15 19:03:54 +00:00 |
|
Stanislav Shwartsman
|
0f44b4f0ec
|
Fixes in MODRM tables
|
2008-02-15 12:23:49 +00:00 |
|
Stanislav Shwartsman
|
4fc0df26e8
|
a bit optimize and simplify x87 decoding
|
2008-02-14 18:59:41 +00:00 |
|
Stanislav Shwartsman
|
fb0ce45d28
|
Unpack more fields in bxInstruction_c -> this increase bxInstruction size by 4 bytes but I have no way but do it if want to support SSE5 dest override later
|
2008-02-04 21:28:53 +00:00 |
|
Stanislav Shwartsman
|
a2897933a3
|
white space cleanup
|
2008-02-02 21:46:54 +00:00 |
|
Stanislav Shwartsman
|
37fbb82baa
|
Cleanups. Move bxInstruction_c definition to separate file instr.h
|
2008-01-29 17:13:10 +00:00 |
|
Stanislav Shwartsman
|
7b80c5f481
|
I merged and succeded to remove some similar execution functions - less code, less chance for branch misprediction
|
2008-01-25 19:34:30 +00:00 |
|
Stanislav Shwartsman
|
63d8d50cfc
|
code cleanup
|
2008-01-20 20:11:17 +00:00 |
|
Stanislav Shwartsman
|
8c9de8b4db
|
speculative tracing on fetchdecode level
|
2008-01-18 09:36:15 +00:00 |
|
Stanislav Shwartsman
|
d9984bb3a1
|
Eliminate BxResolve call from the heart of cpu loop and move into instructions that really require this calculation. Yes, it blows the code of EVERY CPU method but it has >15% speedup !
|
2008-01-10 19:37:56 +00:00 |
|
Stanislav Shwartsman
|
eee1a9030d
|
a bit simplify and optimize shift instructions
print failed segment info in check_cs - more debug info
|
2007-12-30 20:16:35 +00:00 |
|
Stanislav Shwartsman
|
c3c9c40674
|
Move MaxFetch calculation into fetchdecode - simplify the logic
|
2007-12-22 17:17:40 +00:00 |
|
Stanislav Shwartsman
|
e9a148f9c4
|
lmost last instruction split -> CMOV in 16/32 bit modes
|
2007-12-21 18:24:19 +00:00 |
|
Stanislav Shwartsman
|
c9932e97eb
|
Fixes in resolve.cc -> reduce amount of resolve functions even more
|
2007-12-18 21:41:44 +00:00 |
|
Stanislav Shwartsman
|
fe2e0525da
|
More optimization for string instructions
|
2007-12-17 19:52:01 +00:00 |
|
Stanislav Shwartsman
|
de5838ce80
|
cleanups and fixes for Immediate_IbIb of SSE4A
|
2007-12-16 20:47:10 +00:00 |
|
Stanislav Shwartsman
|
1e843cb462
|
Decode SSE4A
Rework immediate bytes decoding to make it faster
|
2007-12-15 17:42:24 +00:00 |
|
Stanislav Shwartsman
|
fd73390ca5
|
Split 64-bit CMOVcc opcode
|
2007-12-14 22:41:43 +00:00 |
|
Stanislav Shwartsman
|
903f6dea35
|
Split setCC functions - makes code faster and simpler
|
2007-12-14 21:29:36 +00:00 |
|
Stanislav Shwartsman
|
05c7a1e61b
|
Fixed problem with trace cache enabled
String instructions might confise trace cache by finishing instruction execution method without actually completing an instruction (and advancing eip)
|
2007-12-13 18:42:31 +00:00 |
|
Stanislav Shwartsman
|
adda3befd3
|
Trace cache optimization merged
|
2007-12-09 18:36:05 +00:00 |
|
Stanislav Shwartsman
|
4c16dd71a8
|
Fixed compilation error in SMP mode
|
2007-12-07 09:38:42 +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
|
8cfd17202a
|
some simple SSE code optimizations
|
2007-11-27 22:12:45 +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
|
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
|
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
|
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
|
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
|
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
|
57d2d14865
|
Split POP_Ev opcodes
|
2007-11-18 18:49:19 +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
|
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 |
|