re PR target/86040 ([avr]: RAMPZ is not always cleared after loading __flashN data)

PR target/86040
	* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.

From-SVN: r277143
This commit is contained in:
Georg-Johann Lay 2019-10-18 06:53:34 +00:00 committed by Georg-Johann Lay
parent 8d1a718e06
commit bec3c279a8
2 changed files with 13 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2019-10-18 Georg-Johann Lay <avr@gjlay.de>
PR target/86040
* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Richard Sandiford <richard.sandiford@arm.com>

View file

@ -3771,13 +3771,14 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
gcc_unreachable();
case 1:
return avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
break;
case 2:
if (REGNO (dest) == REG_Z)
return avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %B0,%a2" CR_TAB
"mov %A0,%5", xop, plen, 3);
avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %B0,%a2" CR_TAB
"mov %A0,%5", xop, plen, 3);
else
{
avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
@ -3806,9 +3807,9 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
"%4lpm %B0,%a2+", xop, plen, 2);
if (REGNO (dest) == REG_Z - 2)
return avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %C0,%a2" CR_TAB
"mov %D0,%5", xop, plen, 3);
avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %C0,%a2" CR_TAB
"mov %D0,%5", xop, plen, 3);
else
{
avr_asm_len ("%4lpm %C0,%a2+" CR_TAB