From: Georg-Johann Lay Date: Fri, 18 Oct 2019 09:10:20 +0000 (+0000) Subject: backport: re PR target/86040 ([avr]: RAMPZ is not always cleared after loading __flas... X-Git-Tag: releases/gcc-9.3.0~532 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c6c71fcdafd1cd8cb0c51d4dc54e6e3782c2f14;p=thirdparty%2Fgcc.git backport: re PR target/86040 ([avr]: RAMPZ is not always cleared after loading __flashN data) Backport from 2019-10-18 trunk r277143. PR target/86040 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. From-SVN: r277147 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9179ad4b3b61..ca0db0bce345 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-10-18 Georg-Johann Lay + + Backport from 2019-10-18 trunk r277143. + + PR target/86040 + * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. + 2019-10-18 Iain Sandoe Backport from mainline diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index a9f72b314c2d..cb4b14ae3790 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -3797,13 +3797,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 @@ -3832,9 +3833,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