OSDN Git Service

PR target/35083
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Feb 2008 10:45:29 +0000 (10:45 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Feb 2008 10:45:29 +0000 (10:45 +0000)
* optabs.c (expand_float): Do not check for decimal modes when
expanding unsigned integer through signed conversion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132144 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/optabs.c

index 871e6dd..c663174 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 448b799..11df818 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;