From cc8d36a15a4dbbf65efc38edbce5660518ea239a Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 6 Feb 2008 11:45:29 +0100 Subject: [PATCH] re PR target/35083 (ICE: in extract_insn, at recog.c:1990) 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 | 6 ++++++ gcc/optabs.c | 8 +++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 871e6ddd8584..c6631740992d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-02-06 Uros Bizjak + + 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 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup diff --git a/gcc/optabs.c b/gcc/optabs.c index 448b799cb091..11df818fb891 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -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; -- 2.47.2