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

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/llrint.c
          +++ new/usr/src/lib/libm/common/m9x/llrint.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 __llrint = llrint
  31   32  #if defined(__sparcv9) || defined(__amd64)
  32   33  #pragma weak lrint = llrint
  33   34  #pragma weak __lrint = llrint
  34   35  #endif
↓ open down ↓ 4 lines elided ↑ open up ↑
  39   40   * 64 bit signed integer.
  40   41   *
  41   42   * If x is NaN, infinite, or so large that the nearest integer would
  42   43   * exceed 64 bits, the invalid operation exception is raised.  If x
  43   44   * is not an integer, the inexact exception is raised.
  44   45   */
  45   46  
  46   47  #include "libm.h"
  47   48  
  48   49  long long
  49      -llrint(double x) {
       50 +llrint(double x)
       51 +{
  50   52          /*
  51   53           * Note: The following code works on x86 (in the default rounding
  52   54           * precision mode), but one should just use the fistpll instruction
  53   55           * instead.
  54   56           */
  55   57          union {
  56   58                  unsigned i[2];
  57   59                  double d;
  58   60          } xx, yy;
       61 +
  59   62          unsigned hx;
  60   63  
  61   64          xx.d = x;
  62   65          hx = xx.i[HIWORD] & ~0x80000000;
  63   66  
  64      -        if (hx < 0x43300000) { /* |x| < 2^52 */
       67 +        if (hx < 0x43300000) {          /* |x| < 2^52 */
  65   68                  /* add and subtract a power of two to round x to an integer */
  66   69  #if defined(__sparc) || defined(__amd64)
  67   70                  yy.i[HIWORD] = (xx.i[HIWORD] & 0x80000000) | 0x43300000;
  68      -#elif defined(__i386)   /* !defined(__amd64) */
       71 +#elif defined(__i386)                   /* !defined(__amd64) */
  69   72                  yy.i[HIWORD] = (xx.i[HIWORD] & 0x80000000) | 0x43e00000;
  70   73  #else
  71   74  #error Unknown architecture
  72   75  #endif
  73   76                  yy.i[LOWORD] = 0;
  74   77                  x = (x + yy.d) - yy.d;
  75   78          }
  76   79  
  77   80          /* now x is nan, inf, or integral */
  78      -        return ((long long) x);
       81 +        return ((long long)x);
  79   82  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX