mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 11:04:18 +08:00
PowerPC64 ELFv2 ABI: stack frame layout changes
This implementes another change in ELFv2: the stack frame no longer contains the reserved double words for linker and compiler use (which weren't really used for much of anything anyway). This affects placement of on-stack parameters in inferior calls. gdb/ChangeLog: * ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Use correct offset to the stack parameter list for the ELFv2 ABI.
This commit is contained in:
parent
d4094b6a88
commit
52f548e41f
@ -1,3 +1,8 @@
|
||||
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Use correct
|
||||
offset to the stack parameter list for the ELFv2 ABI.
|
||||
|
||||
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* ppc-linux-tdep.c (ppc_linux_init_abi): Only call
|
||||
|
@ -1474,9 +1474,13 @@ ppc64_sysv_abi_push_dummy_call (struct gdbarch *gdbarch,
|
||||
argpos.regcache = regcache;
|
||||
argpos.refparam = align_down (sp - refparam_size, 16);
|
||||
argpos.gparam = align_down (argpos.refparam - gparam_size, 16);
|
||||
/* Add in space for the TOC, link editor double word,
|
||||
compiler double word, LR save area, CR save area. */
|
||||
sp = align_down (argpos.gparam - 48, 16);
|
||||
/* Add in space for the TOC, link editor double word (v1 only),
|
||||
compiler double word (v1 only), LR save area, CR save area,
|
||||
and backchain. */
|
||||
if (tdep->elf_abi == POWERPC_ELF_V1)
|
||||
sp = align_down (argpos.gparam - 48, 16);
|
||||
else
|
||||
sp = align_down (argpos.gparam - 32, 16);
|
||||
}
|
||||
|
||||
/* If the function is returning a `struct', then there is an
|
||||
|
Loading…
Reference in New Issue
Block a user