rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.
authorAlan Modra <amodra@gmail.com>
Wed, 20 May 2015 01:26:28 +0000 (10:56 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Wed, 20 May 2015 01:26:28 +0000 (10:56 +0930)
commit0f0fd745255adf8b2904b0acaf1c3b66ec93ddb2
tree25d754bde890f2750c3489f49713ea0123e09339
parent8a03f86937467dcfe401b4f369307faf2593e97a
rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.

gcc/
* common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
Define.
(rs6000_supports_split_stack): New function.
* gcc/config/rs6000/rs6000.c (machine_function): Add
split_stack_arg_pointer.
(TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
(setup_incoming_varargs): Use crtl->args.internal_arg_pointer
rather than virtual_incoming_args_rtx.
(rs6000_va_start): Likewise.
(split_stack_arg_pointer_used_p): New function.
(rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
(morestack_ref): New var.
(gen_add3_const, rs6000_expand_split_stack_prologue,
rs6000_internal_arg_pointer, rs6000_live_on_entry,
rs6000_split_stack_space_check): New functions.
(rs6000_elf_file_end): Call file_end_indicate_split_stack.
* gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
(UNSPECV_SPLIT_STACK_RETURN): Define.
(split_stack_prologue, load_split_stack_limit,
load_split_stack_limit_di, load_split_stack_limit_si,
split_stack_return, split_stack_space_check): New expands and insns.
* gcc/config/rs6000/rs6000-protos.h
(rs6000_expand_split_stack_prologue): Declare.
(rs6000_split_stack_space_check): Declare.
libgcc/
* config/rs6000/morestack.S: New.
* config/rs6000/t-stack-rs6000: New.
* config.host (powerpc*-*-linux*): Add t-stack and t-stack-rs6000
to tmake_file.
* generic-morestack.c: Don't build for powerpc 32-bit.

From-SVN: r223426
gcc/ChangeLog
gcc/common/config/rs6000/rs6000-common.c
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
libgcc/ChangeLog
libgcc/config.host
libgcc/config/rs6000/morestack.S [new file with mode: 0644]
libgcc/config/rs6000/t-stack-rs6000 [new file with mode: 0644]
libgcc/generic-morestack.c