From 7739ebae532a59826503967bca495918273fe9e5 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Sun, 17 Oct 1999 23:08:36 +0000 Subject: [PATCH] * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). From-SVN: r30060 --- gcc/ChangeLog | 2 ++ gcc/config/pa/pa.c | 8 ++++++++ 2 files changed, 10 insertions(+) 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 -- 2.30.2