Commit 6393e9d6 by Joern Rennecke Committed by Joern Rennecke

As discussed: https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00420.html

2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
            Jeff Law  <law@redhat.com>

        * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
        multiple hard registers, use smaller mode derived from MODE.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r216243
parent 7f3083e7
2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
Jeff Law <law@redhat.com>
* caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
multiple hard registers, use smaller mode derived from MODE.
2014-10-15 Andreas Schwab <schwab@suse.de>
* explow.c (convert_memory_address_addr_space_1): Mark in_const
......@@ -1158,9 +1158,12 @@ replace_reg_with_saved_mem (rtx *loc,
}
else
{
gcc_assert (save_mode[regno] != VOIDmode);
XVECEXP (mem, 0, i) = gen_rtx_REG (save_mode [regno],
regno + i);
enum machine_mode smode = save_mode[regno];
gcc_assert (smode != VOIDmode);
if (hard_regno_nregs [regno][smode] > 1)
smode = mode_for_size (GET_MODE_SIZE (mode) / nregs,
GET_MODE_CLASS (mode), 0);
XVECEXP (mem, 0, i) = gen_rtx_REG (smode, regno + i);
}
}
......
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