X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=libiberty%2Fcopysign.c;h=6793f22e8ccab04a257a0d26958ba5a1983dd0c2;hb=95954743cb49efcc384c378173606fd309b6e6ac;hp=0b5f8c3d9df866c5cc52ce0ad2ab8760aa72ba04;hpb=252b5132c753830d5fd56823373aed85f2a0db63;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/copysign.c b/libiberty/copysign.c index 0b5f8c3d9d..6793f22e8c 100644 --- a/libiberty/copysign.c +++ b/libiberty/copysign.c @@ -129,8 +129,10 @@ typedef union } __ieee_float_shape_type; #endif +#if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN) -double DEFUN(copysign, (x, y), double x AND double y) +double +copysign (double x, double y) { __ieee_double_shape_type a,b; b.value = y; @@ -138,3 +140,15 @@ double DEFUN(copysign, (x, y), double x AND double y) a.number.sign =b.number.sign; return a.value; } + +#else + +double +copysign (double x, double y) +{ + if ((x < 0 && y > 0) || (x > 0 && y < 0)) + return -x; + return x; +} + +#endif