aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFalk Hueffner <falk.hueffner@student.uni-tuebingen.de>2003-10-06 23:06:09 +0000
committerCarlo Wood <carlo@gcc.gnu.org>2003-10-06 23:06:09 +0000
commitcd2ac05b77794ac29ad70a469437c258c43fc432 (patch)
tree268121ed32b7b8f047a3bd2295cbef84bd88373f /gcc
parent70a01792d85cdeb0baefdccc840444735f8cd396 (diff)
downloadgcc-cd2ac05b77794ac29ad70a469437c258c43fc432.zip
gcc-cd2ac05b77794ac29ad70a469437c258c43fc432.tar.gz
gcc-cd2ac05b77794ac29ad70a469437c258c43fc432.tar.bz2
re PR rtl-optimization/11974 (ICE building alpha glibc: in emit_move_insn, at expr.c:3206)
PR optimization/11974 * optabs.c (expand_unop): Promote libcall outmode according to hard_libcall_value. From-SVN: r72170
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/optabs.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a60682c..f08a16d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-06 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ PR optimization/11974
+ * optabs.c (expand_unop): Promote libcall outmode according to
+ hard_libcall_value.
+
2003-10-06 Zack Weinberg <zack@codesourcery.com>
* real.h (REAL_MODE_FORMAT): New macro.
diff --git a/gcc/optabs.c b/gcc/optabs.c
index f05b999..d3e55b1 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -2639,7 +2639,8 @@ expand_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target,
have them return something that isn't a double-word. */
if (unoptab == ffs_optab || unoptab == clz_optab || unoptab == ctz_optab
|| unoptab == popcount_optab || unoptab == parity_optab)
- outmode = TYPE_MODE (integer_type_node);
+ outmode
+ = GET_MODE (hard_libcall_value (TYPE_MODE (integer_type_node)));
start_sequence ();