This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] PowerPC64 ELFv2 ABI 4/6: Stack frame layout changes
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Thu, 21 Nov 2013 08:58:22 -0200
- Subject: Re: [PATCH] PowerPC64 ELFv2 ABI 4/6: Stack frame layout changes
- Authentication-results: sourceware.org; auth=none
- References: <201311122122 dot rACLMfne019310 at d06av02 dot portsmouth dot uk dot ibm dot com>
This patch is ok, thanks!
On 12-11-2013 19:22, Ulrich Weigand wrote:
> Hello,
>
> this updates glibc for the changes in the ELFv2 relating to the
> stack frame layout. These are described in more detail here:
> http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01149.html
> http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01146.html
>
> Specifically, the "compiler and linker doublewords" were removed,
> which has the effect that the save slot for the TOC register is
> now at offset 24 rather than 40 to the stack pointer.
>
> In addition, a function may now no longer necessarily assume that
> its caller has set up a 64-byte register save area its use.
>
> To address the first change, the patch goes through all assembler
> files and replaces immediate offsets in instructions accessing the
> ABI-defined stack slots by symbolic offsets. Those already were
> defined in ucontext_i.sym and used in some of the context routines,
> but that doesn't really seem like the right place for those defines.
>
> The patch instead defines those symbolic offsets in sysdeps.h,
> in two variants for the old and new ABI, and uses them systematically
> in all assembler files, not just the context routines.
>
> The second change only affected a few assembler files that used
> the save area to temporarily store some registers. In those
> cases where this happens within a leaf function, this patch
> changes the code to store those registers to the "red zone"
> below the stack pointer. Otherwise, the functions already allocate
> a stack frame, and the patch changes them to add extra space in
> these frames as temporary space for the ELFv2 ABI.
>
> Tested on powerpc64-linux and powerpc64le-linux.
>
> OK for mainline?
>
>