On 21/01/16 14:03, Marcin Kościelnicki wrote:
On TARGET_CPU_ZARCH && !TARGET_64BIT, we can use a similiar lean mcount
call sequence to TARGET_64BIT.  The longer sequences are now used only
on deprecated g5/g6 CPUs.

Tested on s390-ibm-linux-gnu on RHEL 7.2.

gcc/ChangeLog:

        * config/s390/s390.c (s390_function_profiler): Add a new sequence
        for z900+ CPUs in 31-bit mode.
---
This change was mentioned in the s390 split-stack thread.

  gcc/ChangeLog          | 5 +++++
  gcc/config/s390/s390.c | 7 +++++++
  2 files changed, 12 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0e77409..94b9bd0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-21  Marcin Kościelnicki  <koria...@0x04.net>
+
+       * config/s390/s390.c (s390_function_profiler): Add a new sequence
+       for z900+ CPUs in 31-bit mode.
+
  2016-01-21  Richard Biener  <rguent...@suse.de>

        * graphite-optimize-isl.c (get_schedule_map): Fix typo.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 3be64de..eb26f18 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -11974,6 +11974,13 @@ s390_function_profiler (FILE *file, int labelno)
        output_asm_insn ("brasl\t%0,%4", op);
        output_asm_insn ("lg\t%0,%1", op);
      }
+  else if (TARGET_CPU_ZARCH)
+    {
+      output_asm_insn ("st\t%0,%1", op);
+      output_asm_insn ("larl\t%2,%3", op);
+      output_asm_insn ("brasl\t%0,%4", op);
+      output_asm_insn ("l\t%0,%1", op);
+    }
    else if (!flag_pic)
      {
        op[6] = gen_label_rtx ();



Ping?

Reply via email to