freebsd-skq/sys/i386/linux
John Baldwin 824fc46089 MFamd64: Add support for extended FPU states on i386. This includes
support for AVX on i386.
- Similar to amd64, move the FPU save area out of the PCB and instead
  store saved FPU state in a variable-sized buffer after the PCB on the
  stack.
- To support the variable PCB location, alter the locore code to only use
  the bottom-most page of proc0stack for init386().  init386() returns
  the correct stack pointer to locore which adjusts the stack for thread0
  before calling mi_startup().
- Don't bother setting cr3 in thread0's pcb in locore before calling
  init386().  It wasn't used (init386() overwrote it at the end) and
  it doesn't work with the variable-sized FPU save area.
- Remove the new-bus attachment from npx.  This was only ever useful for
  external co-processors using IRQ13, but those have not been supported
  for several years.  npxinit() is now called much earlier during boot
  (init386()) similar to amd64.
- Implement PT_{GET,SET}XSTATE and I386_GET_XFPUSTATE.
- npxsave() is now only called from context switch contexts so it can
  use XSAVEOPT.

Differential Revision:	https://reviews.freebsd.org/D1058
Reviewed by:	kib
Tested on:	FreeBSD/i386 VM under bhyve on Intel i5-2520
2014-11-02 22:58:30 +00:00
..
imgact_linux.c Add a mmap flag (MAP_32BIT) on 64-bit platforms to request that a mapping use 2013-09-09 18:11:59 +00:00
linux_dummy.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_genassym.c
linux_ipc64.h - Add support for IPC_64 extensions into shmctl(2), semctl(2) and msgctl(2); 2002-10-11 11:43:09 +00:00
linux_locore.s Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
linux_machdep.c Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00
linux_proto.h Re-gen after r271743 implementing most of 2014-09-18 08:40:00 +00:00
linux_ptrace.c MFamd64: Add support for extended FPU states on i386. This includes 2014-11-02 22:58:30 +00:00
linux_support.s
linux_syscall.h Re-gen after r271743 implementing most of 2014-09-18 08:40:00 +00:00
linux_syscalls.c Re-gen after r271743 implementing most of 2014-09-18 08:40:00 +00:00
linux_sysent.c Re-gen after r271743 implementing most of 2014-09-18 08:40:00 +00:00
linux_systrace_args.c Re-gen after r271743 implementing most of 2014-09-18 08:40:00 +00:00
linux_sysvec.c MFamd64: Move extern declaration of _ucodesel and _udatasel to 2014-11-02 21:40:32 +00:00
linux.h Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00
Makefile add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls 2011-03-12 08:51:43 +00:00
syscalls.conf add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls 2011-03-12 08:51:43 +00:00
syscalls.master Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00