sim: trace: add set of system helpers
authorMike Frysinger <vapier@gentoo.org>
Tue, 23 Jun 2015 19:15:16 +0000 (01:00 +0545)
committerMike Frysinger <vapier@gentoo.org>
Wed, 24 Jun 2015 14:40:17 +0000 (10:40 -0400)
Some code paths trace on a system instance and not a cpu instance (like
the events code), so add some helpers for those cases.

sim/common/ChangeLog
sim/common/sim-trace.h

index 21a3fe31f45d4633a6a0b9c1ca1b78cfd4a4309a..63978bf64100261a63a9f5aeb6fbed5784985eab 100644 (file)
@@ -1,3 +1,10 @@
+2015-06-24  Mike Frysinger  <vapier@gentoo.org>
+
+       * sim-trace.h (STRACE, STRACE_INSN, STRACE_DECODE, STRACE_EXTRACT,
+       STRACE_LINENUM, STRACE_MEMORY, STRACE_MODEL, STRACE_ALU, STRACE_CORE,
+       STRACE_EVENTS, STRACE_FPU, STRACE_VPU, STRACE_BRANCH, STRACE_SYSCALL,
+       STRACE_DEBUG): Define.
+
 2015-06-24  Mike Frysinger  <vapier@gentoo.org>
 
        * sim-trace.c (trace_options): Update help text for trace-alu,
index 0fa44fff2a367e886f0fae056c1ab55e48465972..4ef2584151c4c7ee3597a7d4d37ad1b58af97ee2 100644 (file)
@@ -211,6 +211,27 @@ typedef struct _trace_data {
 #define STRACE_BRANCH_P(sd)    STRACE_P (sd, TRACE_BRANCH_IDX)
 #define STRACE_SYSCALL_P(sd)   STRACE_P (sd, TRACE_SYSCALL_IDX)
 #define STRACE_DEBUG_P(sd)     STRACE_P (sd, TRACE_DEBUG_IDX)
+
+/* Helper functions for printing messages.  */
+#define STRACE(sd, idx, fmt, args...) \
+  do { \
+    if (STRACE_P (sd, idx)) \
+      trace_generic (sd, NULL, idx, fmt, ## args); \
+  } while (0)
+#define STRACE_INSN(sd, fmt, args...)          STRACE (sd, TRACE_INSN_IDX, fmt, ## args)
+#define STRACE_DECODE(sd, fmt, args...)                STRACE (sd, TRACE_DECODE_IDX, fmt, ## args)
+#define STRACE_EXTRACT(sd, fmt, args...)       STRACE (sd, TRACE_EXTRACT_IDX, fmt, ## args)
+#define STRACE_LINENUM(sd, fmt, args...)       STRACE (sd, TRACE_LINENUM_IDX, fmt, ## args)
+#define STRACE_MEMORY(sd, fmt, args...)                STRACE (sd, TRACE_MEMORY_IDX, fmt, ## args)
+#define STRACE_MODEL(sd, fmt, args...)         STRACE (sd, TRACE_MODEL_IDX, fmt, ## args)
+#define STRACE_ALU(sd, fmt, args...)           STRACE (sd, TRACE_ALU_IDX, fmt, ## args)
+#define STRACE_CORE(sd, fmt, args...)          STRACE (sd, TRACE_CORE_IDX, fmt, ## args)
+#define STRACE_EVENTS(sd, fmt, args...)                STRACE (sd, TRACE_EVENTS_IDX, fmt, ## args)
+#define STRACE_FPU(sd, fmt, args...)           STRACE (sd, TRACE_FPU_IDX, fmt, ## args)
+#define STRACE_VPU(sd, fmt, args...)           STRACE (sd, TRACE_VPU_IDX, fmt, ## args)
+#define STRACE_BRANCH(sd, fmt, args...)                STRACE (sd, TRACE_BRANCH_IDX, fmt, ## args)
+#define STRACE_SYSCALL(sd, fmt, args...)       STRACE (sd, TRACE_SYSCALL_IDX, fmt, ## args)
+#define STRACE_DEBUG(sd, fmt, args...)         STRACE (sd, TRACE_DEBUG_IDX, fmt, ## args)
 \f
 /* CPU tracing support.  */