Commit Graph

126 Commits

Author SHA1 Message Date
Stanislav Shwartsman
f8c3968d42 Changes list made after CVS service crash:
- Fixed critical bug in CPU code added with one of the prev commits
  - Disasm support for SSE4
  - Rename PNI->SSE3 everywhere in the code
  - Correctly decode, disassemble and execute 'XCHG R8, rAX' x86-64 instruction
  - Correctly decode, disassemble and execute multi-byte NOP 0F F1 opcode
  - Fixed ENTER and LEAVE instructions in x86-64 mode
  - Added ability to turn ON instruction trace, only GUI support is missed.
    Instruction trace could be enabled if Bochs was compiled with disasm
  - More changes Bit32u -> bx_phy_address
  - Complete preliminary implementation of SMM in Bochs, SMI is still PANICs but if you press 'continue' everything should work OK
  - Small code cleanup
  - Update CHANGES and user docs
2006-04-05 17:31:35 +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
7cfa31492c Removed --enable-pni configure option, to compile with PNI use
--enable-sse=3 instead (Stanislav Shwartsman)
2006-02-20 19:28:57 +00:00
Stanislav Shwartsman
765951b1a5 Fix problem in FLDENV/FSTENV instructions 2006-01-29 17:37:23 +00:00
Stanislav Shwartsman
356cb066d4 Reverting back last commit from Kevin.
Both Intel and AMD docs say that fldenv should fault on pending exceptions.
(#MF If an unmasked x87 floating-point exception was pending)
2006-01-28 21:31:20 +00:00
Kevin Lawton
2b45a94893 fldenv does not fault on pending exceptions. Reversed the order of
the checks.
2006-01-28 20:52:08 +00:00
Kevin Lawton
88183335e9 Patch "info fpu":
o uses FPRi instead of ST(i)" (which was not quite right, as ST(0) was not the FPR at the TOP but alwasy fpr0).
  o shows the TOP, and the tag as {s,d,e,?}.
2006-01-21 00:05:30 +00:00
Stanislav Shwartsman
ab4367604c Fixed compilation error when fpu-enabled and cpu-level=3 2005-08-13 17:40:41 +00:00
Stanislav Shwartsman
afe3ff691d Another fix for FPU tag word restore in FXRESTOR instruction (the tags were assigned to incorrect registers)
Fixed FPU print state status word printing (printed partial status instead of normal status word)
2005-06-18 20:46:08 +00:00
Stanislav Shwartsman
d10731f162 Update my e-mail in source files
Update committed SF patches in changes
2005-05-12 18:07:48 +00:00
Stanislav Shwartsman
e01789b276 Add CVS header for FPU files 2005-03-20 21:19:38 +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
f45316a2b1 Change possibly broken BX_MIN_BIT16S to its real value 2005-02-16 21:36:16 +00:00
Stanislav Shwartsman
acd1d8f14f Merged patch
[1104695] msvc6 compatibility update (Royce Mitchell III)
2005-01-19 18:21:40 +00:00
Volker Ruppert
02ae558db8 - removed old unused code designed for a save/restore feature
- fixed pcidev targets in iodev/Makefile.in
- updated all Makefile dependencies using a default setup (.conf.linux).
  TODO: dependencies should be generated at compile time since they depend on
  the config settings
2004-12-13 19:10:38 +00:00
Stanislav Shwartsman
1a6656ce91 Fixed compilation warnings (g++, -Wall)
Improve speed and precision of FPATAN FPU instruction
2004-11-04 22:41:24 +00:00
Stanislav Shwartsman
283f9ae5d2 Simplify cpu.h
Speedup FYL2X and FYL2XP1 instructions
2004-09-14 20:19:54 +00:00
Stanislav Shwartsman
a7eef1d526 Significanly improve accuracy of FYL2X and FYL2XP1
Optimize FMUL instructions
2004-07-31 20:19:38 +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
8d1989fb25 Fix exceptions mismatch in FXTRACT instruction 2004-07-24 19:26:50 +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
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
26664e8044 optimize 2004-06-26 12:35:48 +00:00
Stanislav Shwartsman
becac7f01d Fixed denirmal arguments for FADD/FSUB instructions 2004-06-25 20:02:41 +00:00
Stanislav Shwartsman
2a0a361298 Implemented precision lost up indication in floating point status word 2004-06-25 18:51:28 +00:00
Stanislav Shwartsman
1a1e237599 return back copyright info 2004-06-22 19:10:06 +00:00
Stanislav Shwartsman
afecedcb1b improve occuracy of FYL2XP1 instruction 2004-06-22 18:58:33 +00:00
Stanislav Shwartsman
5873b26a82 Speed up compilation process.
bochs.h already not include iodev.h which reduces compilation dependences for almost all cpu and fpu files, now cpu files will not be recompiled if iodev includes was changed
2004-06-19 15:20:15 +00:00
Stanislav Shwartsman
17e28e0f66 Fix merge error
Update CHANGES
2004-06-18 15:14:50 +00:00
Stanislav Shwartsman
cfa2da1ba7 Delete unused files 2004-06-18 14:21:25 +00:00
Stanislav Shwartsman
5c5b556f24 Merge softfloat-fpu-implementation_ver4_branch branch 2004-06-18 14:11:11 +00:00
Volker Ruppert
25582ed29d - fixed cpu/Makefile.in after renaming file
- reg_ld_str.c: fixed regparm argument (bugfix found in SuSE 9.1 sources of Bochs 2.1.1)
2004-05-17 19:50:43 +00:00
Stanislav Shwartsman
3274e0dd12 Commit patch
[ 950905 ] Do not PANIC on rare, bad input from user-mode
by h.johansson
with little changes and fixes
2004-05-10 21:05:51 +00:00
Stanislav Shwartsman
cf6d1b8bd9 port some changes from spftfloat-fpu branch to the MT 2004-04-09 15:34:59 +00:00
Stanislav Shwartsman
a8b57836a2 all these files should be in branch only for now 2004-04-09 12:52:49 +00:00
Stanislav Shwartsman
04124133c0 freeze softfloat-fpu-ver3 branhc and open it for free testing
I will continue the development in new softfloat-fpu-ver4 branch
Current version already implements ALL FPU instructions except
   FSIN, FCOS, FSINCOS, FPTAN, FPATAN, FYL2XP1, F2XM1, FYL2X
I think it solved all currently reported bugs and feature requests
related to FPU code.
Please write your own test programms and test the implemntation in all ways you can.
Thanks,
Stanislav
2004-04-09 12:29:50 +00:00
Stanislav Shwartsman
78a2976b49 backport some softfloat changes to CVS 2004-03-19 18:11:10 +00:00
Stanislav Shwartsman
1f77d0c844 clean fpu code 2004-03-06 13:33:49 +00:00
Stanislav Shwartsman
f5316dad70 fixed bug in HADDPD/HSUBPD instructions 2004-03-05 09:19:58 +00:00
Stanislav Shwartsman
ab4915925c update dependencies in fpu makefile 2004-02-21 13:02:43 +00:00
Daniel Gimpelevich
b19967ca22 Allow compiling with gcc 2.95.2 2004-02-20 01:41:59 +00:00
Daniel Gimpelevich
d5a0677b06 Allow compiling with gcc 2.95.2 2004-02-20 01:30:52 +00:00
Daniel Gimpelevich
1c295d9654 Allow compiling with gcc 2.95.2 2004-02-20 00:54:22 +00:00
Stanislav Shwartsman
196aee98d7 Fix for FWAIT instruction 2004-02-12 21:34:28 +00:00
Stanislav Shwartsman
8e88595465 removed fpu reentrant checking (we are know that FPU is not reentrant)
fixed code duplication in fpu_tags.c
2004-02-11 19:40:25 +00:00
Daniel Gimpelevich
72f787b555 Made to compile on MacOS9 2004-02-10 00:23:12 +00:00
Daniel Gimpelevich
126971af49 Made to compile on MacOS9 2004-02-06 22:28:00 +00:00
Daniel Gimpelevich
fff74a6f83 Fixed incompatibility with gcc3.3, I think. 2003-11-28 15:07:29 +00:00
Stanislav Shwartsman
902f655bb7 Fixed compilation error 2003-11-25 19:34:34 +00:00