aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2013-04-08 07:49:33 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2013-04-08 07:49:33 +0000
commit03ed99a89eff22949d9983cb70092127a7a0c190 (patch)
tree8db1b78a52705e339b0b9106a823389509058106
parent781b2e6231686ea829b9edbbe690be01e7438dc8 (diff)
downloadgcc-03ed99a89eff22949d9983cb70092127a7a0c190.zip
gcc-03ed99a89eff22949d9983cb70092127a7a0c190.tar.gz
gcc-03ed99a89eff22949d9983cb70092127a7a0c190.tar.bz2
s390.c (s390_expand_insv): Only accept insertions within mode size.
2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.c (s390_expand_insv): Only accept insertions within mode size. From-SVN: r197566
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d3f40dd..bb7076c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * config/s390/s390.c (s390_expand_insv): Only accept insertions
+ within mode size.
+
2013-04-08 Marek Polacek <polacek@redhat.com>
PR rtl-optimization/48182
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 663cc54..1578363 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -4647,6 +4647,9 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src)
int smode_bsize, mode_bsize;
rtx op, clobber;
+ if (bitsize + bitpos > GET_MODE_SIZE (mode))
+ return false;
+
/* Generate INSERT IMMEDIATE (IILL et al). */
/* (set (ze (reg)) (const_int)). */
if (TARGET_ZARCH