diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-05-06 13:43:48 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-05-06 13:43:48 +0000 |
commit | cbea2709c521a2789276a133c56ce1be3b33b6af (patch) | |
tree | ab0226dc43b6aa7be7e0c4639fb71cc83e52e2ae /gcc/rtlanal.c | |
parent | 7d67c63068ed13465f8a7540384e843b69d37627 (diff) | |
download | gcc-cbea2709c521a2789276a133c56ce1be3b33b6af.tar.gz |
(rtx_addr_varies_p): Scan operands of type `E'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11935 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index c8433c500fc..47c253595f9 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1,5 +1,5 @@ /* Analyze RTL for C-Compiler - Copyright (C) 1987, 88, 91, 92, 93, 94, 1995 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 9-5, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -177,8 +177,17 @@ rtx_addr_varies_p (x) fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) if (fmt[i] == 'e') - if (rtx_addr_varies_p (XEXP (x, i))) - return 1; + { + if (rtx_addr_varies_p (XEXP (x, i))) + return 1; + } + else if (fmt[i] == 'E') + { + int j; + for (j = 0; j < XVECLEN (x, i); j++) + if (rtx_addr_varies_p (XVECEXP (x, i, j))) + return 1; + } return 0; } |