Commit dbb94435 by Bernd Schmidt Committed by Bernd Schmidt

function.c (record_hard_reg_sets): Restrict the previous change to cases where…

function.c (record_hard_reg_sets): Restrict the previous change to cases where the incoming nominal mode is the...

	* function.c (record_hard_reg_sets): Restrict the previous change
	to cases where the incoming nominal mode is the same as the
	incoming promoted mode and everything happens in MODE_INT.

From-SVN: r162391
parent 08bd6876
......@@ -18,6 +18,10 @@
an old insn, ignore a use that occurs after store_ruid.
* Makefile.in (postreload.o): Update dependencies.
* function.c (record_hard_reg_sets): Restrict the previous change
to cases where the incoming nominal mode is the same as the
incoming promoted mode and everything happens in MODE_INT.
2010-07-21 Jakub Jelinek <jakub@redhat.com>
PR debug/45015
......
......@@ -2918,7 +2918,10 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm,
|| promoted_nominal_mode != data->promoted_mode);
moved = false;
if (need_conversion)
if (need_conversion
&& GET_MODE_CLASS (data->nominal_mode) == MODE_INT
&& data->nominal_mode == data->passed_mode
&& data->nominal_mode == GET_MODE (data->entry_parm))
{
/* ENTRY_PARM has been converted to PROMOTED_MODE, its
mode, by the caller. We now have to convert it to
......@@ -2979,8 +2982,9 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm,
if (moved)
{
emit_insn (insns);
equiv_stack_parm = gen_rtx_fmt_e (code, GET_MODE (parmreg),
equiv_stack_parm);
if (equiv_stack_parm != NULL_RTX)
equiv_stack_parm = gen_rtx_fmt_e (code, GET_MODE (parmreg),
equiv_stack_parm);
}
}
}
......
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