diff options
author | chrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-08 07:58:41 +0000 |
---|---|---|
committer | chrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-08 07:58:41 +0000 |
commit | b06b27dd1773dd3976b6cfad9c875ee691b7b6e6 (patch) | |
tree | 703c2b7fb2c08be557096002e275a7a02efaf2ad /gcc/loop-iv.c | |
parent | 0bffc570fa82b9f6cd9bae7fdc07abbd9f782284 (diff) | |
download | gcc-b06b27dd1773dd3976b6cfad9c875ee691b7b6e6.tar.gz |
PR target/29953
* config/sh/sh.md (doloop_end): New pattern and splitter.
* loop-iv.c (simple_rhs_p): Check for hardware registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125564 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-iv.c')
-rw-r--r-- | gcc/loop-iv.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c index bdf1508d9ef..0b6d46db04a 100644 --- a/gcc/loop-iv.c +++ b/gcc/loop-iv.c @@ -1293,7 +1293,7 @@ simple_rhs_p (rtx rhs) rtx op0, op1; if (CONSTANT_P (rhs) - || REG_P (rhs)) + || (REG_P (rhs) && !HARD_REGISTER_P (rhs))) return true; switch (GET_CODE (rhs)) @@ -1303,9 +1303,9 @@ simple_rhs_p (rtx rhs) op0 = XEXP (rhs, 0); op1 = XEXP (rhs, 1); /* Allow reg + const sets only. */ - if (REG_P (op0) && CONSTANT_P (op1)) + if (REG_P (op0) && !HARD_REGISTER_P (op0) && CONSTANT_P (op1)) return true; - if (REG_P (op1) && CONSTANT_P (op0)) + if (REG_P (op1) && !HARD_REGISTER_P (op1) && CONSTANT_P (op0)) return true; return false; |