RFA: fix mode confusion in caller-save.c:replace_reg_with_saved_mem

Joern Rennecke joern.rennecke@embecosm.com
Tue Oct 14 00:44:00 GMT 2014


On 13 October 2014 20:43, Jeff Law <law@redhat.com> wrote:
...
> I think you want "smode" in the mode_for_size call rather than "mode", right
> (both instances)?

No, nregs is the number of hard registers of regno in "mode".  Hence
we must use the
size of "mode".
How to choose the mode class is not so clear-cut.  For the code that
went wrong with the
old code, mode and smode are both of MODE_INT.
To get some case where there's a difference, I was thinking of an
architecture that
has partial integer mode registers that can be grouped together as
integral integer mode
registers (e.g. one reg is HImode or PSImode, save_mode would be PSImode,
two regs form SImode).  In that case, you'd want something so that you can piece
together "mode", i.e. either GET_MODE_CLASS (mode) or MODE_INT
(which happen to be again the same), but not GET_MODE_CLASS(smode), which would
be MODE_PARTIAL_INT  .



More information about the Gcc-patches mailing list