real.c (etoasc): Strip most trailing zeros for clarity.
authorRichard Henderson <rth@redhat.com>
Sat, 4 May 2002 00:51:02 +0000 (17:51 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 4 May 2002 00:51:02 +0000 (17:51 -0700)
        * real.c (etoasc): Strip most trailing zeros for clarity.
        * sched-vis.c: Include real.h.
        (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
        * Makefile.in (sched-vis.o): Add real.h.

From-SVN: r53137

gcc/ChangeLog
gcc/Makefile.in
gcc/real.c
gcc/sched-vis.c

index 70f28194df7e1f72328e3e30423e4b6a792c0c90..d838272ff981cdc593525d226028deea26648145 100644 (file)
@@ -1,3 +1,10 @@
+2002-05-03  Richard Henderson  <rth@redhat.com>
+
+       * real.c (etoasc): Strip most trailing zeros for clarity.
+       * sched-vis.c: Include real.h.
+       (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
+       * Makefile.in (sched-vis.o): Add real.h.
+
 2002-05-03  David S. Miller  <davem@redhat.com>
 
        * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
index 8407632dcfad20bb822845818d5a467b15a9dec2..f66179dedaebf601c420f389b3b977db91e7ea91 100644 (file)
@@ -1599,7 +1599,7 @@ sched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \
    $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H)
 sched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \
    hard-reg-set.h $(BASIC_BLOCK_H) $(INSN_ATTR_H) $(REGS_H) $(TM_P_H) \
-   $(TARGET_H)
+   $(TARGET_H) real.h
 final.o : final.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h intl.h \
    $(REGS_H) $(RECOG_H) conditions.h insn-config.h $(INSN_ATTR_H) function.h \
    real.h output.h hard-reg-set.h except.h debug.h xcoffout.h \
index 56b365ef3635481c0ae286ab9e2d87b1a2028af4..0c951f62a985beb8e17509557a491005b06bb51e 100644 (file)
@@ -5004,12 +5004,9 @@ etoasc (x, string, ndigs)
        }
     }
  doexp:
-  /*
-     if (expon >= 0)
-     sprintf (ss, "e+%d", expon);
-     else
-     sprintf (ss, "e%d", expon);
-     */
+  /* Strip trailing zeros, but leave at least one.  */
+  while (ss[-1] == '0' && ss[-2] != '.')
+    --ss;
   sprintf (ss, "e%d", expon);
  bxit:
   rndprc = rndsav;
index 48b68542edc36f28ef6e6858f9ec5f90bd3d7baf..e49d4bfeb1b88fce3d5dbecf8493bf5d4794c9e2 100644 (file)
@@ -30,6 +30,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "hard-reg-set.h"
 #include "basic-block.h"
 #include "insn-attr.h"
+#include "real.h"
 #include "sched-int.h"
 #include "target.h"
 
@@ -560,7 +561,15 @@ print_value (buf, x, verbose)
       cur = safe_concat (buf, cur, t);
       break;
     case CONST_DOUBLE:
-      sprintf (t, "<0x%lx,0x%lx>", (long) XWINT (x, 2), (long) XWINT (x, 3));
+      if (FLOAT_MODE_P (GET_MODE (x)))
+       {
+         REAL_VALUE_TYPE r;
+
+         REAL_VALUE_FROM_CONST_DOUBLE (r, x);
+         REAL_VALUE_TO_DECIMAL(r, "%.6e", t);
+       }
+      else
+       sprintf (t, "<0x%lx,0x%lx>", (long) XWINT (x, 2), (long) XWINT (x, 3));
       cur = safe_concat (buf, cur, t);
       break;
     case CONST_STRING: