diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-08-20 23:48:14 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-08-20 17:48:14 -0600 |
commit | 2b9abd88e92613a4543a6c46b5d36417e6399ebf (patch) | |
tree | 8843ab05a20bb034a31d5cae7bc0cf258b76deb7 /gcc | |
parent | acb619d9976d653433afad5010748b8f08b7b783 (diff) | |
download | gcc-2b9abd88e92613a4543a6c46b5d36417e6399ebf.zip gcc-2b9abd88e92613a4543a6c46b5d36417e6399ebf.tar.gz gcc-2b9abd88e92613a4543a6c46b5d36417e6399ebf.tar.bz2 |
mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the register (it could be accessed via an outer SUBREG).
* mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
register (it could be accessed via an outer SUBREG).
(REG_OK_FOR_BASE_P): Likewwise.
(GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
From-SVN: r21889
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mn10200/mn10200.h | 16 |
2 files changed, 11 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67c10b4..4bda631 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) + * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the + register (it could be accessed via an outer SUBREG). + (REG_OK_FOR_BASE_P): Likewwise. + (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P. + * remove.c (optimize_reg_copy_3): Abort instead of silently generating bogus rtl. diff --git a/gcc/config/mn10200/mn10200.h b/gcc/config/mn10200/mn10200.h index 20db8a5..796caf2 100644 --- a/gcc/config/mn10200/mn10200.h +++ b/gcc/config/mn10200/mn10200.h @@ -645,20 +645,18 @@ extern struct rtx_def *function_arg(); /* 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) \ - (GET_MODE (X) == PSImode \ - && ((REGNO (X) >= 0 && REGNO(X) <= 3) || REGNO (X) >= FIRST_PSEUDO_REGISTER)) + (((REGNO (X) >= 0 && REGNO(X) <= 3) || REGNO (X) >= FIRST_PSEUDO_REGISTER)) /* 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) \ - (GET_MODE (X) == PSImode \ - && ((REGNO (X) >= 4 && REGNO(X) <= 8) || REGNO (X) >= FIRST_PSEUDO_REGISTER)) + (((REGNO (X) >= 4 && REGNO(X) <= 8) || REGNO (X) >= FIRST_PSEUDO_REGISTER)) #else /* Nonzero if X is a hard reg that can be used as an index. */ #define REG_OK_FOR_INDEX_P(X) \ - (GET_MODE (X) == PSImode) && REGNO_OK_FOR_INDEX_P (REGNO (X)) + REGNO_OK_FOR_INDEX_P (REGNO (X)) /* Nonzero if X is a hard reg that can be used as a base reg. */ #define REG_OK_FOR_BASE_P(X) \ - (GET_MODE (X) == PSImode) && REGNO_OK_FOR_BASE_P (REGNO (X)) + REGNO_OK_FOR_BASE_P (REGNO (X)) #endif @@ -691,11 +689,9 @@ extern struct rtx_def *function_arg(); if (GET_CODE (X) == PLUS) \ { \ rtx base = 0, index = 0; \ - if (REG_P (XEXP (X, 0)) \ - && REG_OK_FOR_BASE_P (XEXP (X, 0))) \ + if (RTX_OK_FOR_BASE_P (XEXP (X, 0))) \ base = XEXP (X, 0), index = XEXP (X, 1); \ - if (REG_P (XEXP (X, 1)) \ - && REG_OK_FOR_BASE_P (XEXP (X, 1))) \ + if (RTX_OK_FOR_BASE_P (XEXP (X, 1))) \ base = XEXP (X, 1), index = XEXP (X, 0); \ if (base != 0 && index != 0) \ { \ |