summaryrefslogtreecommitdiff
path: root/gcc/loop-iv.c
diff options
context:
space:
mode:
authorchrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-08 07:58:41 +0000
committerchrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-08 07:58:41 +0000
commitb06b27dd1773dd3976b6cfad9c875ee691b7b6e6 (patch)
tree703c2b7fb2c08be557096002e275a7a02efaf2ad /gcc/loop-iv.c
parent0bffc570fa82b9f6cd9bae7fdc07abbd9f782284 (diff)
downloadgcc-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.c6
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;