From: Richard Kenner Date: Sun, 6 Mar 1994 00:17:43 +0000 (-0500) Subject: (SECONDARY_MEMORY_NEEDED_MODE): New macro. X-Git-Tag: misc/cutover-egcs-0~7245 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=acd94aaf191a1c09fe1154b58c7409a95846d6a5;p=gcc.git (SECONDARY_MEMORY_NEEDED_MODE): New macro. From-SVN: r6698 --- diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index 71d8953e3980..ccb46c41c57e 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -554,6 +554,15 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS, #define SECONDARY_MEMORY_NEEDED(CLASS1,CLASS2,MODE) ((CLASS1) != (CLASS2)) +/* Specify the mode to be used for memory when a secondary memory + location is needed. If MODE is floating-point, use it. Otherwise, + widen to a word like the default. This is needed because we always + store integers in FP registers in quadword format. This whole + area is very tricky! */ +#define SECONDARY_MEMORY_NEEDED_MODE(MODE) \ + (GET_MODE_CLASS (MODE) == MODE_FLOAT ? (MODE) \ + : mode_for_size (BITS_PER_WORD, GET_MODE_CLASS (MODE), 0)) + /* Return the maximum number of consecutive registers needed to represent mode MODE in a register of class CLASS. */