Lines Matching refs:td

360 	thread_t td;  in npxdna()  local
363 td = md->mi.gd_curthread; in npxdna()
372 if (md->gd_npxthread == td) { in npxdna()
376 md->gd_npxthread, td); in npxdna()
386 if ((td->td_flags & TDF_USINGFP) == 0) { in npxdna()
387 td->td_flags |= TDF_USINGFP; in npxdna()
404 md->gd_npxthread = td; in npxdna()
418 if ((td->td_savefpu->sv_xmm.sv_env.en_mxcsr & ~npx_mxcsr_mask) && in npxdna()
422 td->td_comm, td->td_savefpu->sv_xmm.sv_env.en_mxcsr, in npxdna()
424 td->td_savefpu->sv_xmm.sv_env.en_mxcsr &= npx_mxcsr_mask; in npxdna()
425 lwpsignal(td->td_proc, td->td_lwp, SIGFPE); in npxdna()
427 fpurstor(td->td_savefpu, npx_xcr0_mask); in npxdna()
514 thread_t td = curthread; in npxpush() local
516 if (td->td_flags & TDF_USINGFP) { in npxpush()
517 if (mdcpu->gd_npxthread == td) { in npxpush()
524 npxsave(td->td_savefpu); in npxpush()
528 KKASSERT(sizeof(*td->td_savefpu) <= sizeof(mctx->mc_fpregs)); in npxpush()
529 bcopy(td->td_savefpu, mctx->mc_fpregs, sizeof(*td->td_savefpu)); in npxpush()
530 td->td_flags &= ~TDF_USINGFP; in npxpush()
554 thread_t td = curthread; in npxpop() local
564 if (td->td_flags & TDF_USINGFP) { in npxpop()
565 if (td == mdcpu->gd_npxthread) in npxpop()
566 npxsave(td->td_savefpu); in npxpop()
567 td->td_flags &= ~TDF_USINGFP; in npxpop()
585 if (td == mdcpu->gd_npxthread) in npxpop()
586 npxsave(td->td_savefpu); in npxpop()
587 KKASSERT(sizeof(*td->td_savefpu) <= sizeof(mctx->mc_fpregs)); in npxpop()
588 bcopy(mctx->mc_fpregs, td->td_savefpu, sizeof(*td->td_savefpu)); in npxpop()
589 if ((td->td_savefpu->sv_xmm.sv_env.en_mxcsr & ~npx_mxcsr_mask) && in npxpop()
594 td->td_proc->p_pid, in npxpop()
595 td->td_proc->p_comm, in npxpop()
596 td->td_savefpu->sv_xmm.sv_env.en_mxcsr); in npxpop()
598 td->td_flags |= TDF_USINGFP; in npxpop()
612 thread_t td = curthread; in kernel_fpu_begin() local
614 KASSERT((td->td_flags & TDF_KERNELFP) == 0, in kernel_fpu_begin()
616 atomic_set_int(&td->td_flags, TDF_KERNELFP); in kernel_fpu_begin()
617 if (td->td_kfpuctx == NULL) { in kernel_fpu_begin()
618 td->td_kfpuctx = kmalloc(sizeof(*td->td_kfpuctx), M_FPUCTX, in kernel_fpu_begin()
621 npxpush(td->td_kfpuctx); in kernel_fpu_begin()
632 thread_t td = curthread; in kernel_fpu_end() local
634 KASSERT((td->td_flags & TDF_KERNELFP) != 0, in kernel_fpu_end()
636 npxpop(td->td_kfpuctx); in kernel_fpu_end()
637 atomic_clear_int(&td->td_flags, TDF_KERNELFP); in kernel_fpu_end()