diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-07-21 12:34:37 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-07-21 12:34:37 -0700 |
commit | b924cef029b49df4cb6b899126738825bcbffc75 (patch) | |
tree | 8e21433833469a5de5e14d36da5dbe3693f041f2 | |
parent | aa265568fec8d266353508bb56148af08242400d (diff) | |
download | gcc-b924cef029b49df4cb6b899126738825bcbffc75.zip gcc-b924cef029b49df4cb6b899126738825bcbffc75.tar.gz gcc-b924cef029b49df4cb6b899126738825bcbffc75.tar.bz2 |
(SECONDARY_MEMORY_NEEDED): Define to force reload to
handle any copy between GENERAL_REGS and FP_REGS.
From-SVN: r1657
-rw-r--r-- | gcc/config/sparc/sparc.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index d6d43ef..c3c9614 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -569,6 +569,13 @@ extern char leaf_reg_backmap[]; #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, IN) \ (flag_pic && pic_address_needs_scratch (IN) ? GENERAL_REGS : NO_REGS) +/* On SPARC it is not possible to directly move data between + GENERAL_REGS and FP_REGS. */ +#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ + ((CLASS1 == FP_REGS && CLASS2 == GENERAL_REGS) \ + || (CLASS1 == GENERAL_REGS && CLASS2 == FP_REGS)) + + /* Return the maximum number of consecutive registers needed to represent mode MODE in a register of class CLASS. */ /* On SPARC, this is the size of MODE in words. */ |