This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: basic asm and memory clobbers - Proposed solution

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]