From owner-cvs-src@FreeBSD.ORG Sat Jun 28 12:52:45 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B3E91065671; Sat, 28 Jun 2008 12:52:45 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 275CC8FC12; Sat, 28 Jun 2008 12:52:44 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.3/8.14.3/ALCHEMY.FRANKEN.DE) with ESMTP id m5SCqfaO035279; Sat, 28 Jun 2008 14:52:41 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.3/8.14.3/Submit) id m5SCqfvc035278; Sat, 28 Jun 2008 14:52:41 +0200 (CEST) (envelope-from marius) Date: Sat, 28 Jun 2008 14:52:41 +0200 From: Marius Strobl To: Christoph Mallon Message-ID: <20080628125241.GN1215@alchemy.franken.de> References: <200806272217.m5RMHTd7006079@repoman.freebsd.org> <48657008.4010504@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48657008.4010504@gmx.de> User-Agent: Mutt/1.4.2.3i Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sparc64/include in_cksum.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jun 2008 12:52:45 -0000 On Sat, Jun 28, 2008 at 12:56:08AM +0200, Christoph Mallon wrote: > Marius Strobl wrote: > >marius 2008-06-27 22:17:14 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/sparc64/include in_cksum.h > > Log: > > SVN rev 180073 on 2008-06-27 22:17:14Z by marius > > > > Improve r180011 by explicitly adding the condition codes to the > > clobber list. > > You should remove the volatile specifier. For example volatile prevents > common subexpression elimination and other types of optimisations. > I had to adjust the constraint strings in this source file twice now in order to keep GCC from generating broken code, thus I prefer to be conservative by using a slightly bigger hammer and leave the "__volatile" in in order to keep these kind of problems from coming back to haunt us over and over again. Especially when it comes to something as vaguely ("important side-effects", "access memory in an unpredictable fashion", etc) documented as the GCC assembler constraints and thus hard to get right without studying the GCC source and maybe requiring "__volatile" in the future anyway. Marius