This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [arm] possible bug in G++ 3.4.x
- From: Paul Brook <paul at codesourcery dot com>
- To: Petko Manolov <petkan at nucleusys dot com>
- Cc: Vladimir Ivanov <vladitx at nucleusys dot com>,Richard Earnshaw <rearnsha at gcc dot gnu dot org>,gcc at gcc dot gnu dot org
- Date: Tue, 1 Mar 2005 15:40:45 +0000
- Subject: Re: [arm] possible bug in G++ 3.4.x
- Organization: CodeSourcery
- References: <Pine.LNX.4.61.0502281432160.4109@zztop.nucleusys.com> <200503011339.38434.paul@codesourcery.com> <Pine.LNX.4.61.0503011727500.2165@bender.nucleusys.com>
On Tuesday 01 March 2005 15:29, Petko Manolov wrote:
> On Tue, 1 Mar 2005, Paul Brook wrote:
> > The "old" arm-none-elf and arm-linux targets still use SJLJ exceptions.
> > They will probably never be "fixed" as this would involve an ABI change.
>
> Didn't understand that. How is all non scratch FP registers save at the
> prologue related to the exceptions?
Because SJLJ exception handling is implemented using
__builtin_setjmp/__builtin_longjmp. These do not save/restore FP register
state.
If an exception is thrown the FP state will be that at the throwing location.
Thus the prologue must save all call-saved registers if there is a possibility
that an exception will be caught.
Paul