summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/fpu.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove advertising clause from University of California Regent's license,imp2004-04-051-4/+0
| | | | | | per letter dated July 22, 1999. Approved by: core
* We can simplify a lot of things now that we don't have to worry aboutpeter2004-01-281-1/+0
| | | | hardware bugs on external 386 cpus and now that we can depend on SSE.
* Switch from having a fpu "device" to something that is more like thepeter2003-11-081-1/+1
| | | | integrated part of the cpu core that it is.
* The great s/npx/fpu/gipeter2003-11-081-14/+14
|
* Go back to 64 bit precision for fadd/fsub/fsqrt etc. This is because onpeter2003-07-221-8/+9
| | | | | | | AMD64, gcc (and the ABI) expects the x87 unit to be running in 80/64 mode (not 64/53) so that it can use it for 'long double' operations. It takes the expected precision differences into account when generating code.
* Include the MXCSR initial values, based on the AMD docs. This filepeter2003-05-091-0/+2
| | | | | | should really be renamed to fpu.h and npx.c to fpu.c since its part of the core architecture on amd64 systems, not an isa 'numeric processor extension'.
* Commit MD parts of a loosely functional AMD64 port. This is based onpeter2003-05-011-58/+15
| | | | | | | | | | | | | | | | | | | | | | a heavily stripped down FreeBSD/i386 (brutally stripped down actually) to attempt to get a stable base to start from. There is a lot missing still. Worth noting: - The kernel runs at 1GB in order to cheat with the pmap code. pmap uses a variation of the PAE code in order to avoid having to worry about 4 levels of page tables yet. - It boots in 64 bit "long mode" with a tiny trampoline embedded in the i386 loader. This simplifies locore.s greatly. - There are still quite a few fragments of i386-specific code that have not been translated yet, and some that I cheated and wrote dumb C versions of (bcopy etc). - It has both int 0x80 for syscalls (but using registers for argument passing, as is native on the amd64 ABI), and the 'syscall' instruction for syscalls. int 0x80 preserves all registers, 'syscall' does not. - I have tried to minimize looking at the NetBSD code, except in a couple of places (eg: to find which register they use to replace the trashed %rcx register in the syscall instruction). As a result, there is not a lot of similarity. I did look at NetBSD a few times while debugging to get some ideas about what I might have done wrong in my first attempt.
* At great personal risk, add a __packed and __aligned(x) define thatpeter2002-09-231-1/+1
| | | | | | | | | | expand to __attribute__((packed)) and __attribute__((aligned(x))) respectively. Replace the handful of gcc-ism's that use __attribute__((aligned(16))) etc around the kernel with __aligned(16). There are over 400 __attribute__((packed)) to deal with, that can come later. I just want to use __packed in new code rather than add more gcc-ism's.
* Add kernel support needed for the KSE-aware libpthread:mini2002-09-161-4/+7
| | | | | | | | - Maintain fpu state across signals. - Save and restore FPU state properly in ucontext_t's. Reviewed by: deischen, julian Approved by: -arch
* Remove __P.alfred2002-03-201-5/+5
|
* KSE Milestone 2julian2001-09-121-1/+1
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* style(9) the structure definitions.obrien2001-09-051-3/+3
|
* Activate SSE/SIMD. This is the extra context switching support thatpeter2001-07-121-1/+37
| | | | | | | | | | | | | | | we are required to do if we let user processes use the extra 128 bit registers etc. This is the base part of the diff I got from: http://www.issei.org/issei/FreeBSD/sse.html I believe this is by: Mr. SUZUKI Issei <issei@issei.org> SMP support apparently by: Takekazu KATO <kato@chino.it.okayama-u.ac.jp> Test code by: NAKAMURA Kazushi <kaz@kobe1995.net>, see http://kobe1995.net/~kaz/FreeBSD/SSE.en.html I have fixed a couple of style(9) deviations. I have some followup commits to fix a couple of non-style things.
* Convert npx interrupts into traps instead of vice versa. This is muchbde2001-05-221-0/+1
| | | | | | | | simpler for npx exceptions that start as traps (no assembly required...) and works better for npx exceptions that start as interrupts (there is no longer a problem for nested interrupts). Submitted by: original (pre-SMPng) version by luoqi
* Declare or #define per-cpu globals in <machine/globals.h> in all cases.bde2000-10-271-6/+0
| | | | The i386 UP case was messily different.
* Change the default FPU control word so that exceptions for newcracauer2000-03-101-34/+4
| | | | | | | processes are now masked until set by fpsetmask(3). Submitted by: bde Approved by: jkh, bde
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-1/+1
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Enable vmspace sharing on SMP. Major changes are,luoqi1999-04-281-1/+5
| | | | | | | | | | | | | | | | | - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
* Removed unused #includes and a stale forward declaration.bde1997-07-201-6/+1
|
* Preliminary support for per-cpu data pages.peter1997-06-221-1/+3
| | | | | | | | | | | | | | | | This eliminates a lot of #ifdef SMP type code. Things like _curproc reside in a data page that is unique on each cpu, eliminating the expensive macros like: #define curproc (SMPcurproc[cpunumber()]) There are some unresolved bootstrap and address space sharing issues at present, but Steve is waiting on this for other work. There is still some strictly temporary code present that isn't exactly pretty. This is part of a larger change that has run into some bumps, this part is standalone so it should be safe. The temporary code goes away when the full idle cpu support is finished. Reviewed by: fsmp, dyson
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up thebde1995-11-041-2/+1
| | | | | | | | | | misplaced extern declarations (mostly prototypes of interrupt handlers) that this exposed. The prototypes should be moved back to the driver sources when the functions are staticalized. Added idempotency guards to <machine/conf.h>. "ioconf.h" can't be included when building LKMs so define a wart in bsd.kmod.mk to help guard against including it.
* Fix benign type mismatches in isa interrupt handlers. Many returned intbde1995-09-191-2/+2
| | | | instead of void.
* Killed some unused stuff inherited from Bill Jolitz. Note that sincedg1995-08-171-8/+1
| | | | | | | this changes the size of the pcb struct, gdb will need to be rebuilt or debugging won't work correctly. Reviewed by: Bruce Evans
* Replace sv_ex_tw by padding (it is no longer used; the tag word in sv_envbde1995-01-031-8/+13
| | | | | | | | is valid). Expand comment about bogus padding for emulators. Update prototpe for npxinit().
* Declare all functions exported by the npx driver.bde1994-11-051-4/+17
| | | | Uniformize idempotency ifdefs.
* __386BSD__ -> __FreeBSD__jkh1994-11-041-2/+2
| | | | | | I know that many of these entries are bogus and need to be revisited, but let's get the tree working again for now and then do a pass through looking at all the __FreeBSD__ entries, shall we?
* Submitted by: Bruce Evansats1994-08-141-6/+4
| | | | | | | Delete the ifdef GPL_EMULATE case here and made the padding work for both types of emulators so that there is no longer a need to compile ps and friends new if you are using the GPL math emulator instead the normal one.
* Deleted on ifdef dontdefgclarkii1994-04-291-4/+6
| | | | | Added ifdef for GPL_MATH_EMULATE so we get the extra padding that is needed in the save87 struct.
* Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, somergrimes1993-10-161-9/+2
| | | | minor cleanup. Added $Id$ to files that did not have any version info, etc
* Initial import, 0.1 + pk 0.2.4-B1rgrimes1993-06-121-0/+146
OpenPOWER on IntegriCloud