diff options
author | Richard Henderson <rth@redhat.com> | 2002-09-17 02:30:47 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-09-17 02:30:47 -0700 |
commit | eaff3bf8c3fca80a61ee8b00e13a6e8a0a11da37 (patch) | |
tree | ac34a77939ea0c0f8fa6f3006381bc025c15b4f0 /gcc | |
parent | 34bdc2473cd4064f5af53c29e557bd38c9fa17e4 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/trans.c | 12 | ||||
-rw-r--r-- | gcc/config/dsp16xx/dsp16xx.md | 2 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.c | 18 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 8 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 16 |
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 |