http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53975
--- Comment #6 from Jakub Jermar <jakub at jermar dot eu> 2012-07-16 06:28:29 UTC --- (In reply to comment #4) > Ah, of course the "move branch register" instruction faults if the NaT bit of > the source register is set. So the recovery code is irrelevant, and this could > be a GCC bug. Need a test case to investigate, though... Exactly. The problem is that the NaT bit cannot propagate any further when the new destination is a branch register and so the exception can no longer remain deferred. As for the test case, once you have the toolchain in place, the easiest way to reproduce this is simply to build HelenOS and disassemble the image.boot binary around the addresses above. I'd be more than happy to provide assistance with this. If tinkering with the entire HelenOS is not plausible, I can try to separate at least the printf_core() into a separately buildable testcase.