Commit 4119019b by Roger Sayle Committed by Roger Sayle

re PR target/27858 (ICE in spill_failure, at reload1.c:1911while bootstrapping 4.2 on alpha)


	PR target/27858
	Revert incorrect fix for PR target/27158
	2006-05-08  Roger Sayle  <roger@eyesopen.com>
	* reload.c (find_reloads_toplev): Only return the simplified SUBREG
	of a reg_equiv_constant if the result is a legitimate constant.

From-SVN: r114559
parent 0972012c
2006-06-11 Roger Sayle <roger@eyesopen.com> 2006-06-11 Roger Sayle <roger@eyesopen.com>
PR target/27858
Revert incorrect fix for PR target/27158
2006-05-08 Roger Sayle <roger@eyesopen.com>
* reload.c (find_reloads_toplev): Only return the simplified SUBREG
of a reg_equiv_constant if the result is a legitimate constant.
2006-06-11 Roger Sayle <roger@eyesopen.com>
PR target/27158 PR target/27158
* config/rs6000/rs6000.c (const_vector_elt_as_int): New function to * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
extract a CONST_VECTOR element and interpret it as an integer. extract a CONST_VECTOR element and interpret it as an integer.
......
...@@ -4572,8 +4572,7 @@ find_reloads_toplev (rtx x, int opnum, enum reload_type type, ...@@ -4572,8 +4572,7 @@ find_reloads_toplev (rtx x, int opnum, enum reload_type type,
&& reg_renumber[regno] < 0 && reg_renumber[regno] < 0
&& reg_equiv_constant[regno] != 0 && reg_equiv_constant[regno] != 0
&& (tem = gen_lowpart_common (GET_MODE (x), && (tem = gen_lowpart_common (GET_MODE (x),
reg_equiv_constant[regno])) != 0 reg_equiv_constant[regno])) != 0)
&& LEGITIMATE_CONSTANT_P (tem))
return tem; return tem;
if (regno >= FIRST_PSEUDO_REGISTER if (regno >= FIRST_PSEUDO_REGISTER
...@@ -4584,8 +4583,7 @@ find_reloads_toplev (rtx x, int opnum, enum reload_type type, ...@@ -4584,8 +4583,7 @@ find_reloads_toplev (rtx x, int opnum, enum reload_type type,
simplify_gen_subreg (GET_MODE (x), reg_equiv_constant[regno], simplify_gen_subreg (GET_MODE (x), reg_equiv_constant[regno],
GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x));
gcc_assert (tem); gcc_assert (tem);
if (LEGITIMATE_CONSTANT_P (tem)) return tem;
return tem;
} }
/* If the subreg contains a reg that will be converted to a mem, /* If the subreg contains a reg that will be converted to a mem,
......
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