From f21d67da84985ebd2beaf1c8ca00db461eaa70a9 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sun, 14 Jun 1992 22:15:08 +0000 Subject: [PATCH] (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss. From-SVN: r1205 --- gcc/config/i860/i860.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h index dd2c6a8adb5..3ebcf70a6f9 100644 --- a/gcc/config/i860/i860.h +++ b/gcc/config/i860/i860.h @@ -350,10 +350,16 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES }; integer register to an FP register. If we are trying to put a non-zero floating-point constant into some register, use an integer register if the constant is SFmode and GENERAL_REGS is one of our options. - Otherwise, put the constant into memory. */ + Otherwise, put the constant into memory. + + When reloading something smaller than a word, use a general reg + rather than an FP reg. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ ((CLASS) == ALL_REGS && GET_CODE (X) == CONST_INT ? GENERAL_REGS \ + : ((GET_MODE (X) == HImode || GET_MODE (X) == QImode) \ + && (CLASS) == ALL_REGS) \ + ? GENERAL_REGS \ : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ && ! CONST_DOUBLE_OK_FOR_LETTER_P (X, 'G')) \ -- 2.30.2