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

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/sys/pcb.h
          +++ new/usr/src/uts/intel/sys/pcb.h
↓ open down ↓ 33 lines elided ↑ open up ↑
  34   34  #endif
  35   35  
  36   36  #ifdef  __cplusplus
  37   37  extern "C" {
  38   38  #endif
  39   39  
  40   40  #ifndef _ASM
  41   41  typedef struct fpu_ctx {
  42   42          kfpu_t          fpu_regs;       /* kernel save area for FPU */
  43   43          uint64_t        fpu_xsave_mask; /* xsave mask for FPU/SSE/AVX */
  44      -#if defined(__i386)
  45      -        uint64_t        fpu_padding;    /* fix 32bit libmicro regression */
  46      -#endif
  47   44          uint_t          fpu_flags;      /* FPU state flags */
       45 +        void            *fpu_signal;    /* copyin area for signal handling */
  48   46  } fpu_ctx_t;
  49   47  
  50   48  typedef struct pcb {
  51   49          fpu_ctx_t       pcb_fpu;        /* fpu state */
  52   50          uint_t          pcb_flags;      /* state flags; cleared on fork */
  53   51          greg_t          pcb_drstat;     /* status debug register (%dr6) */
  54   52          unsigned char   pcb_instr;      /* /proc: instruction at stop */
  55   53          unsigned char   pcb_rupdate;    /* new register values in pcb -> regs */
  56   54          uintptr_t       pcb_fsbase;
  57   55          uintptr_t       pcb_gsbase;
↓ open down ↓ 51 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX