lkml.org 
[lkml]   [2006]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] spinlocks: remove 'volatile'


On Sun, 9 Jul 2006, Keith Owens wrote:
>
> This disagrees with the gcc (4.1.0) docs. info --index-search='Extended Asm' gcc
>
> The ordinary output operands must be write-only; GCC will assume
> that the values in these operands before the instruction are dead and
> need not be generated. Extended asm supports input-output or
> read-write operands. Use the constraint character `+' to indicate
> such an operand and list it with the output operands. You should
> only use read-write operands when the constraints for the operand (or
> the operand in which only some of the bits are to be changed) allow a
> register.

I'm fairly sure the docs are outdated (but may well be correct for older
gcc versions - as I already discussed elsewhere, that "+" thing was not
historically useful).

We've been using "+m" for some time in the kernel on several
architectures.

git aficionados can do

git grep -1 '"+m"' v2.6.17

to see the pre-existing usage of this (most of them go back a lot further,
although some of them are newer - the <asm-i386/bitops.h> ones were added
in January.

So if "+m" didn't work, we've been in trouble for at least the last year.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2009-11-18 23:46    [W:0.103 / U:1.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site