diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f6b1f8b1863a420a088e303be76cba4d65551be4..fe0ad784239c107a0a4639335557f6e487ad891d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 9130d6177eeff0ebb23c548901cdf10e847db8ca..b2d2044c0f103c8300931401600e5d8284e947d2 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -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)				\