aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-03-20 19:38:40 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-03-20 19:38:40 -0500
commita61e5d28e921f75e4219377d941942c8eef711dd (patch)
treea0afc5e1aad48808832a3ee8e5aa3a2360a73f33
parent1e6c6f1118ad03697e3afe11edf2f84b2da978a2 (diff)
downloadgcc-a61e5d28e921f75e4219377d941942c8eef711dd.zip
gcc-a61e5d28e921f75e4219377d941942c8eef711dd.tar.gz
gcc-a61e5d28e921f75e4219377d941942c8eef711dd.tar.bz2
(PRINT_OPERAND): Print float infinity and NaN's as +/-99e999.
From-SVN: r6835
-rw-r--r--gcc/config/m68k/news.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/gcc/config/m68k/news.h b/gcc/config/m68k/news.h
index 3ed0ab9..3e879b5 100644
--- a/gcc/config/m68k/news.h
+++ b/gcc/config/m68k/news.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. SONY NEWS-OS 4 version.
- Copyright (C) 1987, 1989, 1993 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1989, 1993, 1994 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -319,7 +319,15 @@ do { char dstr[30]; \
if (CODE == 'f') \
{ char dstr[30]; \
REAL_VALUE_TO_DECIMAL (r, "%.9e", dstr); \
- fprintf (FILE, "#0f%s", dstr); \
+ if (REAL_VALUE_ISINF (r) || REAL_VALUE_ISNAN (r)) { \
+ if (REAL_VALUE_NEGATIVE (r)) \
+ fprintf (FILE, "#0f-99e999"); \
+ else \
+ fprintf (FILE, "#0f99e999"); } \
+ else if (REAL_VALUE_MINUS_ZERO (r)) \
+ fprintf (FILE, "#0f-0.0"); \
+ else \
+ fprintf (FILE, "#0f%s", dstr); \
} \
else \
{ long l; \
@@ -334,7 +342,15 @@ do { char dstr[30]; \
{ REAL_VALUE_TYPE r; char dstr[30]; \
REAL_VALUE_FROM_CONST_DOUBLE (r, X); \
REAL_VALUE_TO_DECIMAL (r, "%.20e", dstr ); \
- fprintf (FILE, "#0d%s", dstr); } \
+ if (REAL_VALUE_ISINF (r) || REAL_VALUE_ISNAN (r)) { \
+ if (REAL_VALUE_NEGATIVE (r)) \
+ fprintf (FILE, "#0d-99e999"); \
+ else \
+ fprintf (FILE, "#0d99e999"); } \
+ else if (REAL_VALUE_MINUS_ZERO (r)) \
+ fprintf (FILE, "#0d-0.0"); \
+ else \
+ fprintf (FILE, "#0d%s", dstr); } \
else if (CODE == 'b') output_addr_const (FILE, X); \
else { putc ('#', FILE); output_addr_const (FILE, X); }}