Lines Matching full:fpu

3  * FPU signal frame handling routines.
10 #include <asm/fpu/signal.h>
11 #include <asm/fpu/regset.h>
12 #include <asm/fpu/xstate.h>
16 #include <asm/trace/fpu.h>
41 fx_sw->xstate_size > current->thread.fpu.fpstate->user_size || in check_xstate_in_sigframe()
57 trace_x86_fpu_xstate_check_failed(&current->thread.fpu); in check_xstate_in_sigframe()
72 struct xregs_state *xsave = &tsk->thread.fpu.fpstate->regs.xsave; in save_fsave_header()
78 fxsave(&tsk->thread.fpu.fpstate->regs.fxsave); in save_fsave_header()
171 * Save the fpu, extended register state to the user signal frame.
192 struct fpstate *fpstate = tsk->thread.fpu.fpstate; in copy_fpstate_to_sigframe()
222 * Load the FPU registers if they are not valid for the current task. in copy_fpstate_to_sigframe()
223 * With a valid FPU state we can attempt to save the state directly to in copy_fpstate_to_sigframe()
275 * Attempt to restore the FPU registers directly from user memory.
280 struct fpu *fpu = &current->thread.fpu; in restore_fpregs_from_user() local
284 xrestore &= fpu->fpstate->user_xfeatures; in restore_fpregs_from_user()
288 xfd_update_state(fpu->fpstate); in restore_fpregs_from_user()
290 ret = __restore_fpregs_from_user(buf, fpu->fpstate->user_xfeatures, in restore_fpregs_from_user()
296 * The above did an FPU restore operation, restricted to in restore_fpregs_from_user()
298 * microcode might have modified the FPU registers in restore_fpregs_from_user()
301 * If the FPU registers do not belong to current, then in restore_fpregs_from_user()
302 * invalidate the FPU register state otherwise the task in restore_fpregs_from_user()
304 * corrupted FPU registers. in restore_fpregs_from_user()
314 if (!fault_in_readable(buf, fpu->fpstate->user_size)) in restore_fpregs_from_user()
325 * this does not work because the rest of the FPU registers have in restore_fpregs_from_user()
329 os_xrstor_supervisor(fpu->fpstate); in restore_fpregs_from_user()
340 struct fpu *fpu = &tsk->thread.fpu; in __fpu_restore_sig() local
359 /* Restore the FPU registers directly from user memory. */ in __fpu_restore_sig()
388 os_xsave(fpu->fpstate); in __fpu_restore_sig()
391 __fpu_invalidate_fpregs_state(fpu); in __fpu_restore_sig()
395 fpregs = &fpu->fpstate->regs; in __fpu_restore_sig()
435 success = !os_xrstor_safe(fpu->fpstate, in __fpu_restore_sig()
456 * Restore FPU state from a sigframe:
460 struct fpu *fpu = &current->thread.fpu; in fpu__restore_sig() local
467 fpu__clear_user_states(fpu); in fpu__restore_sig()
471 size = xstate_sigframe_size(fpu->fpstate); in fpu__restore_sig()
499 fpu__clear_user_states(fpu); in fpu__restore_sig()
507 unsigned long frame_size = xstate_sigframe_size(current->thread.fpu.fpstate); in fpu__alloc_mathframe()