824fc46089
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 |
||
---|---|---|
.. | ||
imgact_linux.c | ||
linux_dummy.c | ||
linux_genassym.c | ||
linux_ipc64.h | ||
linux_locore.s | ||
linux_machdep.c | ||
linux_proto.h | ||
linux_ptrace.c | ||
linux_support.s | ||
linux_syscall.h | ||
linux_syscalls.c | ||
linux_sysent.c | ||
linux_systrace_args.c | ||
linux_sysvec.c | ||
linux.h | ||
Makefile | ||
syscalls.conf | ||
syscalls.master |