It is well known that asm() is a way to put assembly code into c code, but it is said in some resource that “unless you use the ‘long form’ of asm(), which correctly declares to the compiler the C-language effects of your assembly code, you leave yourself open to the substantial risk that a different compiler version, different compilation flags, or even minor changes to your C code may have disastrous interference effects.” I want to know what is the “long form” of asm()?
Share
The “long form” most likely refers to GNU Extended Asm, where the user can specify constraints, input, output registers, as well as a clobber list to help the optimizing compiler in register allocation.