From: Richard Kenner Date: Sun, 20 Dec 1992 01:18:53 +0000 (-0500) Subject: (secondary_reload_class): Return CR_REGS for larger than word memory, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c243b51085da2e675d9a62d98f467162060938a;p=gcc.git (secondary_reload_class): Return CR_REGS for larger than word memory, and BP_REGS for part-word mem with no DW. From-SVN: r2899 --- 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