aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-10-15 23:04:06 +0000
committerJeff Law <law@gcc.gnu.org>1999-10-15 17:04:06 -0600
commitf9b5668e116d3ff40b693a347f491ea743b10258 (patch)
tree2469c31f92a4077956a4ae07315a9a83374e53fd /gcc
parentd5e3e85b1828e742832f6dcb7ff2e75a0ac55000 (diff)
downloadgcc-f9b5668e116d3ff40b693a347f491ea743b10258.zip
gcc-f9b5668e116d3ff40b693a347f491ea743b10258.tar.gz
gcc-f9b5668e116d3ff40b693a347f491ea743b10258.tar.bz2
pa.c (move_operand): Rely on memory_address_p to determine the validity of non-indexed memory addresses.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/pa/pa.c3
-rw-r--r--gcc/config/pa/pa.h8
3 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4eb844f..54dac4e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 4541ec6..6af0066 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -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! */
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 95fb6d7..e233a75 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -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; \