From d398b3b1338cccbc2861959d2eef8515af9cf6c3 Mon Sep 17 00:00:00 2001 From: James Van Artsdalen Date: Mon, 22 Mar 1993 07:42:38 +0000 Subject: [PATCH] (PREFERRED_RELOAD_CLASS): Only narrow MODE_FLOAT reloads from ALL_REGS to GENERAL_REGS. (PREFERRED_RELOAD_CLASS): Only narrow MODE_FLOAT reloads from ALL_REGS to GENERAL_REGS. (PREFERRED_OUTPUT_RELOAD_CLASS): Deleted. (INIT_EXPANDERS): New macro. From-SVN: r3828 --- gcc/config/i386/i386.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index fff1aab81eed..f6d2bee352bb 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -529,21 +529,16 @@ extern enum reg_class regclass_map[FIRST_PSEUDO_REGISTER]; reloaded into floating registers (since no move-insn can do that) and we ensure that QImodes aren't reloaded into the esi or edi reg. */ -/* Don't put float CONST_DOUBLE into fp regs. +/* Put float CONST_DOUBLE in the constant pool instead of fp regs. QImode must go into class Q_REGS. - MODE_INT must not go into FLOAT_REGS. */ + Narrow ALL_REGS to GENERAL_REGS. This supports allowing movsf and + movdf to do mem-to-mem moves through integer regs. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != VOIDmode ? NO_REGS \ : GET_MODE (X) == QImode && ! reg_class_subset_p (CLASS, Q_REGS) ? Q_REGS \ - : (FLOAT_CLASS_P (CLASS) \ - && (GET_MODE (X) == VOIDmode \ - || GET_MODE_CLASS (GET_MODE (X)) == MODE_INT)) ? GENERAL_REGS \ - : (CLASS) == ALL_REGS ? GENERAL_REGS \ - : (CLASS)) - -#define PREFERRED_OUTPUT_RELOAD_CLASS(X,CLASS) \ - ((CLASS) == ALL_REGS ? GENERAL_REGS \ + : ((CLASS) == ALL_REGS \ + && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) ? GENERAL_REGS \ : (CLASS)) /* If we are copying between general and FP registers, we need a memory @@ -1090,6 +1085,13 @@ do \ } \ } \ while (0) + +/* Initialize data used by insn expanders. This is called from + init_emit, once for each function, before code is generated. + For 386, clear stack slot assignments remembered from previous + functions. */ + +#define INIT_EXPANDERS clear_386_stack_locals () /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ -- 2.43.5