aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/stormy16/stormy16.c14
-rw-r--r--gcc/config/stormy16/stormy16.h5
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