summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>1993-04-26 11:52:51 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>1993-04-26 11:52:51 +0000
commit2f6f7bcc4a6bbbcf407e48b654d6ec982573b7ea (patch)
treeb8c6b868b21919c5c71a4034eebb92270046664c /gcc
parent20b8623651daf27524a47bbed3eb5dd6ee6db527 (diff)
downloadgcc-2f6f7bcc4a6bbbcf407e48b654d6ec982573b7ea.tar.gz
(ASM_OUTPUT_LONG_DOUBLE): New macro.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4234 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/sparc/sparc.h11
-rw-r--r--gcc/config/sparc/sysv4.h13
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 0322d5c0473..b5a434690e3 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1629,6 +1629,17 @@ extern struct rtx_def *legitimize_pic_address ();
fprintf (FILE, "\t.single 0r%.9g\n", VALUE); \
}
+/* This is how to output an assembler line defining a `long double'
+ constant. */
+
+#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
+ { \
+ long t[4]; \
+ REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), t); \
+ fprintf (FILE, "\t%s\t0x%lx\n\t%s\t0x%lx\n\t%s\t0x%lx\n\t%s\t0x%lx\n", \
+ ASM_LONG, t[0], ASM_LONG, t[1], ASM_LONG, t[2], ASM_LONG, t[3]); \
+ }
+
/* This is how to output an assembler line defining an `int' constant. */
#define ASM_OUTPUT_INT(FILE,VALUE) \
diff --git a/gcc/config/sparc/sysv4.h b/gcc/config/sparc/sysv4.h
index 6759ae32019..f36fd356772 100644
--- a/gcc/config/sparc/sysv4.h
+++ b/gcc/config/sparc/sysv4.h
@@ -184,3 +184,16 @@ do { long value[2]; \
#endif /* word order matches */
#endif /* HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT */
+
+/* This is how to output an assembler line defining a `long double'
+ constant. */
+
+#undef ASM_OUTPUT_LONG_DOUBLE
+#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
+do { long value[4]; \
+ REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
+ fprintf((FILE), "\t.long\t0x%x\n", value[0]); \
+ fprintf((FILE), "\t.long\t0x%x\n", value[1]); \
+ fprintf((FILE), "\t.long\t0x%x\n", value[2]); \
+ fprintf((FILE), "\t.long\t0x%x\n", value[3]); \
+ } while (0)