The difference between asm, asm volatile and clobbering memory

See the “Extended Asm” page in the GCC documentation. You can prevent an asm instruction from being deleted by writing the keyword volatile after the asm. […] The volatile keyword indicates that the instruction has important side-effects. GCC will not delete a volatile asm if it is reachable. and An asm instruction without any output … Read more