Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/lrintl.c
          +++ new/usr/src/lib/libm/common/m9x/lrintl.c
↓ open down ↓ 35 lines elided ↑ open up ↑
  36   36  
  37   37  #if defined(_ILP32)
  38   38  #if defined(__sparc)
  39   39  
  40   40  #include "fma.h"
  41   41  #include "fenv_inlines.h"
  42   42  
  43   43  long
  44   44  lrintl(long double x) {
  45   45          union {
  46      -                unsigned i[4];
       46 +                unsigned int i[4];
  47   47                  long double q;
  48   48          } xx;
  49   49          union {
  50      -                unsigned i;
       50 +                unsigned int i;
  51   51                  float f;
  52   52          } tt;
  53      -        unsigned hx, sx, frac, l;
  54      -        unsigned int fsr;
       53 +        unsigned int hx, sx, frac, l, fsr;
  55   54          int rm, j;
  56   55          volatile float dummy;
  57   56  
  58   57          xx.q = x;
  59   58          sx = xx.i[0] & 0x80000000;
  60   59          hx = xx.i[0] & ~0x80000000;
  61   60  
  62   61          /* handle trivial cases */
  63   62          if (hx > 0x401e0000) { /* |x| > 2^31 + ... or x is nan */
  64   63                  /* convert an out-of-range float */
↓ open down ↓ 93 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX