aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-12-08 06:17:15 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-12-08 06:17:15 -0500
commit2f1553a4d5f3ad1885ba3fe308b4b6f3b75d2854 (patch)
tree686b874aa80c2cc69c92a042d93871e5f12fcdc3 /gcc
parentaae678414b17b8ec35ee8479c4909a7cb43d4195 (diff)
downloadgcc-2f1553a4d5f3ad1885ba3fe308b4b6f3b75d2854.zip
gcc-2f1553a4d5f3ad1885ba3fe308b4b6f3b75d2854.tar.gz
gcc-2f1553a4d5f3ad1885ba3fe308b4b6f3b75d2854.tar.bz2
(mark_used_regs, case CLOBBER): Refine previous change to just look at
the address of a MEM inside a CLOBBER. From-SVN: r6195
Diffstat (limited to 'gcc')
-rw-r--r--gcc/flow.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 7b89279..d383695 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1,5 +1,5 @@
/* Data flow analysis for GNU compiler.
- Copyright (C) 1987, 1988, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1992, 1993 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -2170,6 +2170,13 @@ mark_used_regs (needed, live, x, final, insn)
return;
#endif
+ case CLOBBER:
+ /* If we are clobbering a MEM, mark any registers inside the address
+ as being used. */
+ if (GET_CODE (XEXP (x, 0)) == MEM)
+ mark_used_regs (needed, live, XEXP (XEXP (x, 0), 0), final, insn);
+ return;
+
case MEM:
/* Invalidate the data for the last MEM stored. We could do this only
if the addresses conflict, but this doesn't seem worthwhile. */