https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104988
--- Comment #1 from dv at vollmann dot ch --- Sorry, it looks like it's my fault: the compiler saves and clears __zero_reg__ for ISRs so I have to do this in my assembler ISRs myself and it's correct for a function to temporarily store a non-zero value in __zero_reg__. Sorry for the noise.