Adds the basic ability to specify which events in the "trace-events" may be used to trace guest activity in the TCG code.
Such events generate an extra set of tracing functions that can be called during TCG code generation and will automatically redirect a call to the appropriate backend-dependant tracing functions when the guest code is executed. The extra routines and files generated by tracetool are: * trace-tcg-helper.h Included on all "${target}/helper.h" headers. Declares a 'trace_${name}_proxy' TCG helper using the 'DEF_HELPER_*' macros for each TCG-aware event. Defines a 'gen_helper_trace_${name}' that ends up calling 'gen_helper_trace_${name}_proxy'. In order to provide a more streamlined interface, this routine can take a mix of tracing-supported types and TCG types. In order to do this, it automatically casts the arguments and allocates them into the appropriate TCG types, calls 'gen_helper_trace_${name}_proxy' and frees the temporary TCG values it has allocated. * trace-tcg-helper.c Defines a 'trace_${name}_proxy' TCG helper for each TCG-aware event. This helper will immediately call 'trace_${name}' with all the necessary argument type casts to match the signature of the callee. NOTE: This patch series has been stripped out of all trace instrumentation features, and is thus applicable on top of QEMU 1.0 Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> --- Lluís Vilanova (10): trace: [doc] Document event properties on a separate section trace-tcg: Add documentation Trivial changes to eliminate auto-generated files [m68k,s390,xtensa] Move helpers.h to helper.h trace: [tracetool] Common functions to manage event arguments trace: [tracetool] Add 'get_api_name' to construct the name of tracing routines trace-tcg: [tracetool] Allow TCG types in trace event declarations trace-tcg: [tracetool] Declare TCG tracing helper routines trace-tcg: [tracetool] Define TCG tracing helper routines trace-tcg: [all] Include TCG-tracing helpers .gitignore | 2 Makefile | 11 + Makefile.objs | 17 ++ Makefile.target | 2 def-helper.h | 9 + docs/tracing.txt | 62 +++++- scripts/simpletrace.py | 2 scripts/tracetool | 449 +++++++++++++++++++++++++++++++++++++++++--- target-alpha/helper.h | 2 target-arm/helper.h | 2 target-cris/helper.h | 2 target-i386/helper.h | 2 target-lm32/helper.h | 2 target-m68k/helper.c | 2 target-m68k/helper.h | 56 +++++ target-m68k/helpers.h | 54 ----- target-m68k/op_helper.c | 2 target-m68k/translate.c | 6 - target-microblaze/helper.h | 2 target-mips/helper.h | 2 target-ppc/helper.h | 2 target-s390x/helper.h | 154 +++++++++++++++ target-s390x/helpers.h | 152 --------------- target-s390x/op_helper.c | 2 target-s390x/translate.c | 4 target-sh4/helper.h | 2 target-sparc/helper.h | 2 target-unicore32/helper.h | 2 target-xtensa/helper.h | 34 +++ target-xtensa/helpers.h | 32 --- target-xtensa/op_helper.c | 2 target-xtensa/translate.c | 6 - xtensa-semi.c | 2 33 files changed, 796 insertions(+), 288 deletions(-) create mode 100644 target-m68k/helper.h delete mode 100644 target-m68k/helpers.h create mode 100644 target-s390x/helper.h delete mode 100644 target-s390x/helpers.h create mode 100644 target-xtensa/helper.h delete mode 100644 target-xtensa/helpers.h