basic asm and memory clobbers - Proposed solution
Joseph Myers
joseph@codesourcery.com
Tue Dec 15 22:43:00 GMT 2015
On Tue, 15 Dec 2015, David Wohlferd wrote:
> Unlike top level, using basic asm within a function is deprecated. No new code
> should use this feature, but should use extended asm instead. Existing code
> should begin replacing such usage. Instances of affected code can be found
> using -Wonly-top-basic-asm. For help making this conversion, see "How to
> convert Basic asm to Extended asm."
I think the typical use of basic asm is: you want to manipulate I/O
registers or other such state unknown to the compiler (not any registers
the compiler might use itself), and you want to do it in a way that is
maximally compatible with as many compilers as possible (hence limiting
yourself to the syntax subset that's in the C++ standard, for example).
Compatibility with a wide range of other compilers is the critical thing
here; this is not a GCC-invented feature, and considerations for
deprecating an externally defined feature are completely different from
considerations for GCC-invented features. Do you have evidence that it is
now unusual for compilers to support basic asm without supporting
GCC-compatible extended asm, or that other compiler providers generally
consider basic asm deprecated?
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc
mailing list