diff options
author | Richard Stallman <rms@gnu.org> | 1993-03-31 20:57:52 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-03-31 20:57:52 +0000 |
commit | 4179196a15c43513e08544ff61486134c4b9abd2 (patch) | |
tree | a6791ee5b67e0af3e731f0afbf4c83d076d8beda | |
parent | 5a3d4befaf03c1f5cc09f841520f26865c98d387 (diff) | |
download | gcc-4179196a15c43513e08544ff61486134c4b9abd2.zip gcc-4179196a15c43513e08544ff61486134c4b9abd2.tar.gz gcc-4179196a15c43513e08544ff61486134c4b9abd2.tar.bz2 |
(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT):
Use new REAL_VALUE... macros.
(ASM_OUTPUT_LONG_DOUBLE): New definition.
From-SVN: r3964
-rw-r--r-- | gcc/config/m68k/3b1.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/config/m68k/3b1.h b/gcc/config/m68k/3b1.h index c92de6b..f22cf0d 100644 --- a/gcc/config/m68k/3b1.h +++ b/gcc/config/m68k/3b1.h @@ -137,15 +137,24 @@ output_file_directive ((FILE), main_input_filename) /* The unixpc doesn't know about double's and float's */ #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ -do { union { double d; long l[2]; } tem; \ - tem.d = (VALUE); \ - fprintf(FILE, "\tlong 0x%x,0x%x\n", tem.l[0], tem.l[1]); \ +do { long l[2]; \ + REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \ + fprintf (FILE, "\tlong 0x%x,0x%x\n", l[0], l[1]); \ } while (0) +#undef ASM_OUTPUT_LONG_DOUBLE +#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \ +do { long l[3]; \ + REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \ + fprintf (FILE, "\tlong 0x%x,0x%x,0x%x\n", l[0], l[1], l[2]); \ + } while (0) + +/* This is how to output an assembler line defining a `float' constant. */ + #define ASM_OUTPUT_FLOAT(FILE,VALUE) \ -do { union { float f; long l;} tem; \ - tem.f = (VALUE); \ - fprintf (FILE, "\tlong 0x%x\n", tem.l); \ +do { long l; \ + REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ + fprintf ((FILE), "\tlong 0x%x\n", l); \ } while (0) #define ASM_OUTPUT_ALIGN(FILE,LOG) \ |