Simon Willcocks - 2018-12-12

I had a moan about this on iconbar.com, and got a very helpful reply.
https://www.iconbar.com/forums/viewthread.php?threadid=11474&page=1#124378

Long story short: the outputs should be labelled "early-clobber" ("=&r") so that they don't re-use input registers.

"The compiler does not analyse the text in the asm block at all. The compiler models the inline asm as a sequence of

  1. read all inputs
  2. do something
  3. write all outputs

So the writes of the output registers overwrite ("clobber") the previous content of the registers late in the process. Where there is a write before a read, it overwrites the previous value "early" in the process, hence "early clobber". "