Commit 3c243b51 by Richard Kenner

(secondary_reload_class): Return CR_REGS for larger than word memory,

and BP_REGS for part-word mem with no DW.

From-SVN: r2899
parent 3055b3a1
...@@ -724,13 +724,17 @@ secondary_reload_class (class, mode, in) ...@@ -724,13 +724,17 @@ secondary_reload_class (class, mode, in)
code = MEM; code = MEM;
} }
/* If we are transferring between memory and a multi-word mode or between /* If we are transferring between memory and a multi-word mode, we need
memory and a mode smaller than a word without DW being enabled, we need CR. */
BP. */
if (code == MEM if (code == MEM && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
&& (GET_MODE_SIZE (mode) > UNITS_PER_WORD return CR_REGS;
|| (! TARGET_DW_ENABLE && GET_MODE_SIZE (mode) < UNITS_PER_WORD)))
/* 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; return BP_REGS;
/* Otherwise, we can place anything into GENERAL_REGS and can put /* Otherwise, we can place anything into GENERAL_REGS and can put
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment