diff options
author | David Edelsohn <edelsohn@gnu.org> | 2001-09-25 00:28:28 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2001-09-24 20:28:28 -0400 |
commit | 6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81 (patch) | |
tree | 1045124f31e841dff955a52da620057c44be7f87 | |
parent | 6abba05560580219d98dc5e14f1215f8349b3fb2 (diff) | |
download | gcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.zip gcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.tar.gz gcc-6a40a9d6f271e1d0a0ee2fd57d91f39a659d6d81.tar.bz2 |
* (lwa_operand): Address must be word aligned.
From-SVN: r45795
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 |
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 |