diff options
author | Alan Modra <amodra@gmail.com> | 2015-05-20 10:56:28 +0930 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2015-05-20 10:56:28 +0930 |
commit | 0f0fd745255adf8b2904b0acaf1c3b66ec93ddb2 (patch) | |
tree | 25d754bde890f2750c3489f49713ea0123e09339 /libgcc/generic-morestack.c | |
parent | 8a03f86937467dcfe401b4f369307faf2593e97a (diff) | |
download | gcc-0f0fd745255adf8b2904b0acaf1c3b66ec93ddb2.zip gcc-0f0fd745255adf8b2904b0acaf1c3b66ec93ddb2.tar.gz gcc-0f0fd745255adf8b2904b0acaf1c3b66ec93ddb2.tar.bz2 |
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
Diffstat (limited to 'libgcc/generic-morestack.c')
-rw-r--r-- | libgcc/generic-morestack.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c index 76f94d2..a10559b 100644 --- a/libgcc/generic-morestack.c +++ b/libgcc/generic-morestack.c @@ -23,6 +23,9 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +/* powerpc 32-bit not supported. */ +#if !defined __powerpc__ || defined __powerpc64__ + #include "tconfig.h" #include "tsystem.h" #include "coretypes.h" @@ -935,6 +938,7 @@ __splitstack_find (void *segment_arg, void *sp, size_t *len, nsp -= 12 * sizeof (void *); #elif defined (__i386__) nsp -= 6 * sizeof (void *); +#elif defined __powerpc64__ #else #error "unrecognized target" #endif @@ -1170,3 +1174,4 @@ __splitstack_find_context (void *context[NUMBER_OFFSETS], size_t *stack_size, } #endif /* !defined (inhibit_libc) */ +#endif /* not powerpc 32-bit */ |