Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/__fex_hdlr.c
          +++ new/usr/src/lib/libm/common/m9x/__fex_hdlr.c
↓ open down ↓ 370 lines elided ↑ open up ↑
 371  371                  act.sa_handler(sig, sip, uap);
 372  372          }
 373  373  }
 374  374  
 375  375  #elif defined(__x86)
 376  376  
 377  377  #if defined(__amd64)
 378  378  #define test_sse_hw     1
 379  379  #else
 380  380  extern int _sse_hw;
 381      -#define test_sse_hw     &_sse_hw && _sse_hw
      381 +#define test_sse_hw     _sse_hw
 382  382  #endif
 383  383  
 384  384  #if !defined(REG_PC)
 385  385  #define REG_PC  EIP
 386  386  #endif
 387  387  
 388  388  /*
 389  389  *  If a handling mode is in effect, apply it; otherwise invoke the
 390  390  *  saved handler
 391  391  */
 392  392  static void
 393  393  __fex_hdlr(int sig, siginfo_t *sip, ucontext_t *uap)
 394  394  {
 395  395          struct fex_handler_data *thr_handlers;
 396  396          struct sigaction        act;
 397      -        void                    (*handler)(), (*simd_handler[4])();
      397 +        void                    (*handler)() = NULL, (*simd_handler[4])();
 398  398          int                     mode, simd_mode[4], i, len, accrued, *ap;
 399  399          unsigned int            cwsw, oldcwsw, mxcsr, oldmxcsr;
 400  400          enum fex_exception      e, simd_e[4];
 401  401          fex_info_t              info, simd_info[4];
 402  402          unsigned long           addr;
 403  403          siginfo_t               osip = *sip;
 404  404          sseinst_t               inst;
 405  405  
 406  406          /* check for an exception caused by an SSE instruction */
 407  407          if (!(uap->uc_mcontext.fpregs.fp_reg_set.fpchip_state.status & 0x80)) {
↓ open down ↓ 442 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX