From 4f3c15955dc66be54a2d3ec6f1a62575d47dfc43 Mon Sep 17 00:00:00 2001 From: gjl Date: Mon, 22 Jul 2013 10:18:52 +0000 Subject: [PATCH] * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that instruction sequence is 1 byte shorter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201121 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/avr/avr.c | 8 ++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0260dd4392..98cc565a3b3 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 6d95c101c2b..14a3eee7c72 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); -- 2.11.4.GIT