Commit f4da258f by Georg-Johann Lay Committed by Georg-Johann Lay

re PR target/39386 ([avr] different computation results for O1 and O0 executables)

	
	PR target/39386
	* config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
	shift counter for x << x and x >> x shifts.

From-SVN: r176756
parent 1a79cb73
2011-07-25 Georg-Johann Lay <avr@gjlay.de>
PR target/39386
* config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
shift counter for x << x and x >> x shifts.
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/47124 PR target/47124
......
...@@ -3147,8 +3147,11 @@ out_shift_with_cnt (const char *templ, rtx insn, rtx operands[], ...@@ -3147,8 +3147,11 @@ out_shift_with_cnt (const char *templ, rtx insn, rtx operands[],
} }
else if (register_operand (operands[2], QImode)) else if (register_operand (operands[2], QImode))
{ {
if (reg_unused_after (insn, operands[2])) if (reg_unused_after (insn, operands[2])
op[3] = op[2]; && !reg_overlap_mentioned_p (operands[0], operands[2]))
{
op[3] = op[2];
}
else else
{ {
op[3] = tmp_reg_rtx; op[3] = tmp_reg_rtx;
......
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