Commit bec3c279 by Georg-Johann Lay Committed by Georg-Johann Lay

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
parent 8d1a718e
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> 2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Richard Sandiford <richard.sandiford@arm.com> Richard Sandiford <richard.sandiford@arm.com>
......
...@@ -3771,13 +3771,14 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen) ...@@ -3771,13 +3771,14 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
gcc_unreachable(); gcc_unreachable();
case 1: case 1:
return avr_asm_len ("%4lpm %0,%a2", xop, plen, 1); avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
break;
case 2: case 2:
if (REGNO (dest) == REG_Z) if (REGNO (dest) == REG_Z)
return avr_asm_len ("%4lpm %5,%a2+" CR_TAB avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %B0,%a2" CR_TAB "%4lpm %B0,%a2" CR_TAB
"mov %A0,%5", xop, plen, 3); "mov %A0,%5", xop, plen, 3);
else else
{ {
avr_asm_len ("%4lpm %A0,%a2+" CR_TAB avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
...@@ -3806,9 +3807,9 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen) ...@@ -3806,9 +3807,9 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
"%4lpm %B0,%a2+", xop, plen, 2); "%4lpm %B0,%a2+", xop, plen, 2);
if (REGNO (dest) == REG_Z - 2) if (REGNO (dest) == REG_Z - 2)
return avr_asm_len ("%4lpm %5,%a2+" CR_TAB avr_asm_len ("%4lpm %5,%a2+" CR_TAB
"%4lpm %C0,%a2" CR_TAB "%4lpm %C0,%a2" CR_TAB
"mov %D0,%5", xop, plen, 3); "mov %D0,%5", xop, plen, 3);
else else
{ {
avr_asm_len ("%4lpm %C0,%a2+" CR_TAB avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
......
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