pa.c (move_operand): Rely on memory_address_p to determine the validity of non-indexe...
authorJeffrey A Law <law@cygnus.com>
Fri, 15 Oct 1999 23:04:06 +0000 (23:04 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 15 Oct 1999 23:04:06 +0000 (17:04 -0600)
        * pa.c (move_operand): Rely on memory_address_p to determine the
        validity of non-indexed memory addresses.
        * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
        operand in DFmode and SFmode when generating PA2.0 code.

From-SVN: r30025

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

index 4eb844f7c30c7d136a2106983aef0fbbc52d1921..54dac4ecf2a042583dbd97cb58dc3387e6dfa2c1 100644 (file)
@@ -1,3 +1,10 @@
+Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.c (move_operand): Rely on memory_address_p to determine the
+       validity of non-indexed memory addresses.
+       * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
+       operand in DFmode and SFmode when generating PA2.0 code.
+
 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
 
        * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
index 4541ec6ec9aaec044816a79d4d27aecf375f5914..6af006693ccb0285733282e95a5f1794f52c5424 100644 (file)
@@ -331,9 +331,6 @@ move_operand (op, mode)
     return 0;
 
   op = XEXP (op, 0);
-  if (GET_CODE (op) == LO_SUM)
-    return (register_operand (XEXP (op, 0), Pmode)
-           && CONSTANT_P (XEXP (op, 1)));
 
   /* Since move_operand is only used for source operands, we can always
      allow scaled indexing!  */
index 95fb6d77f5015686b45d03da78af5e86f3706b77..e233a75394983bdd84a7e3984a1977bf0ccf811c 100644 (file)
@@ -1473,6 +1473,10 @@ extern struct rtx_def *hppa_va_arg();
           && REG_OK_FOR_BASE_P (XEXP (X, 0))           \
           && CONSTANT_P (XEXP (X, 1))                  \
           && (TARGET_SOFT_FLOAT                        \
+              /* We can allow symbolic LO_SUM addresses\
+                 for PA2.0.  */                        \
+              || (TARGET_PA_20                         \
+                  && GET_CODE (XEXP (X, 1)) != CONST_INT)\
               || ((MODE) != SFmode                     \
                   && (MODE) != DFmode)))               \
     goto ADDR;                                         \
@@ -1482,6 +1486,10 @@ extern struct rtx_def *hppa_va_arg();
           && REG_OK_FOR_BASE_P (SUBREG_REG (XEXP (X, 0)))\
           && CONSTANT_P (XEXP (X, 1))                  \
           && (TARGET_SOFT_FLOAT                        \
+              /* We can allow symbolic LO_SUM addresses\
+                 for PA2.0.  */                        \
+              || (TARGET_PA_20                         \
+                  && GET_CODE (XEXP (X, 1)) != CONST_INT)\
               || ((MODE) != SFmode                     \
                   && (MODE) != DFmode)))               \
     goto ADDR;                                         \