This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PowerPC64 ELFv2 ABI 4/6: Stack frame layout changes


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?
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]