aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/config/convex/convex.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h
index 760539f..b07c4cb 100644
--- a/gcc/config/convex/convex.h
+++ b/gcc/config/convex/convex.h
@@ -607,10 +607,14 @@ enum reg_class {
/* Nonzero if X is a hard reg that can be used as an index
or if it is a pseudo reg. */
-#define REG_OK_FOR_INDEX_P(X) (REGNO (X) > 8)
+#define REG_OK_FOR_INDEX_P(X) \
+ (REGNO (X) > 8 \
+ && REGNO (X) != VIRTUAL_STACK_VARS_REGNUM \
+ && REGNO (X) != VIRTUAL_STACK_DYNAMIC_REGNUM \
+ && REGNO (X) != VIRTUAL_OUTGOING_ARGS_REGNUM)
/* Nonzero if X is a hard reg that can be used as a base reg
or if it is a pseudo reg. */
-#define REG_OK_FOR_BASE_P(X) (REGNO (X) > 8)
+#define REG_OK_FOR_BASE_P(X) REG_OK_FOR_INDEX_P (X)
#else