This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 2/2] gold: Add s390 -fsplit-stack support.
- From: Cary Coutant <ccoutant at gmail dot com>
- To: Marcin KoÅcielnicki <koriakin at 0x04 dot net>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Fri, 5 Feb 2016 16:24:56 -0800
- Subject: Re: [PATCH 2/2] gold: Add s390 -fsplit-stack support.
- Authentication-results: sourceware.org; auth=none
- References: <1454706411-1249-1-git-send-email-koriakin at 0x04 dot net> <1454706411-1249-2-git-send-email-koriakin at 0x04 dot net>
> gold/ChangeLog:
>
> * s390.cc (Target_s390::match_view_u): New helper method.
> (Target_s390::do_is_call_to_non_split): New method.
> (Target_s390::ss_code_st_r14): New const.
> (Target_s390::ss_code_l_r14): New const.
> (Target_s390::ss_code_bras_8): New const.
> (Target_s390::ss_code_l_basr): New const.
> (Target_s390::ss_code_a_basr): New const.
> (Target_s390::ss_code_ear): New const.
> (Target_s390::ss_code_c): New const.
> (Target_s390::ss_code_larl): New const.
> (Target_s390::ss_code_brasl): New const.
> (Target_s390::ss_code_jg): New const.
> (Target_s390::ss_code_jgl): New const.
> (Target_s390::ss_match_mcount): New helper method.
> (Target_s390::ss_match_l): New helper method.
> (Target_s390::ss_match_ahi): New helper method.
> (Target_s390::ss_match_alfi): New helper method.
> (Target_s390::ss_match_cr): New helper method.
> (Target_s390::do_calls_non_split): New method.
> * testsuite/Makefile.am: Added new tests.
Please add:
* testsuite/Makefile.in: Regenerate.
> * testsuite/split_s390.sh: New test.
> * testsuite/split_s390_1_a1.s: New test.
> * testsuite/split_s390_1_a2.s: New test.
> * testsuite/split_s390_1_n1.s: New test.
> * testsuite/split_s390_1_n2.s: New test.
> * testsuite/split_s390_1_z1.s: New test.
> * testsuite/split_s390_1_z2.s: New test.
> * testsuite/split_s390_1_z3.s: New test.
> * testsuite/split_s390_1_z4.s: New test.
> * testsuite/split_s390_2_ns.s: New test.
> * testsuite/split_s390_2_s.s: New test.
> * testsuite/split_s390x_1_a1.s: New test.
> * testsuite/split_s390x_1_a2.s: New test.
> * testsuite/split_s390x_1_n1.s: New test.
> * testsuite/split_s390x_1_n2.s: New test.
> * testsuite/split_s390x_1_z1.s: New test.
> * testsuite/split_s390x_1_z2.s: New test.
> * testsuite/split_s390x_1_z3.s: New test.
> * testsuite/split_s390x_1_z4.s: New test.
> * testsuite/split_s390x_2_ns.s: New test.
> * testsuite/split_s390x_2_s.s: New test.
> diff --git a/gold/Makefile.in b/gold/Makefile.in
> index 58552ef..97ce000 100644
> --- a/gold/Makefile.in
> +++ b/gold/Makefile.in
> @@ -70,8 +70,8 @@ subdir = .
> DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \
> $(srcdir)/Makefile.am $(top_srcdir)/configure \
> $(am__configure_deps) $(srcdir)/config.in \
> - $(srcdir)/../mkinstalldirs $(top_srcdir)/po/Make-in pread.c \
> - ffsll.c ftruncate.c mremap.c yyscript.h yyscript.c \
> + $(srcdir)/../mkinstalldirs $(top_srcdir)/po/Make-in mremap.c \
> + ffsll.c pread.c ftruncate.c yyscript.h yyscript.c \
> $(srcdir)/../depcomp $(srcdir)/../ylwrap
> ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
> am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
This diff is a persistent annoying change caused by non-deterministic
behavior in automake. Please don't commit this -- it only adds churn.
(Just do "git checkout gold/Makefile.in" after running automake if you
haven't made any changes to gold/Makefile.am.)
> + // Tricky case. When used in a brasl, jg, and other branch instructions,
> + // it's a call or a sibcall. However, when used in larl, it only loads
> + // the function's address - not a call.
> + case elfcpp::R_390_PC32DBL:
> + {
> + if (offset < 2 || offset + 4 > static_cast<section_offset_type>(view_size))
Line too long.
This is OK with those changes. Are you ready to check it in, or do you
want to wait for the GCC patches?
Thanks!
-cary