summaryrefslogtreecommitdiff
path: root/libiberty/copysign.c
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-22 20:03:29 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-22 20:03:29 +0000
commit98b6fc70cac3a41dedfc45e5f84bf7f2f71e3092 (patch)
tree4668c0ff40f185a82c1b9c01b0388f432c6cf685 /libiberty/copysign.c
parent9ac60e098d7032c8613d05b9d29816869475e52d (diff)
downloadgcc-98b6fc70cac3a41dedfc45e5f84bf7f2f71e3092.tar.gz
* Makefile.in (TESTLIB): New. This library is for future
testsuites. (CFILES, REQUIRED_OFILES, CONFIGURED_OFILES): Re-alphabetize, break down by letter. (REQUIRED_OFILES): List long-to-compile files first. (maint-deps): New, target for updating dependencies. (dependencies): Update. * maint-tool: Add dependency-generating option. * configure.in: Check for _doprnt even if we're not providing it. * configure: Regenerate. * _doprnt.c: Modifications to allow compiling on any platform. * copysign.c: Likewise. * putenv.c: Likewise. * setenv.c: Likewise. * vsprintf.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49090 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/copysign.c')
-rw-r--r--libiberty/copysign.c12
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