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

*** 43,65 **** process identified by ph. ps_lgetregs() gets the general registers of the LWP identified by lid, and ps_lsetregs() sets them. ps_lgetfpregs() gets the LWP's floating point register set, while ps_lsetfpregs() sets it. ! SPARC Only ! ps_lgetxregsize(), ps_lgetxregs(), and ps_lsetxregs() are SPARC- ! specific. They do not need to be defined by a controlling process on ! non-SPARC architecture. ps_lgetxregsize() returns in *xregsize the size ! of the architecture-dependent extra state registers. ps_lgetxregs() ! gets the extra state registers, and ps_lsetxregs() sets them. RETURN VALUES PS_OK The call returned successfully. ! PS_NOFPREGS Floating point registers are neither available for this architecture nor for this process. PS_NOXREGS --- 43,70 ---- process identified by ph. ps_lgetregs() gets the general registers of the LWP identified by lid, and ps_lsetregs() sets them. ps_lgetfpregs() gets the LWP's floating point register set, while ps_lsetfpregs() sets it. ! ps_lgetxregsize(), ps_lgetxregs(), and ps_lsetxregs() are used to get ! and set the extended register set. Support for an extended register set ! depends on the instruction-set archicture. On platforms without support ! for these, controlling processes wlil still need to define them; ! however, they are allowed to simply return errors. + ps_lgetxregsize() returns in *xregsize the size of the architecture- + dependent extra state registers. ps_lgetxregs() gets the extra state + registers, and ps_lsetxregs() sets them. When getting the registers, + the size of xregset must be at least the size returned by + ps_lgetxregsize(). + RETURN VALUES PS_OK The call returned successfully. ! PS_NOFREGS Floating point registers are neither available for this architecture nor for this process. PS_NOXREGS
*** 84,89 **** +---------------+-----------------+ SEE ALSO libc_db(3LIB), proc_service(3PROC), attributes(7), threads(7) ! September 12, 2020 PS_LGETREGS(3PROC) --- 89,94 ---- +---------------+-----------------+ SEE ALSO libc_db(3LIB), proc_service(3PROC), attributes(7), threads(7) ! January 23, 2023 PS_LGETREGS(3PROC)