Stanislav Shwartsman
|
d841e82d87
|
MOVBE instruction exists only in memory form
|
2011-08-25 21:20:50 +00:00 |
|
Stanislav Shwartsman
|
002c86660a
|
reword all the CPU code in preparation for future CPU speedup implementation.
Bochs emulation can be another 10-15% faster using technique described in paper
"Fast Microcode Interpretation with Transactional Commit/Abort"
http://amas-bt.cs.virginia.edu/2011proceedings/amasbt2011-p3.pdf
|
2011-07-06 20:01:18 +00:00 |
|
Stanislav Shwartsman
|
2f582db722
|
compile less stuff for cpu-level=5
|
2011-06-26 19:15:30 +00:00 |
|
Stanislav Shwartsman
|
1a7d38c28b
|
bswap optimization patch by Heikki Lindholm + cleanup
|
2011-04-19 12:48:06 +00:00 |
|
Stanislav Shwartsman
|
7d80a6ebe0
|
Adding Id and Rev property to all files
|
2011-02-24 21:54:04 +00:00 |
|
Stanislav Shwartsman
|
1bd512e98d
|
split more SSE ops, optimizations in MMX code
|
2010-12-25 17:04:36 +00:00 |
|
Stanislav Shwartsman
|
d60b7c0919
|
rename accessor for opcodeReg() in instruction
|
2010-12-06 21:45:56 +00:00 |
|
Stanislav Shwartsman
|
e0fcc80ec3
|
introduce bswap functions, big endian fix for CPUID
|
2010-09-20 20:43:16 +00:00 |
|
Stanislav Shwartsman
|
e88e168081
|
bswap undefined behavior
|
2010-03-19 10:00:48 +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
|
bd60e0264c
|
change Copyright to Bochs Project
|
2009-12-04 16:53:12 +00:00 |
|
Stanislav Shwartsman
|
6d71bdb785
|
cleanups and optimizations
|
2009-11-02 15:00:47 +00:00 |
|
Stanislav Shwartsman
|
aee1b3d3b8
|
FIxed MOVBE16
|
2009-03-22 21:23: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
|
9929e6ed78
|
- updated FSF address
|
2009-01-16 18:18:59 +00:00 |
|
Stanislav Shwartsman
|
a8adb36dc2
|
Implemented MOVBE Intel Atom(R) instruction
|
2008-08-11 18:53:24 +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
|
709d74728d
|
Call #UD exception directly instead of UndefinedOpcode function - for future use
|
2008-07-13 15:35:10 +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
|
62e3728591
|
preparations for future optimizations - not necessary speedupo now
|
2008-04-03 17:56:59 +00:00 |
|
Stanislav Shwartsman
|
255d512e29
|
Organize bxInstruction fields differently
|
2008-03-31 17:33:34 +00:00 |
|
Stanislav Shwartsman
|
1a59913e2b
|
Fixed BX_INFO message
|
2008-03-27 21:04:39 +00:00 |
|
Stanislav Shwartsman
|
167c7075fb
|
Use fastcall gcc attribute for all cpu execution functions - this pure "compiler helper" optimization brings additional 2% speedup to Bochs code
|
2008-03-22 21:29:41 +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
|
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
|
5d4e32b8da
|
Avoid pointer params for every read_virtual_* except 16-byte SSE and 10-byte x87 reads
|
2007-12-20 20:58:38 +00:00 |
|
Stanislav Shwartsman
|
b516589e4e
|
Changes in write_virtual_* and pop_* functions -> avoid moving parameteres by pointer
|
2007-12-20 18:29:42 +00:00 |
|
Stanislav Shwartsman
|
903f6dea35
|
Split setCC functions - makes code faster and simpler
|
2007-12-14 21:29:36 +00:00 |
|
Stanislav Shwartsman
|
976af56f6d
|
Split bit.cc to 4 files - new files bit16/32/64.cc
|
2007-12-07 10:59:18 +00:00 |
|
Stanislav Shwartsman
|
7ca78b88e9
|
configure/compile changes + small optimizations
|
2007-12-01 16:45:17 +00:00 |
|
Stanislav Shwartsman
|
aa00d33640
|
BITSCAN lazy flags evaluation optimization
|
2007-11-29 21:52:16 +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
|
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
|
8e909508c8
|
a bit faster SETL/SETNL code
|
2007-11-21 22:42:40 +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
|
1e0db62984
|
bit.cc speedup (small)
|
2007-11-18 20:21:34 +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
|
d9e58bd598
|
split11b on opcode tables level - split almost eevery splittable instruction
will be continued
|
2007-11-17 12:44:10 +00:00 |
|
Stanislav Shwartsman
|
42fdd8a3a1
|
During Bochs benchmarking I figured out that hostasm actually slow down the emulation ... so remove this ugly code which also doesn't help :)
speedup flags update for some instructions - idea was taken from DT patch by h.johansson
|
2007-10-21 22:07:33 +00:00 |
|
Stanislav Shwartsman
|
dbb91069f4
|
Added SSE4_2 instructions emulation
|
2007-10-01 19:59:37 +00:00 |
|
Stanislav Shwartsman
|
0dc4badfbb
|
Added SSE4A and SSE4_2 to disassembler
Implemented POPCNT instruction
|
2007-09-19 19:38:10 +00:00 |
|
Stanislav Shwartsman
|
8221fa6838
|
- Fixed zero upper 32-bit part of GPR in x86-64 mode
- CMOV_GdEd should zero upper 32-bit part of GPR register even if the
'cmov' condition was false !
|
2007-01-26 22:12:05 +00:00 |
|
Stanislav Shwartsman
|
aa1a61bfde
|
Add (when needed) or remove (when not needed) x86-64 compilation hack
|
2006-06-26 20:28:00 +00:00 |
|
Stanislav Shwartsman
|
b0e49a9a05
|
Warn if somebody used BSWAP with 16-bit opsize (behavior undefined)
|
2006-05-07 20:56:40 +00:00 |
|
Stanislav Shwartsman
|
20b14aefa6
|
Fix in BSWAP 64-bit mode - allow to use additional R8-R15 registers
Also fixed code duplication story with BSWAP instruction
|
2006-05-07 18:58:47 +00:00 |
|
Stanislav Shwartsman
|
5c3fba4399
|
Support access to SMRAM in memory object
Cleanup in CPU code
|
2006-03-26 18:58:01 +00:00 |
|