aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2005-11-21 16:38:13 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2005-11-21 16:38:13 +0000
commite20dcbefa5407dc35fe4acf749322f6a75781d38 (patch)
treea724852f25b48916f7cb2d977d9ce0b3aac47ece /gcc
parent72c164b3f80fada904619f8af974adf53ceff1ad (diff)
downloadgcc-e20dcbefa5407dc35fe4acf749322f6a75781d38.zip
gcc-e20dcbefa5407dc35fe4acf749322f6a75781d38.tar.gz
gcc-e20dcbefa5407dc35fe4acf749322f6a75781d38.tar.bz2
re PR target/24951 (ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c)
2005-11-21 Paolo Bonzini <bonzini@gnu.org> PR target/24951 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and cst2 only for SPE vectors. From-SVN: r107312
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c9
2 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fdc3098..38726f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-21 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/24951
+ * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
+ cst2 only for SPE vectors.
+
2005-11-21 David Edelsohn <edelsohn@gnu.org>
PR target/24953
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fb3c3a1..b72c3fd 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -2200,9 +2200,6 @@ output_vec_const_move (rtx *operands)
dest = operands[0];
vec = operands[1];
-
- cst = INTVAL (CONST_VECTOR_ELT (vec, 0));
- cst2 = INTVAL (CONST_VECTOR_ELT (vec, 1));
mode = GET_MODE (dest);
if (TARGET_ALTIVEC)
@@ -2240,8 +2237,10 @@ output_vec_const_move (rtx *operands)
FIXME: We should probably return # and add post reload
splitters for these, but this way is so easy ;-). */
- operands[1] = GEN_INT (cst);
- operands[2] = GEN_INT (cst2);
+ cst = INTVAL (CONST_VECTOR_ELT (vec, 0));
+ cst2 = INTVAL (CONST_VECTOR_ELT (vec, 1));
+ operands[1] = CONST_VECTOR_ELT (vec, 0);
+ operands[2] = CONST_VECTOR_ELT (vec, 1);
if (cst == cst2)
return "li %0,%1\n\tevmergelo %0,%0,%0";
else