cvs commit: src/sys/sparc64/include in_cksum.h

Marius Strobl marius at
Sat Jun 28 12:52:45 UTC 2008

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.


More information about the cvs-src mailing list