http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49452
--- Comment #21 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-09-14 06:48:01 UTC --- > All callee saved registers should never changed after function call. Here fp > has been changed is not because it is after a function call, it is because it > is after the target of non local goto. I'm not familiar with the > implementation > of non local goto, but I guess there is some convention/protocol defines which > registers may be changed after the target of a non local goto. That's not the problem. The problem is that the blockage isn't honored.