diff options
author | Richard Stallman <rms@gnu.org> | 1993-05-13 13:57:34 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-05-13 13:57:34 +0000 |
commit | 7f2868229492f93dae49d720198794120c7b7247 (patch) | |
tree | d5cd3e72ac4256e4526025e110f52addd48cb8da | |
parent | bc6c7882a7b661769d3d44c79e21cc2bc09658b8 (diff) | |
download | gcc-7f2868229492f93dae49d720198794120c7b7247.zip gcc-7f2868229492f93dae49d720198794120c7b7247.tar.gz gcc-7f2868229492f93dae49d720198794120c7b7247.tar.bz2 |
(ASM_OUTPUT_FLOAT_OPERAND): Output as hex, unless CODE is 'f'.
From-SVN: r4437
-rw-r--r-- | gcc/config/m68k/next.h | 36 | ||||
-rw-r--r-- | gcc/config/m68k/sun2o4.h | 44 | ||||
-rw-r--r-- | gcc/config/m68k/sun3.h | 44 |
3 files changed, 77 insertions, 47 deletions
diff --git a/gcc/config/m68k/next.h b/gcc/config/m68k/next.h index c336d67..845bf7c 100644 --- a/gcc/config/m68k/next.h +++ b/gcc/config/m68k/next.h @@ -102,19 +102,29 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ fprintf (FILE, "#0%c%x", (CODE) == 'f' ? 'b' : 'x', hex); \ } while (0) #else -#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ - do{ if (REAL_VALUE_ISINF (VALUE)) \ - { \ - if (REAL_VALUE_NEGATIVE (VALUE)) \ - fprintf (FILE, "#0r-99e999"); \ - else \ - fprintf (FILE, "#0r99e999"); \ - } \ - else \ - { char dstr[30]; \ - REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ - fprintf (FILE, "#0r%s", dstr); \ - } \ +#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ + do{ \ + if (CODE != 'f') \ + { \ + long l; \ + REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ + if (sizeof (int) == sizeof (long)) \ + asm_fprintf ((FILE), "%I0x%x", l); \ + else \ + asm_fprintf ((FILE), "%I0x%lx", l); \ + } \ + else if (REAL_VALUE_ISINF (VALUE)) \ + { \ + if (REAL_VALUE_NEGATIVE (VALUE)) \ + fprintf (FILE, "#0r-99e999"); \ + else \ + fprintf (FILE, "#0r99e999"); \ + } \ + else \ + { char dstr[30]; \ + REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ + fprintf (FILE, "#0r%s", dstr); \ + } \ } while (0) #endif diff --git a/gcc/config/m68k/sun2o4.h b/gcc/config/m68k/sun2o4.h index 04b425e..6ae0ca8 100644 --- a/gcc/config/m68k/sun2o4.h +++ b/gcc/config/m68k/sun2o4.h @@ -138,23 +138,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ } while (0) #undef ASM_OUTPUT_FLOAT_OPERAND -#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ - do { if (REAL_VALUE_ISINF (VALUE)) \ - { \ - if (REAL_VALUE_NEGATIVE (VALUE)) \ - fprintf (FILE, "#0r-99e999"); \ - else \ - fprintf (FILE, "#0r99e999"); \ - } \ - else if (REAL_VALUE_MINUS_ZERO (VALUE)) \ - { \ - fprintf (FILE, "#0r-0.0"); \ - } \ - else \ - { char dstr[30]; \ - REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ - fprintf (FILE, "#0r%s", dstr); \ - } \ +#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ + do { \ + if (CODE != 'f') \ + { \ + long l; \ + REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ + if (sizeof (int) == sizeof (long)) \ + asm_fprintf ((FILE), "%I0x%x", l); \ + else \ + asm_fprintf ((FILE), "%I0x%lx", l); \ + } \ + else if (REAL_VALUE_ISINF (VALUE)) \ + { \ + if (REAL_VALUE_NEGATIVE (VALUE)) \ + fprintf (FILE, "#0r-99e999"); \ + else \ + fprintf (FILE, "#0r99e999"); \ + } \ + else if (REAL_VALUE_MINUS_ZERO (VALUE)) \ + { \ + fprintf (FILE, "#0r-0.0"); \ + } \ + else \ + { char dstr[30]; \ + REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ + fprintf (FILE, "#0r%s", dstr); \ + } \ } while (0) #undef ASM_OUTPUT_DOUBLE_OPERAND diff --git a/gcc/config/m68k/sun3.h b/gcc/config/m68k/sun3.h index b8c67f6..9ab1bcc 100644 --- a/gcc/config/m68k/sun3.h +++ b/gcc/config/m68k/sun3.h @@ -224,23 +224,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ There's no way to output a NaN's fraction, so we lose it. */ #undef ASM_OUTPUT_FLOAT_OPERAND -#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ - do { if (REAL_VALUE_ISINF (VALUE)) \ - { \ - if (REAL_VALUE_NEGATIVE (VALUE)) \ - asm_fprintf (FILE, "%I0r-99e999"); \ - else \ - asm_fprintf (FILE, "%I0r99e999"); \ - } \ - else if (REAL_VALUE_MINUS_ZERO (VALUE)) \ - { \ - asm_fprintf (FILE, "%I0r-0.0"); \ - } \ - else \ - { char dstr[30]; \ - REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ - asm_fprintf (FILE, "%I0r%s", dstr); \ - } \ +#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \ + do { \ + if (CODE != 'f') \ + { \ + long l; \ + REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ + if (sizeof (int) == sizeof (long)) \ + asm_fprintf ((FILE), "%I0x%x", l); \ + else \ + asm_fprintf ((FILE), "%I0x%lx", l); \ + } \ + else if (REAL_VALUE_ISINF (VALUE)) \ + { \ + if (REAL_VALUE_NEGATIVE (VALUE)) \ + asm_fprintf (FILE, "%I0r-99e999"); \ + else \ + asm_fprintf (FILE, "%I0r99e999"); \ + } \ + else if (REAL_VALUE_MINUS_ZERO (VALUE)) \ + { \ + asm_fprintf (FILE, "%I0r-0.0"); \ + } \ + else \ + { char dstr[30]; \ + REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr); \ + asm_fprintf (FILE, "%I0r%s", dstr); \ + } \ } while (0) #undef ASM_OUTPUT_DOUBLE_OPERAND |