On Thu, Sep 01, 2022 at 07:47:10AM +0000, Christophe Leroy wrote: > Le 01/09/2022 à 09:37, Gabriel Paubert a écrit : > > Agree, but there is one thing which escapes me: why is r3 listed in the > > outputs section (actually as a read write operand with the "+" > > constraint modifier) but is not used after the asm which is the last > > statement of function returning void? > > > > Do I miss something? > > As far as I remember, that's to tell GCC that r3 register is modified by > the callee. As it is an input, it couldn't be listed in the clobber list.
Inputs can be clobbered just fine, in general. But here the operand is tied to a register variable, and that causes the error ("'asm' specifier for variable 'r3' conflicts with 'asm' clobber list"). Marking it in/out here is more appropriate anyway :-) Segher