From: Marek Michalkiewicz Date: Sun, 17 Dec 2000 10:38:37 +0000 (+0100) Subject: avr.c (out_set_stack_ptr): Update comment. X-Git-Tag: prereleases/libstdc++-2.92~2174 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf14485b19e06ee0c64d67bd549ec26fd9f7d740;p=thirdparty%2Fgcc.git avr.c (out_set_stack_ptr): Update comment. * config/avr/avr.c (out_set_stack_ptr): Update comment. (print_operand): Add support for %~ and %o. From-SVN: r38326 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3fa0386c243a..f29af44a9704 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-12-12 Marek Michalkiewicz + + * config/avr/avr.c (out_set_stack_ptr): Update comment. + (print_operand): Add support for %~ and %o. + 2000-12-17 Herman A.J. ten Brugge * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 3de044030f13..2903509f9046 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -505,8 +505,8 @@ out_set_stack_ptr (file, before, after) } /* Set/restore the I flag now - interrupts will be really enabled only - after the next instruction starts. This was not clearly documented. - XXX - verify this on the new devices with enhanced AVR core. */ + after the next instruction. This is not clearly documented, but + believed to be true for all AVR devices. */ if (do_save) { fprintf (file, AS2 (out, __SREG__, __tmp_reg__) CR_TAB); @@ -1003,10 +1003,15 @@ print_operand (file, x, code) if (code >= 'A' && code <= 'D') abcd = code - 'A'; - if (REG_P (x)) + if (code == '~') + { + if (!AVR_MEGA) + fputc ('r', file); + } + else if (REG_P (x)) { if (x == zero_reg_rtx) - fprintf (file,"__zero_reg__"); + fprintf (file, "__zero_reg__"); else fprintf (file, reg_names[true_regnum (x) + abcd]); } @@ -1022,6 +1027,13 @@ print_operand (file, x, code) output_address (addr); fprintf (file, ")+%d", abcd); } + else if (code == 'o') + { + if (GET_CODE (addr) != PLUS) + fatal_insn ("Bad address, not (reg+disp):", addr); + + print_operand (file, XEXP (addr, 1), 0); + } else if (GET_CODE (addr) == PLUS) { print_operand_address (file, XEXP (addr,0));