mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 15:20:59 +08:00
Fix stack offsets and alloca alignments on ppc-vxworks
* config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, accounting for STACK_BOUNDARY 128 regardless of TARGET_ALTIVEC/VSX. (STACK_DYNAMIC_OFFSET): Likewise. From-SVN: r267024
This commit is contained in:
parent
61d1d9a664
commit
f9d4d3cf93
@ -1,3 +1,9 @@
|
||||
2018-12-11 Eric Botcazou <botcazou@adacore.com>
|
||||
|
||||
* config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define,
|
||||
accounting for STACK_BOUNDARY 128.
|
||||
(STACK_DYNAMIC_OFFSET): Likewise.
|
||||
|
||||
2018-12-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/88425
|
||||
|
@ -116,7 +116,7 @@ VXWORKS_ADDITIONAL_CPP_SPEC
|
||||
#undef SDATA_DEFAULT_SIZE
|
||||
#define SDATA_DEFAULT_SIZE (TARGET_VXWORKS_RTP ? 8 : 0)
|
||||
|
||||
/* Enforce 16bytes alignment for the stack pointer, to permit general
|
||||
/* Enforce 16-byte alignment for the stack pointer, to permit general
|
||||
compliance with e.g. Altivec instructions requirements. Make sure
|
||||
this isn't overruled by the EABI constraints. */
|
||||
|
||||
@ -128,6 +128,17 @@ VXWORKS_ADDITIONAL_CPP_SPEC
|
||||
|
||||
#undef ABI_STACK_BOUNDARY
|
||||
|
||||
#undef RS6000_STARTING_FRAME_OFFSET
|
||||
#define RS6000_STARTING_FRAME_OFFSET \
|
||||
(cfun->calls_alloca \
|
||||
? RS6000_ALIGN (crtl->outgoing_args_size + RS6000_SAVE_AREA, 16) \
|
||||
: (RS6000_ALIGN (crtl->outgoing_args_size, 16) + RS6000_SAVE_AREA))
|
||||
|
||||
#undef STACK_DYNAMIC_OFFSET
|
||||
#define STACK_DYNAMIC_OFFSET(FUNDECL) \
|
||||
RS6000_ALIGN (crtl->outgoing_args_size.to_constant () \
|
||||
+ STACK_POINTER_OFFSET, 16)
|
||||
|
||||
#undef SUBSUBTARGET_OVERRIDE_OPTIONS
|
||||
#define SUBSUBTARGET_OVERRIDE_OPTIONS \
|
||||
do { \
|
||||
|
Loading…
x
Reference in New Issue
Block a user