GCC inline assembler requires you to list input and output constraints separately. But then it also requires you to specify "=" before an output constraint, which according to the manual means that "this operand is write-only." No modifier means read-only. Now, there seems to me that there is a subtle difference between read-only/write-only and input/output, and that therefore these are treated differently. But how does gcc practically distinguish between "input" and "read-only" if they are not identical? Are there any cases where one would put an "=" on an input constraint, or omit it on an output constraint? For "+" (both read and written) parameters, is there a difference in putting this parameter in the input vs. the output section? Is there a difference between specifying a parameter as a "+" constraint vs. specifying it as follows?
"some instruction" : "=r" : 0 :