This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: e500 port: setjmp/longjmp
- From: "Ryan S. Arnold" <ryan dot arnold at gmail dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: libc-alpha <libc-alpha at sourceware dot org>
- Date: Wed, 18 Sep 2013 08:33:05 -0500
- Subject: Re: e500 port: setjmp/longjmp
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1309172114590 dot 15396 at digraph dot polyomino dot org dot uk>
On Tue, Sep 17, 2013 at 4:16 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> This patch implements e500 support in the soft-float powerpc32
> setjmp/longjmp. Like the old e500 port, it stores the 64-bit
> registers in the area used for FPRs for hard-float and previously not
> used at all for soft-float; unlike that old port, it doesn't duplicate
> the storage of the low parts by putting them in the GPR save area
> (setjmp and longjmp always come from the same libc build; the jmp_buf
> layout is not a public ABI so there is no need for such duplication).
> As discussed in
> <https://sourceware.org/ml/libc-alpha/2013-09/msg00485.html>, this is
> entirely compile-time conditional rather than doing anything
> runtime-conditional using HWCAP bits.
>
> Tested with a build for e500.
>
> 2013-09-17 Joseph Myers <joseph@codesourcery.com>
>
> * sysdeps/powerpc/powerpc32/__longjmp-common.S (LOAD_GP): Define
> macro conditional on [__SPE__ || (__NO_FPRS__ && !_SOFT_FLOAT)].
> (__longjmp): Use LOAD_GP to load saved GPRs.
> * sysdeps/powerpc/powerpc32/setjmp-common.S (SAVE_GP): Define
> macro conditional on [__SPE__ || (__NO_FPRS__ && !_SOFT_FLOAT)].
> (__sigsetjmp): Use SAVE_GP to save GPRs.
I'm fine with this patch.
Ryan S. Arnold