aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2001-09-25 00:28:28 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-09-24 20:28:28 -0400
commit6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81 (patch)
tree1045124f31e841dff955a52da620057c44be7f87
parent6abba05560580219d98dc5e14f1215f8349b3fb2 (diff)
downloadgcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.zip
gcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.tar.gz
gcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.tar.bz2
* (lwa_operand): Address must be word aligned.
From-SVN: r45795
-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 419ec4b..c37c714 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 738c8a5..cf47f98 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