diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2008-02-06 11:45:29 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-02-06 11:45:29 +0100 |
commit | cc8d36a15a4dbbf65efc38edbce5660518ea239a (patch) | |
tree | ed416c31a71540eddcf5ff2f08b9791511ef711d /gcc | |
parent | 2ccd9cb254fb69a2bf428bfa487f682570e2f70f (diff) | |
download | gcc-cc8d36a15a4dbbf65efc38edbce5660518ea239a.zip gcc-cc8d36a15a4dbbf65efc38edbce5660518ea239a.tar.gz gcc-cc8d36a15a4dbbf65efc38edbce5660518ea239a.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/optabs.c | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 871e6dd..c663174 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/optabs.c b/gcc/optabs.c index 448b799..11df818 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; |