diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-10-15 23:04:06 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-10-15 17:04:06 -0600 |
commit | f9b5668e116d3ff40b693a347f491ea743b10258 (patch) | |
tree | 2469c31f92a4077956a4ae07315a9a83374e53fd /gcc | |
parent | d5e3e85b1828e742832f6dcb7ff2e75a0ac55000 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 8 |
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; \ |