[ was: Re: combination of read/write and earlyclobber constraint modifier on gcc@ ] On 03-07-14 00:42, Jeff Law wrote:
Based on various followups (public & private), let's go with the clarification above. Richard E. explicitly added support for this in the mid/late 90s as an optimization for the ARM.
Jeff, Committed as attached. Thanks to all for the helpful comments. - Tom
2014-07-04 Tom de Vries <t...@codesourcery.com> * doc/md.texi (@subsection Constraint Modifier Characters): Clarify combination of earlyclobber and read/write modifiers. diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 539865e..fde67d7 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -1582,7 +1582,10 @@ alternatives of this form often allows GCC to produce better code when only some of the inputs can be affected by the earlyclobber. See, for example, the @samp{mulsi3} insn of the ARM@. -@samp{&} does not obviate the need to write @samp{=}. +Furthermore, if the @dfn{earlyclobber} operand is also read/write operand, then +that operand is modified only after it's used. + +@samp{&} does not obviate the need to write @samp{=} or @samp{+}. @cindex @samp{%} in constraint @item % -- 1.9.1