Messages in this thread | | | Date | Sat, 8 Jul 2006 20:29:12 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [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/
| |