aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-03-31 20:57:52 +0000
committerRichard Stallman <rms@gnu.org>1993-03-31 20:57:52 +0000
commit4179196a15c43513e08544ff61486134c4b9abd2 (patch)
treea6791ee5b67e0af3e731f0afbf4c83d076d8beda
parent5a3d4befaf03c1f5cc09f841520f26865c98d387 (diff)
downloadgcc-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.h21
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) \