Stanislav Shwartsman
3adc5c8659
Fix lock prefix for XOR instruction in 64-bit mode
2004-10-08 19:07:18 +00:00
Stanislav Shwartsman
d1af05cbe2
Fix typo in stack64
2004-10-06 20:10:01 +00:00
Stanislav Shwartsman
6a9e8e6011
Drop unnecessary warning
2004-10-05 20:25:06 +00:00
Stanislav Shwartsman
4988a098f5
Small optimizations
2004-10-03 21:52:10 +00:00
Stanislav Shwartsman
a28a2c6ce1
Added comments
2004-10-03 20:25:19 +00:00
Stanislav Shwartsman
a21018e1db
Fixed bug
...
[ 766020 ] info registers / dump_cpu get old eflags
2004-09-30 16:50:03 +00:00
Stanislav Shwartsman
c9bc4eaf02
1. add comments to CPUID instruction
...
2. small cleanup
2004-09-26 20:29:04 +00:00
Stanislav Shwartsman
3f096fdb9f
Fix FISTTP instruction opcode table
2004-09-21 21:19:59 +00:00
Stanislav Shwartsman
040be015d8
1. Added required GP(0) exception when setting conficting flags in CR0
...
2. APIC disabled compilation error fixed
2004-09-21 20:19:19 +00:00
Stanislav Shwartsman
b6657b1322
NX feature still not implemented in Bochs.
...
The change forces CPUID do not report bit 20 (NX bit support)
May be some OS that really checks it will boot better now
2004-09-17 21:01:50 +00:00
Stanislav Shwartsman
760a195c9d
* Fix LOCK prefix handling for x86-64
...
* Split BT*_EvGv functions to 3 different function according to exec mode
2004-09-17 20:47:19 +00:00
Stanislav Shwartsman
c780a15e6f
dos2unix for apic.h
2004-09-15 22:02:19 +00:00
Stanislav Shwartsman
bbd55fe16f
Merge and commit patch.apic-zwane from CVS patches directory.
...
the patch release notes by Zwane:
o Define symbols for constants like
o APIC arbitration
o Processor priority
o Various interrupt delivery fixes
o Focus processor checking
o ExtINT delivery
I need to release this now so that i don't fall too far behind CVS, when
it was part of the bochs-smp patch it could boot 2.4.18 4way. Apologies
for the whitespace changes.
Also remove patch.apic-ppr-zwane patch because it already included in
patch.apic-zwane.
I hope it will help to boot x86-64 or cmp systems required missed APIC
features !
2004-09-15 21:48:57 +00:00
Stanislav Shwartsman
283f9ae5d2
Simplify cpu.h
...
Speedup FYL2X and FYL2XP1 instructions
2004-09-14 20:19:54 +00:00
Stanislav Shwartsman
6cdb42d909
Little bit optimize memory access functions. Now values are calculated only if they actually needed.
2004-09-13 20:48:11 +00:00
Stanislav Shwartsman
fc631037ff
remove obsolete comments from fetchdecode
2004-09-06 20:22:39 +00:00
Stanislav Shwartsman
ce459276c3
Fixed problem in previous commit ...
2004-09-04 20:19:39 +00:00
Stanislav Shwartsman
3916754e30
speedup and cleanup
2004-09-04 19:37:37 +00:00
Stanislav Shwartsman
6dc8a1cafd
Very small code cleanup
2004-09-04 18:22:22 +00:00
Stanislav Shwartsman
193c7332aa
1. Small optimization for lazy_flags.cc
...
2. Merge patch 1013516
Avoid invalidate_prefetch_q on enter, leave and cpuid
2004-09-04 10:21:28 +00:00
Stanislav Shwartsman
75006eed8a
Fix MUL/IMUL instructions flags handling
2004-08-31 19:43:58 +00:00
Stanislav Shwartsman
016207b222
Commented problematic check in misc_mem.cc
...
Implemnted lazy-flags and undocumented flags handling for IMUL instructions
2004-08-30 21:47:24 +00:00
Stanislav Shwartsman
77b3886f8b
Cleanup and optimize
2004-08-28 08:41:46 +00:00
Stanislav Shwartsman
8953bfaffb
Fixed flags handling for SHLD and rotate instrructions
2004-08-27 20:13:32 +00:00
Stanislav Shwartsman
27897c925e
Fix undocumented flags handling for SHL instruction
...
remove invalidate_prefetch_q from CPUID
2004-08-27 18:43:23 +00:00
Stanislav Shwartsman
f2294e7c29
LAZY-FLAGS for MUL instructions
...
undocumented flags handling for MUL instructions
2004-08-26 20:37:50 +00:00
Stanislav Shwartsman
fcc54c7f82
Add missed flags modification
2004-08-18 21:38:50 +00:00
Stanislav Shwartsman
1f5aa2696f
Fix compilation errors ;)
2004-08-18 21:29:07 +00:00
Stanislav Shwartsman
8c618be951
Fix comments
2004-08-18 20:49:31 +00:00
Stanislav Shwartsman
b370a417a4
Optimize lazy-flags for ADC and SBB instructions
2004-08-18 20:47:35 +00:00
Stanislav Shwartsman
729e0abd2a
Fixed bug [ 912496 ] IDIV can cause simulator divide error
2004-08-18 19:27:52 +00:00
Stanislav Shwartsman
571617bcda
Optimize lazy flags for NEG instruction
...
Removed duplicate flags modification in CMPXCHG instruction
2004-08-17 17:34:47 +00:00
Stanislav Shwartsman
231cd533c6
1. Update changes
...
2. Fix lazy_flags duplicate instruction patterns
2004-08-16 20:18:01 +00:00
Stanislav Shwartsman
c2b7f183af
more correct implementation
2004-08-15 20:31:27 +00:00
Stanislav Shwartsman
eefdcece6f
Speed-up BTC instruction
...
Speed-up SAR instruction with implementing lazy-flags for it
2004-08-15 20:12:05 +00:00
Stanislav Shwartsman
12b68ede54
XADD and ADD instructions have same flags modification rules - remove redundant switch case
2004-08-14 20:44:48 +00:00
Stanislav Shwartsman
88a19a8594
Speedup lazy-flags for NEG instruction
2004-08-14 20:09:22 +00:00
Stanislav Shwartsman
1b7b791493
Speedup lazy-flags for INC and DEC instructions
2004-08-14 20:00:24 +00:00
Stanislav Shwartsman
1732e54baa
Fixed undocumented flags handling for some instructions.
...
Bugfix for CF flag handling for SHL64 instruction
2004-08-14 19:34:02 +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
5de51f67d9
Prepare lazy flags macroses for more efficient lazy flags handling
2004-08-11 21:26:23 +00:00
Stanislav Shwartsman
8f0cf91fff
This commit is the first commit in long series of changes the have several purposes:
...
1. Review and commit patch
[ 896733 ] Lazy flags, for more instructions, only 1 src op
May be partially, but I hope to get all ideas from patch in
2. Get Bochs speedup after lazy flags optimization
3. Most important for me: improve correctness of emulation by handling several
undocumented EFLAGS modifications. And finally pass
UFLAGS - Undefined Flags Test v 3.0
Copyright (C) Potemkin's Hackers Group (PHG) 1989,1995
The test still fails on > 50% of its checks.
2004-08-09 21:28:47 +00:00
Stanislav Shwartsman
789ed4da04
Removed debug print
2004-07-29 20:30:14 +00:00
Stanislav Shwartsman
f9bd2b74be
1. Fixed bug in FSUB instruction
...
2. Fixed bug
[ 989478 ] I-Cache and undefined Instruktions
The L4 microkernel uses an undefined instruction to
trap for a special requests into the kernel (LOCK NOP).
The handler fixes this up and gives the user a special
code page with syscall stubs. If you're not using the
I-Cache optimization everthing works find on bochs. But
if you enable the I-Cache (--enable-icache), then the
undefined opcode exception is thrown only once for ever
virtual address it occurs. See the demodisk of the
L4KA::pistachio
(http://www.l4ka.org/projects/pistachio/download.php ).
In this case the pingpong benchmark of this demo is of
interest. Everything runs fine until the program tries
to spawn a new task for its measurements. This new task
shares the code of the creating program. But the new
task stops executing at the undefined instruction
explained above and no exception is thrown.
2004-07-29 20:15:19 +00:00
Stanislav Shwartsman
50aaf8ec6f
Implemented FFREEP 287+ compatability instruction
2004-07-15 19:45:33 +00:00
Stanislav Shwartsman
79b1cfdc1c
removed unused code
2004-07-12 19:20:55 +00:00
Stanislav Shwartsman
ddc6c33887
BX_PANIC replaced by BX_INFO
2004-07-08 20:15:23 +00:00
Stanislav Shwartsman
02dec84af9
Fix FXSAVE/FXRSTOR instructions exceptions handling
2004-07-03 11:02:43 +00:00
Stanislav Shwartsman
cc61e5d5d5
Leave aligment in floatx80 reg to compiler.
...
CPU code no longer assume that floatx80 register is 16-byte aligned
2004-07-02 20:24:47 +00:00
Stanislav Shwartsman
2a0a361298
Implemented precision lost up indication in floating point status word
2004-06-25 18:51:28 +00:00