Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/LD/sincosl.c
          +++ new/usr/src/lib/libm/common/LD/sincosl.c
↓ open down ↓ 63 lines elided ↑ open up ↑
  64   64  #include "libm.h"
  65   65  #include "libm_synonyms.h"
  66   66  #include "longdouble.h"
  67   67  
  68   68  #include <sys/isa_defs.h>
  69   69  
  70   70  void
  71   71  sincosl(long double x, long double *s, long double *c) {
  72   72          long double y[2], z = 0.0L;
  73   73          int n, ix;
  74      -#if defined(_LITTLE_ENDIAN)
       74 +#if defined(__i386) || defined(__amd64)
  75   75          int *px = (int *) &x;
  76   76  #endif
  77   77  
  78   78          /* trig(Inf or NaN) is NaN */
  79   79          if (!finitel(x)) {
  80   80                  *s = *c = x - x;
  81   81                  return;
  82   82          }
  83   83  
  84   84          /* High word of x. */
  85      -#if defined(_BIG_ENDIAN)
  86      -        ix = *(int *) &x;
  87      -#else
       85 +#if defined(__i386) || defined(__amd64)
  88   86          XTOI(px, ix);
       87 +#else
       88 +        ix = *(int *) &x;
  89   89  #endif
  90   90  
  91   91          /* |x| ~< pi/4 */
  92   92          ix &= 0x7fffffff;
  93   93          if (ix <= 0x3ffe9220)
  94   94                  *s = __k_sincosl(x, z, c);
  95   95  
  96   96          /* argument reduction needed */
  97   97          else {
  98   98                  n = __rem_pio2l(x, y);
↓ open down ↓ 17 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX