re PR rtl-optimization/11974 (ICE building alpha glibc: in emit_move_insn, at expr...
authorFalk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Mon, 6 Oct 2003 23:06:09 +0000 (23:06 +0000)
committerCarlo Wood <carlo@gcc.gnu.org>
Mon, 6 Oct 2003 23:06:09 +0000 (23:06 +0000)
PR optimization/11974
* optabs.c (expand_unop): Promote libcall outmode according to
hard_libcall_value.

From-SVN: r72170

gcc/ChangeLog
gcc/optabs.c

index a60682cb1fc59e9c4f0123a31a1ce6fb02f604fe..f08a16dc6ee24bf57f4f6b9750a76c656319da1f 100644 (file)
@@ -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.
index f05b999972ad89ca3be5a8926e30d9b50e418297..d3e55b1afe74f4f5ecebda9b88f1b04da8f7e30d 100644 (file)
@@ -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 ();