aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>2000-09-10 18:25:49 +0000
committerJohn Wehle <wehle@gcc.gnu.org>2000-09-10 18:25:49 +0000
commitd982e46e1c8ec6ed6ab7afc51c7390788edaa0e6 (patch)
tree7eefe19dc8865370e7ecf0dc3bfec84f34941058
parent212d447c7fbeed4cf515089d5c67fc6caaa34c45 (diff)
downloadgcc-d982e46e1c8ec6ed6ab7afc51c7390788edaa0e6.zip
gcc-d982e46e1c8ec6ed6ab7afc51c7390788edaa0e6.tar.gz
gcc-d982e46e1c8ec6ed6ab7afc51c7390788edaa0e6.tar.bz2
alias.c (find_base_term): Handle ADDRESSOF.
* alias.c (find_base_term): Handle ADDRESSOF. (memrefs_conflict_p): An ADDRESSOF doesn't conflict. From-SVN: r36300
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/alias.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c714e1..553741d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
+
+ * alias.c (find_base_term): Handle ADDRESSOF.
+ (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
+
2000-09-10 Denis Chertykov <denisc@overta.ru>
* genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
diff --git a/gcc/alias.c b/gcc/alias.c
index cb5a636..b17296b 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1131,6 +1131,9 @@ find_base_term (x)
case LABEL_REF:
return x;
+ case ADDRESSOF:
+ return REG_BASE_VALUE (stack_pointer_rtx);
+
default:
return 0;
}
@@ -1454,6 +1457,9 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
return memrefs_conflict_p (xsize, x, ysize, XEXP (y, 0), c);
}
+ if (GET_CODE (x) == ADDRESSOF || GET_CODE (y) == ADDRESSOF)
+ return xsize <= 0 || ysize <= 0;
+
if (CONSTANT_P (x))
{
if (GET_CODE (x) == CONST_INT && GET_CODE (y) == CONST_INT)