[PATCH 2/2] gold: Add s390 -fsplit-stack support.

Marcin Koƛcielnicki koriakin@0x04.net
Sat Feb 6 00:47:00 GMT 2016
On 06/02/16 01:24, Cary Coutant wrote:
>> 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?

Still waiting, will commit it with above fixes once gcc side is done. 
Thanks!
>
> Thanks!
>
> -cary
>



More information about the Binutils mailing list