Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/fmal.c
          +++ new/usr/src/lib/libm/common/m9x/fmal.c
↓ open down ↓ 76 lines elided ↑ open up ↑
  77   77  #define snan    C[15].d
  78   78  
  79   79  static const unsigned int fsr_rm = 0xc0000000u;
  80   80  
  81   81  /*
  82   82   * fmal for SPARC: 128-bit quad precision, big-endian
  83   83   */
  84   84  long double
  85   85  __fmal(long double x, long double y, long double z) {
  86   86          union {
  87      -                unsigned i[4];
       87 +                unsigned int i[4];
  88   88                  long double q;
  89   89          } xx, yy, zz;
  90   90          union {
  91      -                unsigned i[2];
       91 +                unsigned int i[2];
  92   92                  double d;
  93   93          } u;
  94   94          double dx[5], dy[5], dxy[9], c, s;
  95      -        unsigned xy0, xy1, xy2, xy3, xy4, xy5, xy6, xy7;
  96      -        unsigned z0, z1, z2, z3, z4, z5, z6, z7;
  97      -        unsigned rm, sticky;
       95 +        unsigned int xy0, xy1, xy2, xy3, xy4, xy5, xy6, xy7;
       96 +        unsigned int z0, z1, z2, z3, z4, z5, z6, z7;
       97 +        unsigned int rm, sticky;
  98   98          unsigned int fsr;
  99   99          int hx, hy, hz, ex, ey, ez, exy, sxy, sz, e, ibit;
 100  100          int cx, cy, cz;
 101  101          volatile double dummy;
 102  102  
 103  103          /* extract the high order words of the arguments */
 104  104          xx.q = x;
 105  105          yy.q = y;
 106  106          zz.q = z;
 107  107          hx = xx.i[0] & ~0x80000000;
↓ open down ↓ 1120 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX