Lines Matching refs:fxsave
77 return membuf_write(&to, &fpu->state.fxsave, in xfpregs_get()
78 sizeof(fpu->state.fxsave)); in xfpregs_get()
113 memcpy(&fpu->state.fxsave, &newstate, sizeof(newstate)); in xfpregs_set()
116 BUILD_BUG_ON(sizeof(fpu->state.fxsave.xmm_space) != 16 * 16); in xfpregs_set()
117 memset(&fpu->state.fxsave.xmm_space[8], 0, 8 * 16); in xfpregs_set()
201 static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave) in twd_fxsr_to_i387() argument
204 u32 tos = (fxsave->swd >> 11) & 7; in twd_fxsr_to_i387()
205 u32 twd = (unsigned long) fxsave->twd; in twd_fxsr_to_i387()
212 st = FPREG_ADDR(fxsave, (i - tos) & 7); in twd_fxsr_to_i387()
248 struct fxregs_state *fxsave) in __convert_from_fxsr() argument
251 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0]; in __convert_from_fxsr()
254 env->cwd = fxsave->cwd | 0xffff0000u; in __convert_from_fxsr()
255 env->swd = fxsave->swd | 0xffff0000u; in __convert_from_fxsr()
256 env->twd = twd_fxsr_to_i387(fxsave); in __convert_from_fxsr()
259 env->fip = fxsave->rip; in __convert_from_fxsr()
260 env->foo = fxsave->rdp; in __convert_from_fxsr()
273 env->fip = fxsave->fip; in __convert_from_fxsr()
274 env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16); in __convert_from_fxsr()
275 env->foo = fxsave->foo; in __convert_from_fxsr()
276 env->fos = fxsave->fos; in __convert_from_fxsr()
286 __convert_from_fxsr(env, tsk, &tsk->thread.fpu.state.fxsave); in convert_from_fxsr()
289 void convert_to_fxsr(struct fxregs_state *fxsave, in convert_to_fxsr() argument
294 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0]; in convert_to_fxsr()
297 fxsave->cwd = env->cwd; in convert_to_fxsr()
298 fxsave->swd = env->swd; in convert_to_fxsr()
299 fxsave->twd = twd_i387_to_fxsr(env->twd); in convert_to_fxsr()
300 fxsave->fop = (u16) ((u32) env->fcs >> 16); in convert_to_fxsr()
302 fxsave->rip = env->fip; in convert_to_fxsr()
303 fxsave->rdp = env->foo; in convert_to_fxsr()
306 fxsave->fip = env->fip; in convert_to_fxsr()
307 fxsave->fcs = (env->fcs & 0xffff); in convert_to_fxsr()
308 fxsave->foo = env->foo; in convert_to_fxsr()
309 fxsave->fos = env->fos; in convert_to_fxsr()
321 struct fxregs_state fxsave, *fx; in fpregs_get() local
334 struct membuf mb = { .p = &fxsave, .left = sizeof(fxsave) }; in fpregs_get()
338 fx = &fxsave; in fpregs_get()
340 fx = &fpu->state.fxsave; in fpregs_get()
369 convert_to_fxsr(&fpu->state.fxsave, &env); in fpregs_set()