diff options
| author | wehle <wehle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-17 17:20:10 +0000 |
|---|---|---|
| committer | wehle <wehle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-17 17:20:10 +0000 |
| commit | cac0c8c9c7a91ddb3fbcf27aed4ba83f687279c1 (patch) | |
| tree | 27eef7990988c85a5aedd53940421366208bcf4f /gcc | |
| parent | 19bc51f65ddf946114c5cce7648fa3ad31271b18 (diff) | |
| download | ppe42-gcc-cac0c8c9c7a91ddb3fbcf27aed4ba83f687279c1.tar.gz ppe42-gcc-cac0c8c9c7a91ddb3fbcf27aed4ba83f687279c1.zip | |
* rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
(rtx_unstable_p, rtx_varies_p): Process vectors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35762 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/rtlanal.c | 30 |
2 files changed, 30 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5add95cc397..ed0c3c0e81f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com) + + * rtlanal.c (rtx_unstable_p): Use CONSTANT_P. + (rtx_unstable_p, rtx_varies_p): Process vectors. + 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp> * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 22e05662164..5c69a506b55 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -58,7 +58,7 @@ rtx_unstable_p (x) if (code == QUEUED) return 1; - if (code == CONST || code == CONST_INT) + if (CONSTANT_P (x)) return 0; if (code == REG) @@ -70,8 +70,18 @@ rtx_unstable_p (x) fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) if (fmt[i] == 'e') - if (rtx_unstable_p (XEXP (x, i))) - return 1; + { + if (rtx_unstable_p (XEXP (x, i))) + return 1; + } + else if (fmt[i] == 'E') + { + int j; + for (j = 0; j < XVECLEN (x, i); j++) + if (rtx_unstable_p (XVECEXP (x, i, j))) + return 1; + } + return 0; } @@ -121,8 +131,18 @@ rtx_varies_p (x) fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) if (fmt[i] == 'e') - if (rtx_varies_p (XEXP (x, i))) - return 1; + { + if (rtx_varies_p (XEXP (x, i))) + return 1; + } + else if (fmt[i] == 'E') + { + int j; + for (j = 0; j < XVECLEN (x, i); j++) + if (rtx_varies_p (XVECEXP (x, i, j))) + return 1; + } + return 0; } |

