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
This commit is contained in:
Uros Bizjak 2008-02-06 11:45:29 +01:00 committed by Uros Bizjak
parent 2ccd9cb254
commit cc8d36a15a
2 changed files with 9 additions and 5 deletions

View 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> 2008-02-06 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup

View File

@ -1,6 +1,6 @@
/* Expand the basic unary and binary arithmetic operations, for GNU compiler. /* Expand the basic unary and binary arithmetic operations, for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 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. Free Software Foundation, Inc.
This file is part of GCC. 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, /* Unsigned integer, and no way to convert directly. Convert as signed,
then unconditionally adjust the result. For decimal float values we then unconditionally adjust the result. */
do this only if we have already determined that a signed conversion if (unsignedp && can_do_signed)
provides sufficient accuracy. */
if (unsignedp && (can_do_signed || !DECIMAL_FLOAT_MODE_P (GET_MODE (to))))
{ {
rtx label = gen_label_rtx (); rtx label = gen_label_rtx ();
rtx temp; rtx temp;