PR target/53033
* config/avr/avr.c (avr_out_load_psi): Fix assembler template for
the case *(X+const).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186589
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-04-19 Georg-Johann Lay <avr@gjlay.de>
+
+ Backport from 2012-04-19 mainline r186588.
+
+ PR target/53033
+ * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
+ the case *(X+const).
+
2012-04-18 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
2012-04-18 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
"mov r27,__tmp_reg__", op, plen, -6);
}
"mov r27,__tmp_reg__", op, plen, -6);
}
- avr_asm_len ("adiw r26,%o1" CR_TAB
- "ld r24,X+" CR_TAB
- "ld r25,X+" CR_TAB
- "ld r26,X", op, plen, -4);
+ avr_asm_len ("adiw r26,%o1" CR_TAB
+ "ld %A0,X+" CR_TAB
+ "ld %B0,X+" CR_TAB
+ "ld %C0,X", op, plen, -4);
- if (reg_dest != REG_X - 2)
- avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
+ if (reg_dest != REG_W
+ && !reg_unused_after (insn, XEXP (base, 0)))
+ avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
}
if (reg_dest == reg_base)
}
if (reg_dest == reg_base)