From 15c097383f085dbb6e024f33dcd216657aa0e1bd Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Wed, 25 Oct 2000 03:13:19 +0000 Subject: [PATCH] secondary_reload_class: treat pseudos like memory From-SVN: r37042 --- gcc/ChangeLog | 6 +++++- gcc/config/mn10300/mn10300.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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; -- 2.30.2