Rewrite the kernel FPU handling code. The new code saves the FPU state
authorkettenis <kettenis@openbsd.org>
Sat, 1 Jan 2022 18:52:36 +0000 (18:52 +0000)
committerkettenis <kettenis@openbsd.org>
Sat, 1 Jan 2022 18:52:36 +0000 (18:52 +0000)
commitb83a19dd9c2195f11121de7fba7a36fcd6a004f2
tree7e0617f63eec535b144315684879d2909f2a4704
parentf2e739fdc926c448199bd1c264bdb8bcc172f7da
Rewrite the kernel FPU handling code.  The new code saves the FPU state
in cpu_switch() instead of at the kernel edge and gets rid of the FPU
state tracking in struct cpu_info and struct pcb.  This fixes the random
crashes seen with SMP kernels on Apple M1.

ok patrick@
17 files changed:
sys/arch/arm64/arm64/cpuswitch.S
sys/arch/arm64/arm64/cryptox.c
sys/arch/arm64/arm64/exception.S
sys/arch/arm64/arm64/fpu.c [new file with mode: 0644]
sys/arch/arm64/arm64/machdep.c
sys/arch/arm64/arm64/process_machdep.c
sys/arch/arm64/arm64/syscall.c
sys/arch/arm64/arm64/trap.c
sys/arch/arm64/arm64/vfp.c [deleted file]
sys/arch/arm64/arm64/vm_machdep.c
sys/arch/arm64/conf/files.arm64
sys/arch/arm64/dev/efi.c
sys/arch/arm64/include/armreg.h
sys/arch/arm64/include/cpu.h
sys/arch/arm64/include/fpu.h [new file with mode: 0644]
sys/arch/arm64/include/pcb.h
sys/arch/arm64/include/vfp.h [deleted file]