IBM Z: zTPF: Add tpf trace customization options
authorAndreas Krebbel <krebbel@linux.ibm.com>
Wed, 4 Mar 2020 12:29:38 +0000 (13:29 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Wed, 4 Mar 2020 12:30:22 +0000 (13:30 +0100)
commit181e2a2fa5e6d444a0aee95add450e5bcc659ca9
tree1a535cbf2551e241c3d04b332eafef3c32a461d4
parent20fb4a47421527d6dae2db2f751df036e6b85ded
IBM Z: zTPF: Add tpf trace customization options

The zTPF OS implements a tracing facility for function entry and exit
which uses global flags and trace function addresses. The addresses of
the flags as well as the trace functions are currently hard-coded in
the zTPF specific GCC parts of the IBM Z back-end.

With this patch these addresses can be changed at compile-time using
the new command line options.  For convenience one additional command
line option (-mtpf-trace-skip) implements a new set of hard-coded
addresses.

gcc/ChangeLog:

2020-03-04  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390.c (s390_emit_prologue): Specify the 2 new
operands to the prologue_tpf expander.
(s390_emit_epilogue): Likewise.
(s390_option_override_internal): Do error checking and setup for
the new options.
* config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
(TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
(TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
(TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
* config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
operands for the check flag and the branch target.
* config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
("mtpf-trace-hook-prologue-target")
("mtpf-trace-hook-epilogue-check")
("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
options.
* doc/invoke.texi: Document -mtpf-trace-skip option. The other
options are for debugging purposes and will not be documented
here.
gcc/config/s390/s390.c
gcc/config/s390/tpf.h
gcc/config/s390/tpf.md
gcc/config/s390/tpf.opt
gcc/doc/invoke.texi