diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 14 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.h | 5 |
3 files changed, 23 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a6d4d9..d8acd6c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-10-19 Catherine Moore <clm@redhat.com> + + * config/stormy16/stormy16.h (ASM_COMMENT_START): Define. + + * config/stormy16/stormy16.c (stormy16_split_move): Make + sure that REG_INC notes are present for auto_inc operands. + 2001-10-19 Andreas Jaeger <aj@suse.de> * configure: Regenerated. diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index 5847e2a..096797a 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -641,6 +641,7 @@ stormy16_split_move (mode, dest, src) int src_volatile = 0; int dest_volatile = 0; rtx mem_operand; + rtx auto_inc_reg_rtx = NULL_RTX; /* Check initial conditions. */ if (! reload_completed @@ -673,6 +674,8 @@ stormy16_split_move (mode, dest, src) { mem_operand = XEXP (dest, 0); dest_modifies = side_effects_p (mem_operand); + if (auto_inc_p (mem_operand)) + auto_inc_reg_rtx = XEXP (mem_operand, 0); dest_volatile = MEM_VOLATILE_P (dest); if (dest_volatile) { @@ -684,6 +687,8 @@ stormy16_split_move (mode, dest, src) { mem_operand = XEXP (src, 0); src_modifies = side_effects_p (mem_operand); + if (auto_inc_p (mem_operand)) + auto_inc_reg_rtx = XEXP (mem_operand, 0); src_volatile = MEM_VOLATILE_P (src); if (src_volatile) { @@ -733,7 +738,8 @@ stormy16_split_move (mode, dest, src) end = direction < 0 ? -1 : num_words; for (i = direction < 0 ? num_words - 1 : 0; i != end; i += direction) { - rtx w_src, w_dest; + rtx w_src, w_dest, insn; + if (src_modifies) w_src = gen_rtx_MEM (word_mode, mem_operand); else @@ -753,7 +759,11 @@ stormy16_split_move (mode, dest, src) || GET_CODE (w_dest) == SUBREG) abort (); - emit_insn (gen_rtx_SET (VOIDmode, w_dest, w_src)); + insn = emit_insn (gen_rtx_SET (VOIDmode, w_dest, w_src)); + if (auto_inc_reg_rtx) + REG_NOTES (insn) = alloc_EXPR_LIST (REG_INC, + auto_inc_reg_rtx, + REG_NOTES (insn)); } } diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index 9a4e139..0372d1c 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -146,6 +146,9 @@ Boston, MA 02111-1307, USA. */ Defined in svr4.h. */ #undef LIB_SPEC +#if 0 +#define LIB_SPEC "-( -lc %{msim:-lsim}%{!msim:-leva_app -lnosys} -)" +#endif #define LIB_SPEC "-( -lc %{msim:-lsim} -)" /* Another C string constant that tells the GNU CC driver program how and when @@ -3620,7 +3623,7 @@ do { \ /* A C string constant describing how to begin a comment in the target assembler language. The compiler assumes that the comment will end at the end of the line. */ -/* #define ASM_COMMENT_START */ +#define ASM_COMMENT_START ";" /* A C string constant for text to be output before each `asm' statement or group of consecutive ones. Normally this is `"#APP"', which is a comment |