Commit f9d4d3cf by Eric Botcazou Committed by Olivier Hainque

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
parent 61d1d9a6
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> 2018-12-11 Jakub Jelinek <jakub@redhat.com>
PR target/88425 PR target/88425
...@@ -116,7 +116,7 @@ VXWORKS_ADDITIONAL_CPP_SPEC ...@@ -116,7 +116,7 @@ VXWORKS_ADDITIONAL_CPP_SPEC
#undef SDATA_DEFAULT_SIZE #undef SDATA_DEFAULT_SIZE
#define SDATA_DEFAULT_SIZE (TARGET_VXWORKS_RTP ? 8 : 0) #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 compliance with e.g. Altivec instructions requirements. Make sure
this isn't overruled by the EABI constraints. */ this isn't overruled by the EABI constraints. */
...@@ -128,6 +128,17 @@ VXWORKS_ADDITIONAL_CPP_SPEC ...@@ -128,6 +128,17 @@ VXWORKS_ADDITIONAL_CPP_SPEC
#undef ABI_STACK_BOUNDARY #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 #undef SUBSUBTARGET_OVERRIDE_OPTIONS
#define SUBSUBTARGET_OVERRIDE_OPTIONS \ #define SUBSUBTARGET_OVERRIDE_OPTIONS \
do { \ do { \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment