diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-03-17 14:01:25 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-03-17 14:01:25 -0700 |
commit | 6b0ae684af62be7ca8682388b263a475b09dce8a (patch) | |
tree | 15c1c86465bd496d5c6045675cf04c7092f04908 /gcc | |
parent | a9a54fe80d50adac44457f49bc0b67524ed04c05 (diff) | |
download | gcc-6b0ae684af62be7ca8682388b263a475b09dce8a.zip gcc-6b0ae684af62be7ca8682388b263a475b09dce8a.tar.gz gcc-6b0ae684af62be7ca8682388b263a475b09dce8a.tar.bz2 |
pa.h (SECONDARY_MEMORY_NEEDED): Define.
* pa.h (SECONDARY_MEMORY_NEEDED): Define.
(SECONDARY_MEMORY_NEEDED_RTX): Define.
From-SVN: r3766
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index e50ce45..d2550cb 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -600,6 +600,16 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS, #define SECONDARY_RELOAD_CLASS(CLASS,MODE,IN) \ secondary_reload_class (CLASS, MODE, IN) +/* On the PA it is not possible to directly move data between + GENERAL_REGS and FP_REGS. */ +#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ + ((FP_REG_CLASS_P (CLASS1) && ! FP_REG_CLASS_P (CLASS2)) \ + || (! FP_REG_CLASS_P (CLASS1) && FP_REG_CLASS_P (CLASS2))) + +/* Return the stack location to use for secondary memory needed reloads. */ +#define SECONDARY_MEMORY_NEEDED_RTX(MODE) \ + gen_rtx (MEM, MODE, gen_rtx (PLUS, Pmode, stack_pointer_rtx, GEN_INT (-16))) + /* Return the maximum number of consecutive registers needed to represent mode MODE in a register of class CLASS. */ #define CLASS_MAX_NREGS(CLASS, MODE) \ |