From 6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Tue, 25 Sep 2001 00:28:28 +0000 Subject: [PATCH] * (lwa_operand): Address must be word aligned. From-SVN: r45795 --- gcc/ChangeLog | 4 ++++ gcc/config/rs6000/rs6000.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 419ec4b9a02..c37c714891e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-09-24 David Edelsohn + + * rs6000.c (lwa_operand): Address must be word aligned. + Mon Sep 24 18:57:59 2001 Richard Kenner * tree.c (type_hash_marked_p): Consider as marked if debug symbol diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 738c8a5bed8..cf47f98fff1 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1308,7 +1308,10 @@ lwa_operand (op, mode) return gpc_reg_operand (inner, mode) || (memory_operand (inner, mode) && GET_CODE (XEXP (inner, 0)) != PRE_INC - && GET_CODE (XEXP (inner, 0)) != PRE_DEC); + && GET_CODE (XEXP (inner, 0)) != PRE_DEC + && (GET_CODE (XEXP (inner, 0)) != PLUS + || (GET_CODE (XEXP (XEXP (inner, 0), 1)) == CONST_INT + && INTVAL (XEXP (XEXP (inner, 0), 1)) % 4 == 0))); } /* Return 1 if the operand, used inside a MEM, is a valid first argument -- 2.30.2