diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-05-13 13:57:34 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-05-13 13:57:34 +0000 |
commit | a56dae6198e95d23622d2694345aa496ca295c23 (patch) | |
tree | d5cd3e72ac4256e4526025e110f52addd48cb8da /gcc/config/m68k/sun3.h | |
parent | 2ebf01519627435875903f6fcd672430aa21aa12 (diff) |
(ASM_OUTPUT_FLOAT_OPERAND): Output as hex, unless CODE is 'f'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4437 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/sun3.h')
-rw-r--r-- | gcc/config/m68k/sun3.h | 44 |
1 files changed, 27 insertions, 17 deletions
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 |