[Bug target/53975] [ia64] Target register of a speculative load moved to a branch register prior to the chk.s instruction
jakub at jermar dot eu
gcc-bugzilla@gcc.gnu.org
Mon Jul 16 06:28:00 GMT 2012
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.
More information about the Gcc-bugs
mailing list