aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config.host
diff options
context:
space:
mode:
authorMarcin Koƛcielnicki <koriakin@0x04.net>2016-02-15 10:20:18 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2016-02-15 10:20:18 +0000
commit4cb4721f9371ac318e33cbed99a66a029353e10a (patch)
tree633620a331dce10653b1b110b0531b75f5ee2376 /libgcc/config.host
parent17a3b967929eb6d344ae73bff4f28efc88c35ca9 (diff)
downloadgcc-4cb4721f9371ac318e33cbed99a66a029353e10a.zip
gcc-4cb4721f9371ac318e33cbed99a66a029353e10a.tar.gz
gcc-4cb4721f9371ac318e33cbed99a66a029353e10a.tar.bz2
S/390: Add -fsplit-stack support
libgcc/ChangeLog: * config.host: Use t-stack and t-stack-s390 for s390*-*-linux. * config/s390/morestack.S: New file. * config/s390/t-stack-s390: New file. * generic-morestack.c (__splitstack_find): Add s390-specific code. gcc/ChangeLog: * common/config/s390/s390-common.c (s390_supports_split_stack): New function. (TARGET_SUPPORTS_SPLIT_STACK): New macro. * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue. * config/s390/s390.c (struct machine_function): New field split_stack_varargs_pointer. (s390_register_info): Mark r12 as clobbered if it'll be used as temp in s390_emit_prologue. (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack vararg pointer. (morestack_ref): New global. (SPLIT_STACK_AVAILABLE): New macro. (s390_expand_split_stack_prologue): New function. (s390_live_on_entry): New function. (s390_va_start): Use split-stack vararg pointer if appropriate. (s390_asm_file_end): Emit the split-stack note sections. (TARGET_EXTRA_LIVE_ON_ENTRY): New macro. * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec. (UNSPECV_SPLIT_STACK_CALL): New unspec. (UNSPECV_SPLIT_STACK_DATA): New unspec. (split_stack_prologue): New expand. (split_stack_space_check): New expand. (split_stack_data): New insn. (split_stack_call): New expand. (split_stack_call_*): New insn. (split_stack_cond_call): New expand. (split_stack_cond_call_*): New insn. From-SVN: r233421
Diffstat (limited to 'libgcc/config.host')
-rw-r--r--libgcc/config.host4
1 files changed, 2 insertions, 2 deletions
diff --git a/libgcc/config.host b/libgcc/config.host
index 06de0de..ef7dfd0 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -1114,11 +1114,11 @@ rx-*-elf)
tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
;;
s390-*-linux*)
- tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
+ tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
md_unwind_header=s390/linux-unwind.h
;;
s390x-*-linux*)
- tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
+ tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390"
if test "${host_address}" = 32; then
tmake_file="${tmake_file} s390/32/t-floattodi"
fi