summaryrefslogtreecommitdiff
path: root/gcc/dfp.c
diff options
context:
space:
mode:
authorMichael Meissner <michael.meissner@amd.com>2007-03-24 17:04:47 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2007-03-24 17:04:47 +0000
commit79b87c74d764bd42703818289685e48996b54eb8 (patch)
treeec50c8ab7786788a6da7d4f06b0cd93e9555d487 /gcc/dfp.c
parentcca643862ddb1f61f200b567c667576d39961fb2 (diff)
Add BID decimal support
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com> Co-Authored-By: Marius Cornea <marius.cornea@intel.com> From-SVN: r123185
Diffstat (limited to 'gcc/dfp.c')
-rw-r--r--gcc/dfp.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/dfp.c b/gcc/dfp.c
index b388f934393..c15afa91c90 100644
--- a/gcc/dfp.c
+++ b/gcc/dfp.c
@@ -1,5 +1,5 @@
/* Decimal floating point support.
- Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -656,11 +656,9 @@ decimal_real_arithmetic (REAL_VALUE_TYPE *r, enum tree_code code,
case NEGATE_EXPR:
{
- decimal128 *d128;
*r = *op0;
- d128 = (decimal128 *) r->sig;
- /* Flip high bit. */
- d128->bytes[0] ^= 1 << 7;
+ /* Flip sign bit. */
+ decimal128FlipSign ((decimal128 *) r->sig);
/* Keep sign field in sync. */
r->sign ^= 1;
}
@@ -668,11 +666,9 @@ decimal_real_arithmetic (REAL_VALUE_TYPE *r, enum tree_code code,
case ABS_EXPR:
{
- decimal128 *d128;
*r = *op0;
- d128 = (decimal128 *) r->sig;
- /* Clear high bit. */
- d128->bytes[0] &= 0x7f;
+ /* Clear sign bit. */
+ decimal128ClearSign ((decimal128 *) r->sig);
/* Keep sign field in sync. */
r->sign = 0;
}
@@ -712,5 +708,5 @@ decimal_real_maxval (REAL_VALUE_TYPE *r, int sign, enum machine_mode mode)
decimal_real_from_string (r, max);
if (sign)
- r->sig[0] |= 0x80000000;
+ decimal128SetSign ((decimal128 *) r->sig, 1);
}