PR target/19819
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2005 04:34:00 +0000 (04:34 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2005 04:34:00 +0000 (04:34 +0000)
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
and after reload in REG+REG indexed addresses without REG_POINTER
set in the base and not set in the index.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95729 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/pa.h

index f6b1f8b..fe0ad78 100644 (file)
@@ -1,3 +1,10 @@
+2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
+
+       PR target/19819
+       * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
+       and after reload in REG+REG indexed addresses without REG_POINTER
+       set in the base and not set in the index.
+
 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
index 9130d61..b2d2044 100644 (file)
@@ -1532,7 +1532,12 @@ extern int may_call_alloca;
          && (TARGET_NO_SPACE_REGS                                      \
              ? (base && REG_P (index))                                 \
              : (base == XEXP (X, 1) && REG_P (index)                   \
-                && REG_POINTER (base) && !REG_POINTER (index)))        \
+                && (reload_completed                                   \
+                    || (reload_in_progress && HARD_REGISTER_P (base))  \
+                    || REG_POINTER (base))                             \
+                && (reload_completed                                   \
+                    || (reload_in_progress && HARD_REGISTER_P (index)) \
+                    || !REG_POINTER (index))))                         \
          && MODE_OK_FOR_UNSCALED_INDEXING_P (MODE)                     \
          && REG_OK_FOR_INDEX_P (index)                                 \
          && borx_reg_operand (base, Pmode)                             \