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
This commit is contained in:
parent
1a79cb7341
commit
f4da258f52
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
PR target/47124
|
||||
|
|
|
@ -3147,8 +3147,11 @@ out_shift_with_cnt (const char *templ, rtx insn, rtx operands[],
|
|||
}
|
||||
else if (register_operand (operands[2], QImode))
|
||||
{
|
||||
if (reg_unused_after (insn, operands[2]))
|
||||
op[3] = op[2];
|
||||
if (reg_unused_after (insn, operands[2])
|
||||
&& !reg_overlap_mentioned_p (operands[0], operands[2]))
|
||||
{
|
||||
op[3] = op[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
op[3] = tmp_reg_rtx;
|
||||
|
|
Loading…
Reference in New Issue