From: Jeffrey A Law Date: Sun, 17 Oct 1999 23:08:36 +0000 (+0000) Subject: * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7739ebae532a59826503967bca495918273fe9e5;p=gcc.git * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). From-SVN: r30060 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e4feac5d4fe..9749bb0ffd5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) + * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). + * haifa-sched.c (add_dependence): Only check/update the cache if it exists. (remove_dependence): Likewise. diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 6af006693cc..28fdf933589 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -332,6 +332,14 @@ move_operand (op, mode) op = XEXP (op, 0); + /* The LO_SUM part of a DLT reference is not considered a move_operand; + we must reject it here since it must be accepted by memory_address_p. */ + if (GET_CODE (op) == LO_SUM + && GET_CODE (XEXP (op, 0)) == REG + && REG_OK_FOR_BASE_P (XEXP (op, 0)) + && GET_CODE (XEXP (op, 1)) == UNSPEC) + return 0; + /* Since move_operand is only used for source operands, we can always allow scaled indexing! */ if (! TARGET_DISABLE_INDEXING