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
This commit is contained in:
Georg-Johann Lay 2013-07-22 10:18:52 +00:00 committed by Georg-Johann Lay
parent 14ab1eaf2a
commit d5a6ef827f
2 changed files with 7 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2013-07-22 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
instruction sequence is 1 byte shorter.
2013-07-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (nonlocal_goto_receiver): Delete insn if

View File

@ -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);