* trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Sep 2002 09:30:47 +0000 (09:30 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Sep 2002 09:30:47 +0000 (09:30 +0000)
        * 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57245 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/trans.c
gcc/config/dsp16xx/dsp16xx.md
gcc/config/m68k/m68k.c
gcc/config/mips/mips.md
gcc/doc/tm.texi

index 5abdca2..2ba9289 100644 (file)
@@ -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>
 
index 2fafd48..92b7ceb 100644 (file)
@@ -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
index f39f183..89c09a1 100644 (file)
   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 */
     {
index 5302ff2..acc61bd 100644 (file)
@@ -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;
 }
 \f
index 10b8b62..f68d454 100644 (file)
@@ -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 */
     {
index 4629a12..b4a808b 100644 (file)
@@ -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