aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarcin Kościelnicki <koriakin@0x04.net>2016-02-15 11:48:28 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2016-02-15 11:48:28 +0000
commit7e2507a578d6c82e6bb1fb05353c61f7808cf47e (patch)
tree7e9bc612ceff0e1dff2029e7af8f56d8aa253c26 /gcc
parent4cb4721f9371ac318e33cbed99a66a029353e10a (diff)
downloadgcc-7e2507a578d6c82e6bb1fb05353c61f7808cf47e.zip
gcc-7e2507a578d6c82e6bb1fb05353c61f7808cf47e.tar.gz
gcc-7e2507a578d6c82e6bb1fb05353c61f7808cf47e.tar.bz2
S/390: New mcount call sequence for z900+ CPUs in 31-bit mode.
gcc/ChangeLog: 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net> * config/s390/s390.c (s390_function_profiler): Add a new sequence for z900+ CPUs in 31-bit mode. From-SVN: r233422
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cf178e7..45f7b6e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
+ * config/s390/s390.c (s390_function_profiler): Add a new sequence
+ for z900+ CPUs in 31-bit mode.
+
+2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
+
* common/config/s390/s390-common.c (s390_supports_split_stack):
New function.
(TARGET_SUPPORTS_SPLIT_STACK): New macro.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index aa82d1c..b1ab0c0 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 ();