diff options
author | Doug Evans <dje@gnu.org> | 1993-04-26 11:52:51 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1993-04-26 11:52:51 +0000 |
commit | 0cd02cbbfb635002ecd371f79243933fc34b1f47 (patch) | |
tree | b8c6b868b21919c5c71a4034eebb92270046664c /gcc | |
parent | 33d9bef5abfde175c943db1d2c1a3172c0ba21e4 (diff) | |
download | gcc-0cd02cbbfb635002ecd371f79243933fc34b1f47.zip gcc-0cd02cbbfb635002ecd371f79243933fc34b1f47.tar.gz gcc-0cd02cbbfb635002ecd371f79243933fc34b1f47.tar.bz2 |
(ASM_OUTPUT_LONG_DOUBLE): New macro.
From-SVN: r4234
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sparc.h | 11 | ||||
-rw-r--r-- | gcc/config/sparc/sysv4.h | 13 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 0322d5c..b5a4346 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 6759ae3..f36fd35 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) |