diff options
author | DJ Delorie <dj@delorie.com> | 2002-01-22 20:14:53 +0000 |
---|---|---|
committer | DJ Delorie <dj@delorie.com> | 2002-01-22 20:14:53 +0000 |
commit | d62bf15701f9040b0ff226c78a5fc734a1c5a1ce (patch) | |
tree | ca9e93ea7512a81b57fe3196cb79f1a891d162a9 /libiberty/copysign.c | |
parent | 5f5b983a9660d66cdfe71e34c13e25852c090065 (diff) | |
download | gdb-d62bf15701f9040b0ff226c78a5fc734a1c5a1ce.tar.gz |
merge from gcc
Diffstat (limited to 'libiberty/copysign.c')
-rw-r--r-- | libiberty/copysign.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libiberty/copysign.c b/libiberty/copysign.c index 0b5f8c3d9df..5c48a5422eb 100644 --- a/libiberty/copysign.c +++ b/libiberty/copysign.c @@ -129,6 +129,7 @@ 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) { @@ -138,3 +139,14 @@ double DEFUN(copysign, (x, y), double x AND double y) a.number.sign =b.number.sign; return a.value; } + +#else + +double DEFUN(copysign, (x, y), double x AND double y) +{ + if ((x < 0 && y > 0) || (x > 0 && y < 0)) + return -x; + return x; +} + +#endif |