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.


On 06/02/16 01:47, Marcin KoÅcielnicki wrote:
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



The gcc patch has landed now, so I pushed it in.  Thanks!


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