From 7f2868229492f93dae49d720198794120c7b7247 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Thu, 13 May 1993 13:57:34 +0000 Subject: [PATCH] (ASM_OUTPUT_FLOAT_OPERAND): Output as hex, unless CODE is 'f'. From-SVN: r4437 --- gcc/config/m68k/next.h | 36 ++++++++++++++++++++------------ gcc/config/m68k/sun2o4.h | 44 ++++++++++++++++++++++++---------------- 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 c336d67fbe0..845bf7c1b93 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 04b425e355f..6ae0ca8bc2a 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 b8c67f69fc7..9ab1bcc2b24 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 -- 2.30.2