diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/optabs.c | 3 |
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 (); |