Lines Matching defs:ifps

290 	void *ifps = zalloc(ifps_zone);
293 if (!(ALIGNED(ifps,64))) {
294 panic("fp_state_alloc: %p, %u, %p, %u", ifps, (unsigned) ifps_zone->elem_size, (void *) ifps_zone->free_elements, (unsigned) ifps_zone->alloc_size);
297 return ifps;
301 fp_state_free(void *ifps)
303 zfree(ifps_zone, ifps);
313 struct x86_fx_thread_state *ifps = fstate;
314 fp_save_layout_t layout = ifps->fp_save_layout;
317 assert(ALIGNED(ifps, 64));
340 fxrstor(ifps);
343 fxrstor64(ifps);
346 xrstor(ifps);
349 xrstor64(ifps);
353 xrstor(ifps);
355 fxrstor(ifps);
360 struct x86_fx_thread_state *ifps = fstate;
361 assert(ALIGNED(ifps, 64));
365 xsave(ifps);
366 ifps->fp_save_layout = XSAVE32;
370 fxsave(ifps);
371 ifps->fp_save_layout = FXSAVE32;
376 xsave64(ifps);
377 ifps->fp_save_layout = XSAVE64;
380 fxsave64(ifps);
381 ifps->fp_save_layout = FXSAVE64;
386 xsave(ifps);
387 ifps->fp_save_layout = is64 ? XSAVE64 : XSAVE32;
390 fxsave(ifps);
391 ifps->fp_save_layout = is64 ? FXSAVE64 : FXSAVE32;
433 struct x86_fx_thread_state *ifps;
436 ifps = (thread)->machine.ifps;
438 if (ifps && ((ifps->fp_valid != FALSE) && (ifps->fp_valid != TRUE))) {
439 panic("ifps->fp_valid: %u\n", ifps->fp_valid);
442 if (ifps != 0 && (ifps->fp_valid == FALSE)) {
450 fpu_store_registers(ifps, (thread_is_64bit(thread) && is_saved_state64(thread->machine.iss)));
451 ifps->fp_valid = TRUE;
482 struct x86_fx_thread_state *ifps;
507 ifps = pcb->ifps;
508 pcb->ifps = 0;
512 if (ifps != 0)
513 fp_state_free(ifps);
522 ifps = pcb->ifps;
523 if (ifps == 0) {
529 ifps = new_ifps;
531 pcb->ifps = ifps;
536 old_valid = ifps->fp_valid;
550 bcopy((char *)&state->fpu_fcw, (char *)ifps, state_size);
553 struct x86_avx_thread_state *iavx = (void *) ifps;
575 ifps->fp_save_layout = thread_is_64bit(thr_act) ? FXSAVE64 : FXSAVE32;
576 ifps->fp_valid = old_valid;
580 ifps->fp_valid = TRUE;
605 struct x86_fx_thread_state *ifps;
625 ifps = pcb->ifps;
626 if (ifps == 0) {
653 if (ifps->fp_valid) {
654 bcopy((char *)ifps, (char *)&state->fpu_fcw, state_size);
656 struct x86_avx_thread_state *iavx = (void *) ifps;
697 if (ppcb->ifps == NULL)
700 if (child->machine.ifps)
701 panic("fpu_dup_fxstate: child's ifps non-null");
707 if (ppcb->ifps != NULL) {
708 struct x86_fx_thread_state *ifps = ppcb->ifps;
720 if (ifps->fp_valid) {
721 child->machine.ifps = new_ifps;
724 bcopy((char *)(ppcb->ifps),
725 (char *)(child->machine.ifps), fp_register_state_size);
785 struct x86_fx_thread_state *ifps = 0;
792 if (pcb->ifps == 0 && !get_interrupt_level()) {
793 ifps = fp_state_alloc();
794 bcopy((char *)&initial_fp_state, (char *)ifps,
797 ifps->fp_save_layout = fpu_YMM_present ? XSAVE32 : FXSAVE32;
800 ifps->fp_save_layout = fpu_YMM_present ? XSAVE64 : FXSAVE64;
801 ifps->fp_valid = TRUE;
815 if (pcb->ifps == 0) {
816 pcb->ifps = ifps;
817 ifps = 0;
826 if (ifps)
827 fp_state_free(ifps);
840 struct x86_fx_thread_state *ifps;
856 ifps = pcb->ifps;
857 pcb->ifps = 0;
873 if (ifps)
874 zfree(ifps_zone, ifps);
891 struct x86_fx_thread_state *ifps = thr_act->machine.ifps;
910 * Locking not needed on pcb->ifps,
915 ifps->fx_status);
935 struct x86_fx_thread_state *ifps = pcb->ifps;
937 assert(ifps != 0);
938 if (ifps != 0 && !ifps->fp_valid) {
941 ifps->fp_valid = TRUE;
942 fpu_store_registers(ifps, thread_is_64bit(thr_act));
957 struct x86_fx_thread_state *ifps = pcb->ifps;
959 assert(ifps);
960 assert(ifps->fp_valid == FALSE || ifps->fp_valid == TRUE);
962 if (ifps->fp_valid == FALSE) {
965 fpu_load_registers(ifps);
967 ifps->fp_valid = FALSE; /* in FPU */
979 struct x86_fx_thread_state *ifps = thr_act->machine.ifps;
997 * Locking not needed on pcb->ifps,
1000 assert(ifps->fp_save_layout == FXSAVE32 || ifps->fp_save_layout == FXSAVE64);
1003 ifps->fx_MXCSR);
1010 struct x86_fx_thread_state *ifps = thr_act->machine.ifps;
1012 if (ifps) {
1013 ifps->fp_valid = value;