Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
usr/src/uts/common/fs/proc/prcontrol.c
usr/src/uts/intel/os/archdep.c
usr/src/uts/intel/sys/ucontext.h
usr/src/uts/intel/syscall/getcontext.c
*** 60,80 ****
int fpu_exists = 1;
int fp_kind = FP_387;
/*
- * The kind of FPU we advertise to rtld so it knows what to do on context
- * switch.
- */
- int fp_elf = AT_386_FPINFO_FXSAVE;
-
- /*
- * Mechanism to save FPU state.
- */
- int fp_save_mech = FP_FXSAVE;
-
- /*
* The variable fpu_ignored is provided to allow other code to
* determine whether emulation is being done because there is
* no FPU or because of an override requested via /etc/system.
*/
int fpu_ignored = 0;
--- 60,69 ----
*** 225,250 ****
nofpu:
setcr0(CR0_DISABLE_FPU_FLAGS(getcr0()));
DISABLE_SSE();
fp_kind = FP_NO;
fpu_exists = 0;
- }
-
- /*
- * Fill in FPU information that is required by exec.
- */
- void
- fpu_auxv_info(int *typep, size_t *lenp)
- {
- *typep = fp_elf;
- switch (fp_save_mech) {
- case FP_FXSAVE:
- *lenp = sizeof (struct fxsave_state);
- break;
- case FP_XSAVE:
- *lenp = cpuid_get_xsave_size();
- break;
- default:
- *lenp = 0;
- break;
- }
}
--- 214,219 ----