diff options
author | ian <ian@FreeBSD.org> | 2014-03-09 03:00:03 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-03-09 03:00:03 +0000 |
commit | fddbc87fe1aceed4f6e19423f2198de2555e3771 (patch) | |
tree | abbbaa374dc33841a853e8379d0783e36b54a2a3 /sys/arm/include/pcpu.h | |
parent | 3b83a35d4d9715af0dbe0d2898339d5e100573da (diff) | |
download | FreeBSD-src-fddbc87fe1aceed4f6e19423f2198de2555e3771.zip FreeBSD-src-fddbc87fe1aceed4f6e19423f2198de2555e3771.tar.gz |
Rework the VFP code that handles demand-based save and restore of state.
The old code was full of complexity that would only matter if the
kernel itself used the VFP hardware. Now that's reduced to either killing
the userland process or panicking the kernel on an illegal VFP instruction.
This removes most of the complexity from the assembler code, reducing it
to just calling the save code if the outgoing thread used the VFP.
The routine that stores the VFP state now takes a flag that indicates
whether the hardware should be disabled after saving state. Right now it
always is, but this makes the code ready to be used by get/set_mcontext()
(doing so will be addressed in a future commit).
Remove the arm-specific pc_vfpcthread from struct pcpu and use the MI
field pc_fpcurthread instead.
Reviewed by: cognet
Diffstat (limited to 'sys/arm/include/pcpu.h')
-rw-r--r-- | sys/arm/include/pcpu.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/arm/include/pcpu.h b/sys/arm/include/pcpu.h index 1771a8e..ee79343 100644 --- a/sys/arm/include/pcpu.h +++ b/sys/arm/include/pcpu.h @@ -46,9 +46,8 @@ struct vmspace; unsigned int pc_vfpsid; \ unsigned int pc_vfpmvfr0; \ unsigned int pc_vfpmvfr1; \ - struct thread *pc_vfpcthread; \ struct pmap *pc_curpmap; \ - char __pad[133] + char __pad[137] #else #define PCPU_MD_FIELDS \ char __pad[157] |