From: Richard Stallman Date: Sun, 14 Jun 1992 22:15:08 +0000 (+0000) Subject: (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f21d67da84985ebd2beaf1c8ca00db461eaa70a9;p=gcc.git (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss. From-SVN: r1205 --- 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')) \