From: Georg-Johann Lay Date: Mon, 22 Jul 2013 10:18:52 +0000 (+0000) Subject: avr.c (avr_out_xload): No SBIS around LPM so that instruction sequence is 1 byte... X-Git-Tag: releases/gcc-4.9.0~4920 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5a6ef827fe40c01e6284b5bbf3c2e987987445c;p=thirdparty%2Fgcc.git avr.c (avr_out_xload): No SBIS around LPM so that instruction sequence is 1 byte shorter. * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that instruction sequence is 1 byte shorter. From-SVN: r201121 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0260dd43925..98cc565a3b38 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-07-22 Georg-Johann Lay + + * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that + instruction sequence is 1 byte shorter. + 2013-07-22 Uros Bizjak * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 6d95c101c2b5..14a3eee7c726 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -3079,14 +3079,10 @@ avr_out_xload (rtx insn ATTRIBUTE_UNUSED, rtx *op, int *plen) xop[2] = lpm_addr_reg_rtx; xop[3] = AVR_HAVE_LPMX ? op[0] : lpm_reg_rtx; - if (plen) - *plen = 0; + avr_asm_len (AVR_HAVE_LPMX ? "lpm %3,%a2" : "lpm", xop, plen, -1); avr_asm_len ("sbrc %1,7" CR_TAB - "ld %3,%a2" CR_TAB - "sbrs %1,7", xop, plen, 3); - - avr_asm_len (AVR_HAVE_LPMX ? "lpm %3,%a2" : "lpm", xop, plen, 1); + "ld %3,%a2", xop, plen, 2); if (REGNO (xop[0]) != REGNO (xop[3])) avr_asm_len ("mov %0,%3", xop, plen, 1);