aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-19 16:30:25 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-19 16:30:25 -0400
commit0887bd4b9a63058079f577fa0471a78fbc971fd2 (patch)
tree669768b23c6ae2ebbf0e7344344025f44df34312
parent0f8f654e50c7585be68ee996323caf85946f08b6 (diff)
downloadgcc-0887bd4b9a63058079f577fa0471a78fbc971fd2.zip
gcc-0887bd4b9a63058079f577fa0471a78fbc971fd2.tar.gz
gcc-0887bd4b9a63058079f577fa0471a78fbc971fd2.tar.bz2
(save_call_clobbered_regs): If AUTO_INC_DEC, mark register indicated
by REG_INC notes as live so they will be saved. From-SVN: r10010
-rw-r--r--gcc/caller-save.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index 81334f0..6dc9018 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -473,7 +473,14 @@ save_call_clobbered_regs (insn_mode)
n_regs_saved++;
}
else
- note_stores (PATTERN (insn), set_reg_live);
+ {
+ note_stores (PATTERN (insn), set_reg_live);
+#ifdef AUTO_INC_DEC
+ for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
+ if (REG_NOTE_KIND (link) == REG_INC)
+ set_reg_live (XEXP (link, 0), NULL_RTX);
+#endif
+ }
for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
if (REG_NOTE_KIND (link) == REG_UNUSED)