diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf178e74baa..45f7b6ee816 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-02-15 Marcin Koƛcielnicki + + * config/s390/s390.c (s390_function_profiler): Add a new sequence + for z900+ CPUs in 31-bit mode. + 2016-02-15 Marcin Koƛcielnicki * common/config/s390/s390-common.c (s390_supports_split_stack): diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index aa82d1c2329..b1ab0c07613 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -12205,6 +12205,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 ();