Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Mar 1996 17:39:02 -0700
From:      Nate Williams <nate@sri.MT.net>
To:        current%FreeBSD.org@sri.com
Subject:   GCC fix for long long comparisons
Message-ID:  <199603160039.RAA13967@rocky.sri.MT.net>

next in thread | raw e-mail | index | archive | help
------- start of forwarded message (RFC 934 encapsulation) -------
Received: from sneezy (sneezy.sri.com [128.18.40.6]) by rocky.sri.MT.net (8.6.12/8.6.12) with ESMTP id RAA13864 for <nate@sri.MT.net>; Fri, 15 Mar 1996 17:22:50 -0700
Received: from mail.barrnet.net by sneezy (SMI-8.6/SMI-SVR4)
	id QAA26418; Fri, 15 Mar 1996 16:19:05 -0800
Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.4]) by mail.barrnet.net (8.7.4/MAIL-RELAY-LEN) with ESMTP id QAA13112 for <nate@sneezy.sri.com>; Fri, 15 Mar 1996 16:19:55 -0800 (PST)
Received: from pain.lcs.mit.edu (pain.lcs.mit.edu [128.52.46.239])
          by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id QAA13774
          Fri, 15 Mar 1996 16:19:52 -0800 (PST)
Received: (from daemon@localhost) by pain.lcs.mit.edu (8.7.4/8.6.12) id SAA01869; Fri, 15 Mar 1996 18:00:07 -0500 (EST)
Received: (from source@localhost) by pain.lcs.mit.edu (8.7.4/8.6.12) id SAA01863; Fri, 15 Mar 1996 18:00:03 -0500 (EST)
Message-Id: <199603152300.SAA01863@pain.lcs.mit.edu>
Precedence: list
X-Loop: source-changes@NetBSD.ORG
From: The Source of All Evil <source@NetBSD.ORG>
Sender: owner-source-changes@NetBSD.ORG
To: source-changes@NetBSD.ORG
Subject: NetBSD master CVS tree commits
Date: Fri, 15 Mar 1996 18:00:03 -0500 (EST)


jtc
Fri Mar 15 17:55:55 EST 1996
Update of /a/cvsroot/src/gnu/usr.bin/gcc/common
In directory pain.lcs.mit.edu:/b/tmp/cvs-serv1780

Modified Files:
	expmed.c 
Log Message:
Patch from J"orn Rennecke that fixes code generation bugs with long
long comparisons.  As of this date, this change hasn't made it into
the development sources.  We must consider this when it comes time
to integrate a newer gcc release.

Thu Mar  7 01:16:23 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)

	* expmed.c (negate_rtx): Don't negate LONG_MIN if mode is wider
	than HOST_WIDE_INT.


gcc now produces worse code for this test case than gcc 2.5.8 when
invoked with -O , but it will optimize as good as gcc 2.5.8 (i.e. all
comparisons vanish) when invoked with -O2 , thus I think it doesn't
matter.  If anyone is interested in looking into this, the code in
expr.c, function expand_expr, case MINUS_EXPR, if-clause for if
(TREE_UNSIGNED (type) || TREE_OVERFLOW (negated)), will refuse to
convert the subtraction into an addition if there is an overflow in
the conversion or negation of the constant.  If both host and target
machine are binary computers with 2-complement representation, the
overflow should not matter.
------- end -------




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603160039.RAA13967>