Print this page
5261 libm should stop using synonyms.h
5298 fabs is 0-sized, confuses dis(1) and others
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Approved by: Gordon Ross <gwr@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/i386/src/copysign.s
          +++ new/usr/src/lib/libm/i386/src/copysign.s
↓ open down ↓ 22 lines elided ↑ open up ↑
  23   23   */
  24   24  /*
  25   25   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  26   26   * Use is subject to license terms.
  27   27   */
  28   28  
  29   29          .file   "copysign.s"
  30   30  
  31   31  #include "libm.h"
  32   32  LIBM_ANSI_PRAGMA_WEAK(copysign,function)
  33      -#include "libm_synonyms.h"
  34   33  
  35   34          ENTRY(copysign)
  36   35          movl    8(%esp),%eax            / eax <-- hi_32(x)
  37   36          movl    16(%esp),%ecx           / ecx <-- hi_32(y)
  38   37          andl    $0x7fffffff,%eax        / eax <-- hi_32(abs(x))
  39   38          andl    $0x80000000,%ecx        / ecx[31] <-- sign_bit(y)
  40   39          orl     %ecx,%eax               / eax <-- hi_32(copysign(x,y))
  41   40          movl    4(%esp),%ecx            / ecx <-- lo_32(x)
  42   41                                          /       = lo_32(copysign(x,y))
  43   42          subl    $8,%esp                 / set up loading dock for result
  44   43          movl    %ecx,(%esp)             / copy lo_32(result) to loading dock
  45   44          movl    %eax,4(%esp)            / copy hi_32(result) to loading dock
  46   45          fldl    (%esp)                  / load copysign(x,y)
  47   46          fwait                           / in case fldl causes exception
  48   47          addl    $8,%esp                 / restore stack-pointer for return
  49   48          ret
  50   49          .align  4
  51   50          SET_SIZE(copysign)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX