From: Richard Henderson Date: Tue, 25 Jan 2000 10:38:41 +0000 (-0800) Subject: alpha.c (secondary_reload_class): Don't allocate a secondary for integral mode memori... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=41bd3d41301e812200371a73c7eddd1b0f0ddf44;p=gcc.git alpha.c (secondary_reload_class): Don't allocate a secondary for integral mode memories into FLOAT_REGS. * alpha.c (secondary_reload_class): Don't allocate a secondary for integral mode memories into FLOAT_REGS. Rearrange the more complicated memory expression inward. From-SVN: r31606 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b14ef144add..f89a936cb2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-01-25 Richard Henderson + + * alpha.c (secondary_reload_class): Don't allocate a secondary + for integral mode memories into FLOAT_REGS. Rearrange the more + complicated memory expression inward. + 2000-01-25 Zack Weinberg * inclhack.def: Fixes to play nicer with FreeBSD, and diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index cbc16883d6f..fa59cc1b373 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1095,16 +1095,14 @@ secondary_reload_class (class, mode, x, in) rtx x; int in; { - if (GET_CODE (x) == MEM - || (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER) - || (GET_CODE (x) == SUBREG - && (GET_CODE (SUBREG_REG (x)) == MEM - || (GET_CODE (SUBREG_REG (x)) == REG - && REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER)))) - { - if (class == FLOAT_REGS && mode != DImode) - return GENERAL_REGS; - if ((mode == QImode || mode == HImode) && ! TARGET_BWX) + if ((mode == QImode || mode == HImode) && ! TARGET_BWX) + { + if (GET_CODE (x) == MEM + || (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER) + || (GET_CODE (x) == SUBREG + && (GET_CODE (SUBREG_REG (x)) == MEM + || (GET_CODE (SUBREG_REG (x)) == REG + && REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER)))) { if (!in || !aligned_memory_operand(x, mode)) return GENERAL_REGS;