summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)
OpenPOWER on IntegriCloud