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
457152334e
step2 in XSAVE implementation
2008-02-13 16:45:21 +00:00
Stanislav Shwartsman
a2897933a3
white space cleanup
2008-02-02 21:46:54 +00:00
Stanislav Shwartsman
9f4dd0df8a
Fixed BX_ERROR message in LTR instruction
2008-01-29 06:23:49 +00:00
Stanislav Shwartsman
932d758547
Do not try to update access/dirty bit if it was already set
2008-01-20 17:46:02 +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
838fb2a048
Fixing V2008 warnings - they found a bug in sse_pfp.cc !
2007-12-23 17:21:28 +00:00
Stanislav Shwartsman
d830c301cf
Fixed 64-bit versions of LOOP instructions, some cleanups
2007-12-21 17:30:49 +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
af9a14ff3b
cleanups
2007-11-22 21:52:55 +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
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
26848ad07d
Change ARPL error message to BX_DEBUG (happens too offen in win98)
2007-10-12 19:45:12 +00:00
Stanislav Shwartsman
dbb91069f4
Added SSE4_2 instructions emulation
2007-10-01 19:59:37 +00:00
Stanislav Shwartsman
a0d0de9fd4
Fixed ARPL issue mentioned in
...
Attacks on Virtual Machine Emulators
document by Symantec
2007-09-30 18:47:41 +00:00
Stanislav Shwartsman
e812f81e7b
Fixes in zero upper ECX
2007-09-25 16:11:32 +00:00
Stanislav Shwartsman
c184a3a2ba
Removed redundant mem-only checks - handled in fetchdecode now
2007-03-23 14:50:45 +00:00
Stanislav Shwartsman
b8787fd5a7
Some code cleanups and warning fixes
2007-03-14 21:15:15 +00:00
Stanislav Shwartsman
c24627c00f
Implemented CLFLUSH instruction
...
Set of minor fixes for correctness
2007-01-28 21:27:31 +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
f8003098b1
Rename SSE4 to SSE3E to match intel docs. SSE4 coming later ;)
...
Fixed "last prefix" for REX in 64-bit mode
2007-01-25 19:09:41 +00:00
Stanislav Shwartsman
0e991964fd
incorrectly committed debug code
2007-01-13 10:45:32 +00:00
Stanislav Shwartsman
dd00bc66d0
Fixed disasm in 64bit mode, added new accessor for printing 64bit values
2007-01-13 10:43:31 +00:00
Stanislav Shwartsman
9db896d100
minor x86_64 fixes and cleanups
2007-01-12 22:47:21 +00:00
Stanislav Shwartsman
fdac9efa9b
Fixed ton of code duplication.
...
Do not save/restore XMM8-XMM15 not in 64-bit mode
2006-08-31 18:18:17 +00:00
Stanislav Shwartsman
54fb3b769a
Fixed LDT 16-bit limit, must support all 32-bit values.
2006-08-22 19:06:03 +00:00
Stanislav Shwartsman
49d7b4614f
Fixed another bug generator - duplication between descriptor type field and four descriptor cache bits
2006-06-12 16:58:27 +00:00
Stanislav Shwartsman
8b55085c76
Merge tss286 and tss386 segment descriptor cache fields to one structure
2006-05-21 20:41:48 +00:00
Stanislav Shwartsman
5c3fba4399
Support access to SMRAM in memory object
...
Cleanup in CPU code
2006-03-26 18:58:01 +00:00
Stanislav Shwartsman
7b6c2587a9
Now devices could be compiled separatelly from CPU
...
Averything that required cpu.h include now has it explicitly and there are a lot of files not dependant by CPU at all which will compile a lot faster now ...
2006-03-06 22:03:16 +00:00
Stanislav Shwartsman
bf855506a3
Change set_FLAGS(0) by clear_FLAG ()
...
set_FLAGS(1) by assert_FLAG()
2005-10-15 21:01:36 +00:00
Volker Ruppert
fa68f44d94
- compilation error fixed
2005-10-02 15:26:51 +00:00
Stanislav Shwartsman
7869ab425f
LTR should #GP when loading NULL selector
...
fixed check for SYSENTER/SYSEXIT instructions
according to new Intel references
2005-10-01 07:47:00 +00:00
Stanislav Shwartsman
b28ed3be69
Fix LDT.limit < 7 check
...
Indent for protect_ctrl.cc code
2005-08-21 18:23:36 +00:00
Stanislav Shwartsman
169fa0c574
Clearify the code. x86-64 code always running in pmode so it is not needed to check if we are in protected mode everytime
2005-07-10 20:32:32 +00:00
Stanislav Shwartsman
a9dd851fd6
Fixed several PANIC cases:
...
the PANIC message TSS.limit < 103 should never appear anymore
2005-06-22 18:13:45 +00:00
Stanislav Shwartsman
da9091f04a
Fixed compatability mode execution bug, compatability mode and long mode should be treated as protected for all protected_mode() checks
2005-03-29 21:37:06 +00:00
Kevin Lawton
4e03c4448c
Added some comment tags so that a script can pull out relevant parts
...
of the decoder to test it in standalone mode. A few lines in cpu.h
were re-arranged to make this easy, but no real lines of code were
changed or generated.
Changed a few PANICs to INFOs after testing corresponding cases.
2005-03-22 18:19:55 +00:00
Stanislav Shwartsman
e3bd4e2b34
Update recent closed byg reports
...
Remove redundant debug prints in VERR instruction emulation
2005-03-13 18:20:26 +00:00
Stanislav Shwartsman
031cd64827
More code review - changing BX_PANIC to BX_ERROR where implentation matches Intel docs. Also solved two cases when TS exception generated instead of GPF
2005-03-04 21:03:22 +00:00
Stanislav Shwartsman
c583a6f9cf
move segments and descriptors definitions and macroses for new descriptor.h
2005-02-27 17:41:45 +00:00
Stanislav Shwartsman
bbcc5e0e3a
Split BOUND instruction to two different according to operand size
...
Coding style change
2005-01-28 20:50:48 +00:00
Stanislav Shwartsman
75e0c5b421
Little speed optimizations in cpu_loop function
...
change apic classes to more c++ friendly
2004-10-16 19:34:17 +00:00
Stanislav Shwartsman
4988a098f5
Small optimizations
2004-10-03 21:52:10 +00:00
Stanislav Shwartsman
a1f830d429
Implemented FAST lazy flags version for logic instructions.
...
Small code cleanup/simplification for others.
2004-08-13 20:00:03 +00:00
Stanislav Shwartsman
0c47a35c99
Change BX_PANIC to BX_INFO if the behaviour exactly matches Intel docs
2004-04-17 17:10:58 +00:00
Stanislav Shwartsman
f50f664b10
* fixed convert float2int SSE instructions (bugfix in softfloat lib)
...
* set default .bochssrc IPS to 10M
2004-03-08 05:29:14 +00:00
Stanislav Shwartsman
ac20b6405a
- FXSAVE/FXRSTOR instructions should be available in P6 mode
...
- Added second UD2 opcode to fetchdecode
- Added RDPMC instruction to fetchdecode
- 'changes' updated
2003-10-24 18:34:16 +00:00