Home | History | Annotate | Download | only in include
History log of /src/sys/arch/amd64/include/fpu.h
RevisionDateAuthorComments
 1.14  18-Feb-2014  dsl It seems that firefox includes machine/fpu.h on amd64.
Add the file back so that the firwfox source doesn't have to depend
on the version of netbsd it is being compiled for.
(The i386 version doesn't play the same games in its SIGFPE handler.)
 1.13  11-Feb-2014  dsl Move sys/arch/amd64/amd64/fpu.c and sys/arch/amd64/include/fpu.h
into sys/arch/x86 in preparation for using the same code for i386.
 1.12  07-Feb-2014  dsl Convert the amd64 build to use x86/cpu_extended_state.h so that the fpu
definitions match those of i386.
Mostly just structure and field renames, in addition:
1) process_xmm_to_s87() and process_s87_to_xmm() moved into
x86/convert_xmm_s87.c so they can be used by amd64's netbsd32 code.
2) The linux signal code simplified to use a structure copy for ths fxsave
data - it matches the hardware definition and won't change.
 1.11  11-Dec-2013  dsl Remove the fields that were used to save the i387 fp state on interrupt.
They were written but never read.
Possibly they should be saved for 32 bit processes, but that might be a relic
from real i387 where the fpu was actully asynchronous.
 1.10  01-Dec-2013  christos revert fpu/pcu changes until we figure out what's wrong; they cause random
freezes
 1.9  11-Nov-2013  joerg NetBSD 6.99.26: Switch i386 and amd64 to the x87 default control word
as initial value for new processes. This means that long double
computations get the expected 63bit mantissa. Binaries tagged as
compiled for 6.99.25 and older get the old value.

Add a simple test case to ensure that double and long double computation
are working correctly.
 1.8  23-Oct-2013  drochner Use the MI "pcu" framework for bookkeeping of npx/fpu states on x86.
This reduces the amount of MD code enormously, and makes it easier
to implement support for newer CPU features which require more fpu
state, or for fpu usage by the kernel.
For access to FPU state across CPUs, an xcall kthread is used now
rather than a dedicated IPI.
No user visible changes intended.
 1.7  31-Dec-2012  dsl branches: 1.7.2;
Move the two fields used to save some i387 state on the last fpu trap
into their own sub-structure of the pcb (from 'struct savefpu').
They only (seem) to be used in some code that generates core dumps
for 32bit processes (code that might be broken as well!).
'struct safefpu' is now identical to 'struct fxsave64'. One (or both)
needs extending to support AVX - might need to be dynamically sized.
Removed all the __aligned(16) except for the one in struct pcb itself.
Only the copy used for the fsave instruction need be aligned.
 1.6  15-Dec-2012  dsl Add the offsets and comments for the members of 'struct fxsave64.
Spilt the 'fx_unused2' field into its reserved and available halves.
The latter could be used by the kernel software (cpu won't read/write it).
Remove the __padded from 'struct fxsave64', everything is aligned.
Add a CTASSERT that the size is correct (512).
Remove the unused 'struct oldfsave'.
Everything still builds.
 1.5  16-Apr-2008  cegger branches: 1.5.38; 1.5.48;
use POSIX integer types
 1.4  15-Jan-2008  joerg branches: 1.4.6;
Introduce optional cpu_offline_md to execute MD actions at the end of
cpu_offline. Use this on amd64/i386 to force a FPU save. As this was
triggered by npxsave_cpu/fpusave_cpu not working for a different CPU,
remove the cpu_info argument and adjust npxsave_*/fpusave_* to use bool
for the save.

OK ad@
 1.3  25-Dec-2007  perry Convert many of the uses of __attribute__ to equivalent
__packed, __unused and __dead macros from cdefs.h
 1.2  27-Nov-2007  christos branches: 1.2.2; 1.2.6;
Add aligned(16) in savefpu like the i386 port has. Suggested by Matthias
Drochner.
 1.1  26-Apr-2003  fvdl branches: 1.1.18; 1.1.60; 1.1.78; 1.1.80; 1.1.86;
Rename the x86_64 port to amd64, as this is the actual name used for
the processor family now. x86_64 is kept as the MACHINE_ARCH value,
since it's already widely used (by e.g. the toolchain, etc), and
by other operating systems.
 1.1.86.2  18-Feb-2008  mjf Sync with HEAD.
 1.1.86.1  08-Dec-2007  mjf Sync with HEAD.
 1.1.80.2  23-Mar-2008  matt sync with HEAD
 1.1.80.1  09-Jan-2008  matt sync with HEAD
 1.1.78.1  03-Dec-2007  joerg Sync with HEAD.
 1.1.60.1  03-Dec-2007  ad Sync with HEAD.
 1.1.18.2  21-Jan-2008  yamt sync with head
 1.1.18.1  07-Dec-2007  yamt sync with head
 1.2.6.2  19-Jan-2008  bouyer Sync with HEAD
 1.2.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.2.2.1  26-Dec-2007  ad Sync with head.
 1.4.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.5.48.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.48.1  25-Feb-2013  tls resync with head
 1.5.38.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.38.1  23-Jan-2013  yamt sync with head
 1.7.2.1  18-May-2014  rmind sync with head

RSS XML Feed