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.

Reply via email to