aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@redhat.com>2001-06-28 03:52:28 +0000
committerJim Wilson <wilson@gcc.gnu.org>2001-06-27 20:52:28 -0700
commit09482e0de5ec72e969255e74e0fe9c873e3d6b14 (patch)
tree90eda0fe79c802ef295abd9e2d129795c52baf88 /gcc
parenteb5593634bd2aaa59693e76bfa6aaca31b652d09 (diff)
downloadgcc-09482e0de5ec72e969255e74e0fe9c873e3d6b14.zip
gcc-09482e0de5ec72e969255e74e0fe9c873e3d6b14.tar.gz
gcc-09482e0de5ec72e969255e74e0fe9c873e3d6b14.tar.bz2
Fix ia64-linux bootstrap failure.
* emit-rtl.c (gen_highpart): Call validize_mem. From-SVN: r43627
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/emit-rtl.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b00c8b..f97c728 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-27 Jim Wilson <wilson@redhat.com>
+
+ * emit-rtl.c (gen_highpart): Call validize_mem.
+
2001-06-27 Bruce Korb <bkorb@gnu.org>
* fixinc/inclhack.def(hpux11_cpp_pow_inline): new, but real similar to
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index c4f5be3..6b3135a 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1135,6 +1135,13 @@ gen_highpart (mode, x)
result = simplify_gen_subreg (mode, x, GET_MODE (x),
subreg_highpart_offset (mode, GET_MODE (x)));
+
+ /* simplify_gen_subreg is not guaranteed to return a valid operand for
+ the target if we have a MEM. gen_highpart must return a valid operand,
+ emitting code if necessary to do so. */
+ if (GET_CODE (result) == MEM)
+ result = validize_mem (result);
+
if (!result)
abort ();
return result;