Print this page
11210 libm should be cstyle(1ONBLD) clean

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/scalblnl.c
          +++ new/usr/src/lib/libm/common/m9x/scalblnl.c
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
       25 +
  25   26  /*
  26   27   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  27   28   * Use is subject to license terms.
  28   29   */
  29   30  
  30   31  #pragma weak __scalblnl = scalblnl
  31   32  
  32   33  #include "libm.h"
  33      -#include <float.h>              /* LDBL_MAX, LDBL_MIN */
       34 +#include <float.h>                      /* LDBL_MAX, LDBL_MIN */
  34   35  
  35   36  #if defined(__sparc)
  36      -#define XSET_EXP(k, x)  ((int *) &x)[0] = (((int *) &x)[0] & ~0x7fff0000) | \
  37      -                                (k << 16)
  38      -#define ISINFNANL(k, x) (k == 0x7fff)
  39      -#define XTWOT_OFFSET    113
  40      -static const long double xtwot = 10384593717069655257060992658440192.0L,
  41      -                                                                /* 2^113 */
       37 +#define XSET_EXP(k, x)                  ((int *)&x)[0] = (((int *)&x)[0] & \
       38 +            ~0x7fff0000) | (k << 16)
       39 +#define ISINFNANL(k, x)                 (k == 0x7fff)
       40 +#define XTWOT_OFFSET                    113
       41 +
       42 +static const long double
       43 +        xtwot = 10384593717069655257060992658440192.0L, /* 2^113 */
  42   44          twomtm1 = 4.814824860968089632639944856462318296E-35L;  /* 2^-114 */
  43   45  #elif defined(__x86)
  44      -#define XSET_EXP(k, x)  ((int *) &x)[2] = (((int *) &x)[2] & ~0x7fff) | k
       46 +#define XSET_EXP(k, x)                  ((int *)&x)[2] = (((int *)&x)[2] & \
       47 +            ~0x7fff) | k
  45   48  #if defined(HANDLE_UNSUPPORTED)
  46      -#define      ISINFNANL(k, x) (k == 0x7fff || \
  47      -                        (k != 0 && (((int *) &x)[1] & 0x80000000) == 0))
       49 +#define ISINFNANL(k, x)         (k == 0x7fff || (k != 0 && \
       50 +        (((int *)&x)[1] & 0x80000000) == 0))
  48   51  #else
  49      -#define ISINFNANL(k, x) (k == 0x7fff)
       52 +#define ISINFNANL(k, x)                 (k == 0x7fff)
  50   53  #endif
  51      -#define XTWOT_OFFSET    64
       54 +#define XTWOT_OFFSET                    64
       55 +
  52   56  static const long double xtwot = 18446744073709551616.0L,       /* 2^64 */
  53   57          twomtm1 = 2.7105054312137610850186E-20L;                /* 2^-65 */
  54   58  #endif
  55   59  
  56   60  long double
  57      -scalblnl(long double x, long n) {
       61 +scalblnl(long double x, long n)
       62 +{
  58   63          int k = XBIASED_EXP(x);
  59   64  
  60   65          if (ISINFNANL(k, x))
  61   66                  return (x + x);
       67 +
  62   68          if (ISZEROL(x) || n == 0)
  63   69                  return (x);
       70 +
  64   71          if (k == 0) {
  65   72                  x *= xtwot;
  66   73                  k = XBIASED_EXP(x) - XTWOT_OFFSET;
  67   74          }
  68      -        k += (int) n;
       75 +
       76 +        k += (int)n;
       77 +
  69   78          if (n > 50000 || k > 0x7ffe)
  70   79                  return (LDBL_MAX * copysignl(LDBL_MAX, x));
       80 +
  71   81          if (n < -50000 || k <= -XTWOT_OFFSET - 1)
  72   82                  return (LDBL_MIN * copysignl(LDBL_MIN, x));
       83 +
  73   84          if (k > 0) {
  74   85                  XSET_EXP(k, x);
  75   86                  return (x);
  76   87          }
       88 +
  77   89          k += XTWOT_OFFSET + 1;
  78   90          XSET_EXP(k, x);
  79   91          return (x * twomtm1);
  80   92  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX