Lines Matching refs:fxsave

82 		return membuf_write(&to, &fpu->fpstate->regs.fxsave,  in xfpregs_get()
83 sizeof(fpu->fpstate->regs.fxsave)); in xfpregs_get()
116 memcpy(&fpu->fpstate->regs.fxsave, &newstate, sizeof(newstate)); in xfpregs_set()
119 BUILD_BUG_ON(sizeof(fpu->__fpstate.regs.fxsave.xmm_space) != 16 * 16); in xfpregs_set()
121 memset(&fpu->fpstate->regs.fxsave.xmm_space[8*4], 0, 8 * 16); in xfpregs_set()
285 static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave) in twd_fxsr_to_i387() argument
288 u32 tos = (fxsave->swd >> 11) & 7; in twd_fxsr_to_i387()
289 u32 twd = (unsigned long) fxsave->twd; in twd_fxsr_to_i387()
296 st = FPREG_ADDR(fxsave, (i - tos) & 7); in twd_fxsr_to_i387()
332 struct fxregs_state *fxsave) in __convert_from_fxsr() argument
335 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0]; in __convert_from_fxsr()
338 env->cwd = fxsave->cwd | 0xffff0000u; in __convert_from_fxsr()
339 env->swd = fxsave->swd | 0xffff0000u; in __convert_from_fxsr()
340 env->twd = twd_fxsr_to_i387(fxsave); in __convert_from_fxsr()
343 env->fip = fxsave->rip; in __convert_from_fxsr()
344 env->foo = fxsave->rdp; in __convert_from_fxsr()
357 env->fip = fxsave->fip; in __convert_from_fxsr()
358 env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16); in __convert_from_fxsr()
359 env->foo = fxsave->foo; in __convert_from_fxsr()
360 env->fos = fxsave->fos; in __convert_from_fxsr()
370 __convert_from_fxsr(env, tsk, &tsk->thread.fpu.fpstate->regs.fxsave); in convert_from_fxsr()
373 void convert_to_fxsr(struct fxregs_state *fxsave, in convert_to_fxsr() argument
378 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0]; in convert_to_fxsr()
381 fxsave->cwd = env->cwd; in convert_to_fxsr()
382 fxsave->swd = env->swd; in convert_to_fxsr()
383 fxsave->twd = twd_i387_to_fxsr(env->twd); in convert_to_fxsr()
384 fxsave->fop = (u16) ((u32) env->fcs >> 16); in convert_to_fxsr()
386 fxsave->rip = env->fip; in convert_to_fxsr()
387 fxsave->rdp = env->foo; in convert_to_fxsr()
390 fxsave->fip = env->fip; in convert_to_fxsr()
391 fxsave->fcs = (env->fcs & 0xffff); in convert_to_fxsr()
392 fxsave->foo = env->foo; in convert_to_fxsr()
393 fxsave->fos = env->fos; in convert_to_fxsr()
405 struct fxregs_state fxsave, *fx; in fpregs_get() local
418 struct membuf mb = { .p = &fxsave, .left = sizeof(fxsave) }; in fpregs_get()
422 fx = &fxsave; in fpregs_get()
424 fx = &fpu->fpstate->regs.fxsave; in fpregs_get()
453 convert_to_fxsr(&fpu->fpstate->regs.fxsave, &env); in fpregs_set()