diff options
author | David S. Miller <davem@davemloft.net> | 2011-10-22 07:05:32 +0000 |
---|---|---|
committer | David S. Miller <davem@gcc.gnu.org> | 2011-10-22 00:05:32 -0700 |
commit | 9dc98917cce188038d303658a27d2de6450ad5c3 (patch) | |
tree | 9c75b177564ea7fa4887b9d84aed1b0728edbffd /gcc/config/sparc/sparc.h | |
parent | 40c4cbcd82d343e9c9c6b9e1bd7ba8ab04e9220d (diff) | |
download | gcc-9dc98917cce188038d303658a27d2de6450ad5c3.zip gcc-9dc98917cce188038d303658a27d2de6450ad5c3.tar.gz gcc-9dc98917cce188038d303658a27d2de6450ad5c3.tar.bz2 |
Convert sparc over to TARGET_SECONDARY_RELOAD.
gcc/
* config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
* config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
(sparc_secondary_reload): New function.
From-SVN: r180323
Diffstat (limited to 'gcc/config/sparc/sparc.h')
-rw-r--r-- | gcc/config/sparc/sparc.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index e0db816..9b7835e 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1112,54 +1112,6 @@ extern char leaf_reg_remap[]; #define SPARC_SETHI32_P(X) \ (SPARC_SETHI_P ((unsigned HOST_WIDE_INT) (X) & GET_MODE_MASK (SImode))) -/* Return the register class of a scratch register needed to load IN into - a register of class CLASS in MODE. - - We need a temporary when loading/storing a HImode/QImode value - between memory and the FPU registers. This can happen when combine puts - a paradoxical subreg in a float/fix conversion insn. - - We need a temporary when loading/storing a DFmode value between - unaligned memory and the upper FPU registers. */ - -#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, IN) \ - ((FP_REG_CLASS_P (CLASS) \ - && ((MODE) == HImode || (MODE) == QImode) \ - && (GET_CODE (IN) == MEM \ - || ((GET_CODE (IN) == REG || GET_CODE (IN) == SUBREG) \ - && true_regnum (IN) == -1))) \ - ? GENERAL_REGS \ - : ((CLASS) == EXTRA_FP_REGS && (MODE) == DFmode \ - && GET_CODE (IN) == MEM && TARGET_ARCH32 \ - && ! mem_min_alignment ((IN), 8)) \ - ? FP_REGS \ - : (((TARGET_CM_MEDANY \ - && symbolic_operand ((IN), (MODE))) \ - || (TARGET_CM_EMBMEDANY \ - && text_segment_operand ((IN), (MODE)))) \ - && !flag_pic) \ - ? GENERAL_REGS \ - : NO_REGS) - -#define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, IN) \ - ((FP_REG_CLASS_P (CLASS) \ - && ((MODE) == HImode || (MODE) == QImode) \ - && (GET_CODE (IN) == MEM \ - || ((GET_CODE (IN) == REG || GET_CODE (IN) == SUBREG) \ - && true_regnum (IN) == -1))) \ - ? GENERAL_REGS \ - : ((CLASS) == EXTRA_FP_REGS && (MODE) == DFmode \ - && GET_CODE (IN) == MEM && TARGET_ARCH32 \ - && ! mem_min_alignment ((IN), 8)) \ - ? FP_REGS \ - : (((TARGET_CM_MEDANY \ - && symbolic_operand ((IN), (MODE))) \ - || (TARGET_CM_EMBMEDANY \ - && text_segment_operand ((IN), (MODE)))) \ - && !flag_pic) \ - ? 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) \ |