fpregs
pt_thr_getfpregs(const td_thrhandle_t *th, prfpregset_t *fpregs)
ret = ps_lgetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs);
ret = ps_lgetfpregs(ta->ph, lwp, fpregs);
pt_ucontext_to_fpreg(&tmbx.tm_context, fpregs);
pt_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *fpregs)
ret = ps_lsetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs);
ret = ps_lsetfpregs(ta->ph, lwp, fpregs);
pt_fpreg_to_ucontext(fpregs, &tmbx.tm_context);
pt_thr_getfpregs(const td_thrhandle_t *th, prfpregset_t *fpregs)
ret = ps_lgetfpregs(ta->ph, th->th_tid, fpregs);
pt_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *fpregs)
ret = ps_lsetfpregs(ta->ph, th->th_tid, fpregs);
td_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *fpregs)
return (ta->ta_ops->to_thr_setfpregs(th, fpregs));
fill_fpregs_xmm(struct savefpu *sv_xmm, struct fpreg *fpregs)
struct envxmm *penv_fpreg = (struct envxmm *)&fpregs->fpr_env;
bzero(fpregs, sizeof(*fpregs));
bcopy(sv_xmm->sv_fp[i].fp_acc.fp_bytes, fpregs->fpr_acc[i], 10);
bcopy(sv_xmm->sv_xmm[i].xmm_bytes, fpregs->fpr_xacc[i], 16);
set_fpregs_xmm(struct fpreg *fpregs, struct savefpu *sv_xmm)
struct envxmm *penv_fpreg = (struct envxmm *)&fpregs->fpr_env;
bcopy(fpregs->fpr_acc[i], sv_xmm->sv_fp[i].fp_acc.fp_bytes, 10);
bcopy(fpregs->fpr_xacc[i], sv_xmm->sv_xmm[i].xmm_bytes, 16);
fill_fpregs(struct thread *td, struct fpreg *fpregs)
fill_fpregs_xmm(get_pcb_user_save_td(td), fpregs);
set_fpregs(struct thread *td, struct fpreg *fpregs)
error = set_fpregs_xmm(fpregs, get_pcb_user_save_td(td));
struct fpreg *fpregs;
fpregs = (void *)(&header[1]);
memcpy(pcb->pcb_fpustate.vfp_regs, fpregs->fp_q,
sizeof(fpregs->fp_q));
pcb->pcb_fpustate.vfp_fpcr = fpregs->fp_cr;
pcb->pcb_fpustate.vfp_fpsr = fpregs->fp_sr;
struct fpreg *fpregs;
fpregs = (void *)(&header[1]);
memcpy(fpregs->fp_q, pcb->pcb_fpustate.vfp_regs,
sizeof(fpregs->fp_q));
fpregs->fp_cr = pcb->pcb_fpustate.vfp_fpcr;
fpregs->fp_sr = pcb->pcb_fpustate.vfp_fpsr;
struct fpregs mc_fpregs;
error = PROC(read, fpregs, td2, &r);
error = PROC(write, fpregs, td2, &r);
fill_fpregs(struct thread *td, struct fpreg *fpregs)
(struct save87 *)fpregs);
bcopy(&get_pcb_user_save_td(td)->sv_87, fpregs,
sizeof(*fpregs));
set_fpregs(struct thread *td, struct fpreg *fpregs)
npx_set_fpregs_xmm((struct save87 *)fpregs,
bcopy(fpregs, &get_pcb_user_save_td(td)->sv_87,
sizeof(*fpregs));
proc_read_fpregs(struct thread *td, struct fpreg *fpregs)
return (fill_fpregs(td, fpregs));
proc_write_fpregs(struct thread *td, struct fpreg *fpregs)
return (set_fpregs(td, fpregs));
error = PROC_WRITE(fpregs, td2, addr);
error = PROC_READ(fpregs, td2, addr);
fill_fpregs(struct thread *td, struct fpreg *fpregs)
memset(fpregs, 0, sizeof(struct fpreg));
memcpy(&fpregs->fpscr, &pcb->pcb_fpu.fpscr, sizeof(double));
memcpy(&fpregs->fpreg[i], &pcb->pcb_fpu.fpr[i].fpr,
set_fpregs(struct thread *td, struct fpreg *fpregs)
memcpy(&pcb->pcb_fpu.fpscr, &fpregs->fpscr, sizeof(double));
memcpy(&pcb->pcb_fpu.fpr[i].fpr, &fpregs->fpreg[i],
struct fpregs mc_fpregs;
sizeof(struct fpregs)));
sizeof(struct fpregs)));