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

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