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
2 changed files with 11 additions and 2 deletions
|
@ -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>
|
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[],
|
||||||
}
|
}
|
||||||
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])
|
||||||
|
&& !reg_overlap_mentioned_p (operands[0], operands[2]))
|
||||||
|
{
|
||||||
op[3] = op[2];
|
op[3] = op[2];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
op[3] = tmp_reg_rtx;
|
op[3] = tmp_reg_rtx;
|
||||||
|
|
Loading…
Add table
Reference in a new issue