On Wed, Oct 18, 2017 at 01:50:31PM +0000, Bernd Edlinger wrote:
> Yes, the volatile is still necessary.
Certainly. And to work around the bug, it should work to mention some
hard register as asm input. Ideally something that is live anyway;
perhaps the stack pointer :-) Like so:
__asm volatile ("mrs %0,PRIMASK" : "=r" (status) :: "sp");
(I tested this, it does work around the bug).
Or hey, why not the program counter, that should make it even clearer
something is funny here:
__asm volatile ("mrs %0,PRIMASK" : "=r" (status) :: "pc");
(also tested, works fine).
Segher