aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2004-09-26 19:15:00 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2004-09-26 19:15:00 +0000
commit6cbaec9e895dd7f79385300731d46e37c07311c8 (patch)
treec0483aec59791e400d05b2244f05c4f481708224 /gcc
parent931e6c29a71dfc9923a9a106c112ddfb1bc66112 (diff)
downloadgcc-6cbaec9e895dd7f79385300731d46e37c07311c8.zip
gcc-6cbaec9e895dd7f79385300731d46e37c07311c8.tar.gz
gcc-6cbaec9e895dd7f79385300731d46e37c07311c8.tar.bz2
builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to reflect size of memory regions being compared.
* builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to reflect size of memory regions being compared. From-SVN: r88142
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/builtins.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 718e131..9c745f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2004-09-26 Ulrich Weigand <uweigand@de.ibm.com>
+ * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
+ reflect size of memory regions being compared.
+
+2004-09-26 Ulrich Weigand <uweigand@de.ibm.com>
+
* builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
expressions. Always clear MEM_SIZE and alias set.
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 9127f45..1aeae96 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -3540,6 +3540,14 @@ expand_builtin_memcmp (tree exp ATTRIBUTE_UNUSED, tree arglist, rtx target,
arg1_rtx = get_memory_rtx (arg1);
arg2_rtx = get_memory_rtx (arg2);
arg3_rtx = expand_expr (len, NULL_RTX, VOIDmode, 0);
+
+ /* Set MEM_SIZE as appropriate. */
+ if (GET_CODE (arg3_rtx) == CONST_INT)
+ {
+ set_mem_size (arg1_rtx, arg3_rtx);
+ set_mem_size (arg2_rtx, arg3_rtx);
+ }
+
#ifdef HAVE_cmpmemsi
if (HAVE_cmpmemsi)
insn = gen_cmpmemsi (result, arg1_rtx, arg2_rtx, arg3_rtx,