[PATCH] PowerPC64 ELFv2 ABI 4/6: Stack frame layout changes
Adhemerval Zanella
azanella@linux.vnet.ibm.com
Fri Nov 22 10:34:00 GMT 2013
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?
>
>
More information about the Libc-alpha
mailing list