From 6b0ae684af62be7ca8682388b263a475b09dce8a Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 17 Mar 1993 14:01:25 -0700 Subject: [PATCH] pa.h (SECONDARY_MEMORY_NEEDED): Define. * pa.h (SECONDARY_MEMORY_NEEDED): Define. (SECONDARY_MEMORY_NEEDED_RTX): Define. From-SVN: r3766 --- gcc/config/pa/pa.h | 10 ++++++++++ 1 file changed, 10 insertions(+) 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) \ -- 2.7.4