summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-12-08 11:17:15 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-12-08 11:17:15 +0000
commit6d6214e0b31ce02fa4dcf7d59bbf59bfd8388d58 (patch)
tree686b874aa80c2cc69c92a042d93871e5f12fcdc3 /gcc/flow.c
parentb16b4faa4d27ac52f6daba3a5b37a267d8711206 (diff)
downloadgcc-6d6214e0b31ce02fa4dcf7d59bbf59bfd8388d58.tar.gz
(mark_used_regs, case CLOBBER): Refine previous change to just look at
the address of a MEM inside a CLOBBER. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6195 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 7b89279e63b..d3836957f77 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. */