This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]