(ASM_OUTPUT_DOUBLE,ASM_OUTPUT_FLOAT): Use REAL_VALUE_ macros.

(ASM_OUTPUT_LONG_DOUBLE): New macro.
(VALUE_REGNO): Add case XFmode.

From-SVN: r5574
This commit is contained in:
James Van Artsdalen 1993-10-03 23:59:48 +00:00
parent 4fb21e9046
commit 4a37b93925

View File

@ -38,20 +38,39 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef VALUE_REGNO
#define VALUE_REGNO(MODE) \
(((MODE)==SFmode || (MODE)==DFmode) ? FIRST_FLOAT_REG : 0)
((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode \
? FIRST_FLOAT_REG : 0)
/* 1 if N is a possible register number for a function value. */
#undef FUNCTION_VALUE_REGNO_P
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 0 || (N)== FIRST_FLOAT_REG)
#ifdef REAL_VALUE_TO_TARGET_LONG_DOUBLE
#undef ASM_OUTPUT_LONG_DOUBLE
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { \
long hex[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n\t.long 0x%x\n", \
hex[0], hex[1], hex[2]); \
else \
fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n\t.long 0x%lx\n", \
hex[0], hex[1], hex[2]); \
} while (0)
#endif
#ifdef REAL_VALUE_TO_TARGET_DOUBLE
#undef ASM_OUTPUT_DOUBLE
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { \
long hex[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n", hex[0], hex[1]); \
else \
fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", hex[0], hex[1]); \
} while (0)
#endif
@ -63,7 +82,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
do { \
long hex; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
fprintf (FILE, "\t.long 0x%x\n", hex); \
else \
fprintf (FILE, "\t.long 0x%lx\n", hex); \
} while (0)
#endif