]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/35083 (ICE: in extract_insn, at recog.c:1990)
authorUros Bizjak <ubizjak@gmail.com>
Wed, 6 Feb 2008 10:45:29 +0000 (11:45 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 6 Feb 2008 10:45:29 +0000 (11:45 +0100)
PR target/35083
* optabs.c (expand_float): Do not check for decimal modes when
expanding unsigned integer through signed conversion.

From-SVN: r132144

gcc/ChangeLog
gcc/optabs.c

index 871e6ddd85848d9835841d7037945162ae844e85..c6631740992d9cdf4a94d7b4b12c557130fe42f3 100644 (file)
@@ -1,3 +1,9 @@
+2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/35083
+       * optabs.c (expand_float): Do not check for decimal modes when
+       expanding unsigned integer through signed conversion.
+
 2008-02-06  Nick Clifton  <nickc@redhat.com>
 
        * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
index 448b799cb091a8866a59c875a6a7961534a25bbc..11df818fb891fe58b11270060a4ff5a148660672 100644 (file)
@@ -1,6 +1,6 @@
 /* Expand the basic unary and binary arithmetic operations, for GNU compiler.
    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -5144,10 +5144,8 @@ expand_float (rtx to, rtx from, int unsignedp)
       }
 
   /* Unsigned integer, and no way to convert directly.  Convert as signed,
-     then unconditionally adjust the result.  For decimal float values we
-     do this only if we have already determined that a signed conversion
-     provides sufficient accuracy.  */
-  if (unsignedp && (can_do_signed || !DECIMAL_FLOAT_MODE_P (GET_MODE (to))))
+     then unconditionally adjust the result.  */
+  if (unsignedp && can_do_signed)
     {
       rtx label = gen_label_rtx ();
       rtx temp;