From: Aldy Hernandez Date: Wed, 25 Oct 2000 03:13:19 +0000 (+0000) Subject: secondary_reload_class: treat pseudos like memory X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=15c097383f085dbb6e024f33dcd216657aa0e1bd;p=gcc.git secondary_reload_class: treat pseudos like memory From-SVN: r37042 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e87a789999..f557e825df8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-24 Aldy Hernandez + + * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos + like memory. + 2000-10-24 Jim Wilson * expmed.c (store_bit_field): Move integer pun code down after @@ -30,7 +35,6 @@ * expr.c (do_store_flag): Don't crash if either side of a comparison is error_mark_node. ->>>>>>> 1.8059 2000-10-24 Jakub Jelinek * sibcall.c (purge_mem_unchanging_flag): New function. diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index fcd86a242a7..5c7edfa2818 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -555,9 +555,15 @@ secondary_reload_class (class, mode, in) /* Memory loads less than a full word wide can't have an address or stack pointer destination. They must use a data register as an intermediate register. */ - if (GET_CODE (in) == MEM + if ((GET_CODE (in) == MEM + || (GET_CODE (in) == REG + && REGNO (in) >= FIRST_PSEUDO_REGISTER) + || (GET_CODE (in) == SUBREG + && GET_CODE (SUBREG_REG (in)) == REG + && REGNO (SUBREG_REG (in)) >= FIRST_PSEUDO_REGISTER)) && (mode == QImode || mode == HImode) - && (class == ADDRESS_REGS || class == SP_REGS)) + && (class == ADDRESS_REGS || class == SP_REGS + || class == DATA_OR_ADDRESS_REGS)) { if (TARGET_AM33) return DATA_OR_EXTENDED_REGS;