From: Georg-Johann Lay Date: Fri, 18 Oct 2019 09:16:16 +0000 (+0000) Subject: backport: re PR target/86040 ([avr]: RAMPZ is not always cleared after loading __flas... X-Git-Tag: releases/gcc-7.5.0~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee31b9755ee6e291de9f99797798be5e69ee2647;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: r277149 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa4db1c47f2a..2300b57f48db 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-17 Segher Boessenkool Backport from trunk diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index ee3bd66e93f5..4f8cbc6eac41 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -3579,13 +3579,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 @@ -3614,9 +3615,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