From cc096b7166610e6cca71574ef936acbabc922708 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 22 Jan 2002 20:14:53 +0000 Subject: merge from gcc --- libiberty/copysign.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libiberty/copysign.c') diff --git a/libiberty/copysign.c b/libiberty/copysign.c index 0b5f8c3..5c48a54 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 -- cgit v1.1