diff options
-rw-r--r-- | gcc/config/convex/convex.h | 8 |
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 |