summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-25 00:28:28 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-25 00:28:28 +0000
commit5eb75ffc8dd1ce05db6b451dc5ee857a664710a2 (patch)
tree1045124f31e841dff955a52da620057c44be7f87
parent073fef8750ff7e518a1eae26e056d4cc1d2c4313 (diff)
downloadppe42-gcc-5eb75ffc8dd1ce05db6b451dc5ee857a664710a2.tar.gz
ppe42-gcc-5eb75ffc8dd1ce05db6b451dc5ee857a664710a2.zip
* (lwa_operand): Address must be word aligned.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45795 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/rs6000/rs6000.c5
2 files changed, 8 insertions, 1 deletions
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 <edelsohn@gnu.org>
+
+ * rs6000.c (lwa_operand): Address must be word aligned.
+
Mon Sep 24 18:57:59 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* 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
OpenPOWER on IntegriCloud