aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-03-31 05:46:40 +0000
committerRichard Stallman <rms@gnu.org>1993-03-31 05:46:40 +0000
commit4b438c9e617a7e48e49c10e4522ea7fddb1dfbab (patch)
treee6c88132acf9a28c8ccfe3d55e77016f3d5103aa
parent1454a5ba185887d58409c98864f4ad0d87e3a3fc (diff)
downloadgcc-4b438c9e617a7e48e49c10e4522ea7fddb1dfbab.zip
gcc-4b438c9e617a7e48e49c10e4522ea7fddb1dfbab.tar.gz
gcc-4b438c9e617a7e48e49c10e4522ea7fddb1dfbab.tar.bz2
(split_double) : Use REAL_VALUE macros to extract ints
from float mode CONST_DOUBLEs. From-SVN: r3937
-rw-r--r--gcc/final.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 1c1080f..cd21940 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -2524,6 +2524,13 @@ split_double (value, first, second)
}
else
{
+#ifdef REAL_ARITHMETIC
+ REAL_VALUE_TYPE r; HOST_WIDE_INT l[2];
+ REAL_VALUE_FROM_CONST_DOUBLE (r, value);
+ REAL_VALUE_TO_TARGET_DOUBLE (r, l);
+ *first = GEN_INT (l[0]);
+ *second = GEN_INT (l[1]);
+#else
if ((HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT
|| HOST_BITS_PER_WIDE_INT != BITS_PER_WORD)
&& ! flag_pretend_float)
@@ -2537,6 +2544,7 @@ split_double (value, first, second)
*second = GEN_INT (CONST_DOUBLE_LOW (value));
*first = GEN_INT (CONST_DOUBLE_HIGH (value));
#endif
+#endif /* no REAL_ARITHMETIC */
}
}