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
*** 1435,1459 ****
#define INTC_MODEL_DENVERTON 0x5f
#define INTC_MODEL_GEMINI_LAKE 0x7a
/*
* xgetbv/xsetbv support
! * See section 13.3 in vol. 1 of the Intel devlopers manual.
*/
#define XFEATURE_ENABLED_MASK 0x0
/*
* XFEATURE_ENABLED_MASK values (eax)
* See setup_xfem().
*/
! #define XFEATURE_LEGACY_FP 0x1
! #define XFEATURE_SSE 0x2
! #define XFEATURE_AVX 0x4
! #define XFEATURE_MPX 0x18 /* 2 bits, both 0 or 1 */
! #define XFEATURE_AVX512 0xe0 /* 3 bits, all 0 or 1 */
/* bit 8 unused */
! #define XFEATURE_PKRU 0x200
#define XFEATURE_FP_ALL \
(XFEATURE_LEGACY_FP | XFEATURE_SSE | XFEATURE_AVX | XFEATURE_MPX | \
XFEATURE_AVX512 | XFEATURE_PKRU)
/*
--- 1435,1473 ----
#define INTC_MODEL_DENVERTON 0x5f
#define INTC_MODEL_GEMINI_LAKE 0x7a
/*
* xgetbv/xsetbv support
! * See section 13.3 in vol. 1 of the Intel Developer's manual.
*/
#define XFEATURE_ENABLED_MASK 0x0
/*
* XFEATURE_ENABLED_MASK values (eax)
* See setup_xfem().
*/
! #define XFEATURE_LEGACY_FP (1 << 0)
! #define XFEATURE_SSE (1 << 1)
! #define XFEATURE_AVX (1 << 2)
! /*
! * MPX is meant to be all or nothing, therefore for most of the kernel use the
! * following definition.
! */
! #define XFEATURE_MPX_BNDREGS (1 << 3)
! #define XFEATURE_MPX_BNDCSR (1 << 4)
! #define XFEATURE_MPX (XFEATURE_MPX_BNDREGS | XFEATURE_MPX_BNDCSR)
! /*
! * AVX512 is meant to be all or nothing, therefore for most of the kernel use
! * the following definition.
! */
! #define XFEATURE_AVX512_OPMASK (1 << 5)
! #define XFEATURE_AVX512_ZMM (1 << 6)
! #define XFEATURE_AVX512_HI_ZMM (1 << 7)
! #define XFEATURE_AVX512 (XFEATURE_AVX512_OPMASK | \
! XFEATURE_AVX512_ZMM | XFEATURE_AVX512_HI_ZMM)
/* bit 8 unused */
! #define XFEATURE_PKRU (1 << 9)
#define XFEATURE_FP_ALL \
(XFEATURE_LEGACY_FP | XFEATURE_SSE | XFEATURE_AVX | XFEATURE_MPX | \
XFEATURE_AVX512 | XFEATURE_PKRU)
/*
*** 1574,1585 ****
extern uint32_t cpuid_get_apicid(struct cpu *);
extern uint_t cpuid_get_procnodeid(struct cpu *cpu);
extern uint_t cpuid_get_procnodes_per_pkg(struct cpu *cpu);
extern uint_t cpuid_get_compunitid(struct cpu *cpu);
extern uint_t cpuid_get_cores_per_compunit(struct cpu *cpu);
! extern size_t cpuid_get_xsave_size();
! extern boolean_t cpuid_need_fp_excp_handling();
extern int cpuid_is_cmt(struct cpu *);
extern int cpuid_syscall32_insn(struct cpu *);
extern int getl2cacheinfo(struct cpu *, int *, int *, int *);
extern x86_chiprev_t cpuid_getchiprev(struct cpu *);
--- 1588,1600 ----
extern uint32_t cpuid_get_apicid(struct cpu *);
extern uint_t cpuid_get_procnodeid(struct cpu *cpu);
extern uint_t cpuid_get_procnodes_per_pkg(struct cpu *cpu);
extern uint_t cpuid_get_compunitid(struct cpu *cpu);
extern uint_t cpuid_get_cores_per_compunit(struct cpu *cpu);
! extern size_t cpuid_get_xsave_size(void);
! extern void cpuid_get_xsave_info(uint64_t, size_t *, size_t *);
! extern boolean_t cpuid_need_fp_excp_handling(void);
extern int cpuid_is_cmt(struct cpu *);
extern int cpuid_syscall32_insn(struct cpu *);
extern int getl2cacheinfo(struct cpu *, int *, int *, int *);
extern x86_chiprev_t cpuid_getchiprev(struct cpu *);