From 3c243b51085da2e675d9a62d98f467162060938a Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 19 Dec 1992 20:18:53 -0500 Subject: [PATCH] (secondary_reload_class): Return CR_REGS for larger than word memory, and BP_REGS for part-word mem with no DW. From-SVN: r2899 --- gcc/config/a29k/a29k.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c index 68983a63eef..bf43a13dede 100644 --- a/gcc/config/a29k/a29k.c +++ b/gcc/config/a29k/a29k.c @@ -724,13 +724,17 @@ secondary_reload_class (class, mode, in) code = MEM; } - /* If we are transferring between memory and a multi-word mode or between - memory and a mode smaller than a word without DW being enabled, we need - BP. */ + /* If we are transferring between memory and a multi-word mode, we need + CR. */ - if (code == MEM - && (GET_MODE_SIZE (mode) > UNITS_PER_WORD - || (! TARGET_DW_ENABLE && GET_MODE_SIZE (mode) < UNITS_PER_WORD))) + if (code == MEM && GET_MODE_SIZE (mode) > UNITS_PER_WORD) + return CR_REGS; + + /* If between memory and a mode smaller than a word without DW being + enabled, we need BP. */ + + if (code == MEM && ! TARGET_DW_ENABLE + && GET_MODE_SIZE (mode) < UNITS_PER_WORD) return BP_REGS; /* Otherwise, we can place anything into GENERAL_REGS and can put -- 2.30.2