aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-09-17 02:30:47 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-09-17 02:30:47 -0700
commiteaff3bf8c3fca80a61ee8b00e13a6e8a0a11da37 (patch)
treeac34a77939ea0c0f8fa6f3006381bc025c15b4f0
parent34bdc2473cd4064f5af53c29e557bd38c9fa17e4 (diff)
downloadgcc-eaff3bf8c3fca80a61ee8b00e13a6e8a0a11da37.zip
gcc-eaff3bf8c3fca80a61ee8b00e13a6e8a0a11da37.tar.gz
gcc-eaff3bf8c3fca80a61ee8b00e13a6e8a0a11da37.tar.bz2
trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
* trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP. * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN. * config/mips/mips.md (fixuns_truncdfsi2): Likewise. (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. * config/m68k/m68k.c (floating_exact_log2): Use real_exponent and real_2expN instead of a loop. * doc/tm.texi (REAL_VALUE_LDEXP): Remove. (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove. From-SVN: r57245
-rw-r--r--gcc/ada/ChangeLog11
-rw-r--r--gcc/ada/trans.c12
-rw-r--r--gcc/config/dsp16xx/dsp16xx.md2
-rw-r--r--gcc/config/m68k/m68k.c18
-rw-r--r--gcc/config/mips/mips.md8
-rw-r--r--gcc/doc/tm.texi16
6 files changed, 30 insertions, 37 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 5abdca2..2ba9289 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,14 @@
+2002-09-17 Richard Henderson <rth@redhat.com>
+
+ * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
+ * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
+ * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
+ (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
+ * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
+ and real_2expN instead of a loop.
+ * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
+ (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
+
2002-08-25 Andre Leis <a.leis@gmx.net>
David Billinghurst (David.Billinghurst@riotinto.com>
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index 2fafd48..92b7ceb 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -576,11 +576,13 @@ tree_transform (gnat_node)
gigi_abort (336);
else
- gnu_result
- = build_real (gnu_result_type,
- REAL_VALUE_LDEXP
- (TREE_REAL_CST (gnu_result),
- - UI_To_Int (Denominator (ur_realval))));
+ {
+ REAL_VALUE_TYPE tmp;
+
+ real_ldexp (&tmp, &TREE_REAL_CST (gnu_result),
+ - UI_To_Int (Denominator (ur_realval)));
+ gnu_result = build_real (gnu_result_type, tmp);
+ }
}
/* Now see if we need to negate the result. Do it this way to
diff --git a/gcc/config/dsp16xx/dsp16xx.md b/gcc/config/dsp16xx/dsp16xx.md
index f39f183..89c09a1 100644
--- a/gcc/config/dsp16xx/dsp16xx.md
+++ b/gcc/config/dsp16xx/dsp16xx.md
@@ -1937,7 +1937,7 @@
rtx label2 = gen_label_rtx ();
REAL_VALUE_TYPE offset;
- offset = REAL_VALUE_LDEXP (dconst1, 31);
+ real_2expN (&offset, 31);
if (reg1) /* turn off complaints about unreached code */
{
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 5302ff2..acc61bd 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -2719,22 +2719,18 @@ floating_exact_log2 (x)
rtx x;
{
REAL_VALUE_TYPE r, r1;
- int i;
+ int exp;
REAL_VALUE_FROM_CONST_DOUBLE (r, x);
- if (REAL_VALUES_LESS (r, dconst0))
+ if (REAL_VALUES_LESS (r, dconst1))
return 0;
- r1 = dconst1;
- i = 0;
- while (REAL_VALUES_LESS (r1, r))
- {
- r1 = REAL_VALUE_LDEXP (dconst1, i);
- if (REAL_VALUES_EQUAL (r1, r))
- return i;
- i = i + 1;
- }
+ exp = real_exponent (&r);
+ real_2expN (&r1, exp);
+ if (REAL_VALUES_EQUAL (r1, r))
+ return exp;
+
return 0;
}
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index 10b8b62..f68d454 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -4667,7 +4667,7 @@ move\\t%0,%z4\\n\\
rtx label2 = gen_label_rtx ();
REAL_VALUE_TYPE offset;
- offset = REAL_VALUE_LDEXP (dconst1, 31);
+ real_2expN (&offset, 31);
if (reg1) /* turn off complaints about unreached code */
{
@@ -4713,7 +4713,7 @@ move\\t%0,%z4\\n\\
rtx label2 = gen_label_rtx ();
REAL_VALUE_TYPE offset;
- offset = REAL_VALUE_LDEXP (dconst1, 63);
+ real_2expN (&offset, 63);
if (reg1) /* turn off complaints about unreached code */
{
@@ -4759,7 +4759,7 @@ move\\t%0,%z4\\n\\
rtx label2 = gen_label_rtx ();
REAL_VALUE_TYPE offset;
- offset = REAL_VALUE_LDEXP (dconst1, 31);
+ real_2expN (&offset, 31);
if (reg1) /* turn off complaints about unreached code */
{
@@ -4805,7 +4805,7 @@ move\\t%0,%z4\\n\\
rtx label2 = gen_label_rtx ();
REAL_VALUE_TYPE offset;
- offset = REAL_VALUE_LDEXP (dconst1, 63);
+ real_2expN (&offset, 63);
if (reg1) /* turn off complaints about unreached code */
{
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 4629a12..b4a808b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -8134,11 +8134,6 @@ floating point format supports negative zeroes and/or NaNs,
Tests whether @var{x} is less than @var{y}.
@end deftypefn
-@findex ldexp
-@deftypefn Macro REAL_VALUE_TYPE REAL_VALUE_LDEXP (REAL_VALUE_TYPE @var{x}, int @var{scale})
-Multiplies @var{x} by 2 raised to the power @var{scale}.
-@end deftypefn
-
@deftypefn Macro HOST_WIDE_INT REAL_VALUE_FIX (REAL_VALUE_TYPE @var{x})
Truncates @var{x} to a signed integer, rounding toward zero.
@end deftypefn
@@ -8148,17 +8143,6 @@ Truncates @var{x} to an unsigned integer, rounding toward zero. If
@var{x} is negative, returns zero.
@end deftypefn
-@deftypefn Macro REAL_VALUE_TYPE REAL_VALUE_RNDZINT (REAL_VALUE_TYPE @var{x})
-Rounds the target-machine floating point value @var{x} towards zero to an
-integer value, but leaves it represented as a floating point number.
-@end deftypefn
-
-@deftypefn Macro REAL_VALUE_TYPE REAL_VALUE_UNSIGNED_RNDZINT (REAL_VALUE_TYPE @var{x})
-Rounds the target-machine floating point value @var{x} towards zero to an
-unsigned integer value, but leaves it represented as a floating point
-number. If @var{x} is negative, returns (positive) zero.
-@end deftypefn
-
@deftypefn Macro REAL_VALUE_TYPE REAL_VALUE_ATOF (const char *@var{string}, enum machine_mode @var{mode})
Converts @var{string} into a floating point number in the target machine's
representation for mode @var{mode}. This routine can handle both