Commit 35aebd56 by Richard Sandiford Committed by Richard Sandiford

function.h (regno_reg_rtx): Adjust comment.

gcc/
	* function.h (regno_reg_rtx): Adjust comment.
	* reginfo.c (init_reg_modes_target): Only use the previous mode
	if it fits within one register.  Remove MIPS comment.

From-SVN: r183773
parent 218e1228
2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
* function.h (regno_reg_rtx): Adjust comment.
* reginfo.c (init_reg_modes_target): Only use the previous mode
if it fits within one register. Remove MIPS comment.
2012-01-31 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/52058
......
......@@ -87,10 +87,13 @@ struct GTY(()) emit_status {
};
/* Indexed by pseudo register number, gives the rtx for that pseudo.
Allocated in parallel with regno_pointer_align.
FIXME: We could put it into emit_status struct, but gengtype is not able to deal
with length attribute nested in top level structures. */
/* Indexed by register number, gives an rtx for that register (and only
that register). For pseudo registers, it is the unique rtx for
that pseudo. For hard registers, it is an rtx of the mode specified
by reg_raw_mode.
FIXME: We could put it into emit_status struct, but gengtype is not
able to deal with length attribute nested in top level structures. */
extern GTY ((length ("crtl->emit.x_reg_rtx_no"))) rtx * regno_reg_rtx;
......
......@@ -615,13 +615,15 @@ init_reg_modes_target (void)
{
reg_raw_mode[i] = choose_hard_reg_mode (i, 1, false);
/* If we couldn't find a valid mode, just use the previous mode.
??? One situation in which we need to do this is on the mips where
HARD_REGNO_NREGS (fpreg, [SD]Fmode) returns 2. Ideally we'd like
to use DF mode for the even registers and VOIDmode for the odd
(for the cpu models where the odd ones are inaccessible). */
/* If we couldn't find a valid mode, just use the previous mode
if it is suitable, otherwise fall back on word_mode. */
if (reg_raw_mode[i] == VOIDmode)
reg_raw_mode[i] = i == 0 ? word_mode : reg_raw_mode[i-1];
{
if (i > 0 && hard_regno_nregs[i][reg_raw_mode[i - 1]] == 1)
reg_raw_mode[i] = reg_raw_mode[i - 1];
else
reg_raw_mode[i] = word_mode;
}
}
}
......
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