* [PATCH 4/4] sim: trace: centralize the system tracing
2015-06-11 15:58 [PATCH 1/4] sim: trace: create a common WITH_TRACE_P macro Mike Frysinger
2015-06-11 15:58 ` [PATCH 2/4] sim: trace: use existing defines for the useful mask Mike Frysinger
@ 2015-06-11 15:58 ` Mike Frysinger
2015-06-11 15:58 ` [PATCH 3/4] sim: trace: add STRACE_xxx_P macros Mike Frysinger
2 siblings, 0 replies; 4+ messages in thread
From: Mike Frysinger @ 2015-06-11 15:58 UTC (permalink / raw)
To: gdb-patches
First we convert the ETRACE_P to STRACE_EVENTS_P. This means we move from
using the sim_events.trace storage to the common sim_state_base.trace_data
array. With that deleted, the common trace init code can be simplified so
the sim state works the same as the sim cpu.
Committed.
---
sim/common/ChangeLog | 9 +++++++++
sim/common/sim-events.c | 9 +++------
sim/common/sim-events.h | 1 -
sim/common/sim-trace.c | 12 ++----------
4 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 35f08bb..a20f92d 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,14 @@
2015-06-11 Mike Frysinger <vapier@gentoo.org>
+ * sim-events.c (ETRACE_P): Delete.
+ (ETRACE): Change ETRACE_P to STRACE_EVENTS_P(sd).
+ (update_time_from_event, sim_events_schedule_vtracef): Likewise.
+ * sim-events.h (struct _sim_events): Delete trace member.
+ * sim-trace.c (set_trace_option_mask): Delete trace_nr check and
+ always set STATE_TRACE_FLAGS(sd)[trace_nr] element.
+
+2015-06-11 Mike Frysinger <vapier@gentoo.org>
+
* sim-trace.h (STRACE_ANY_P, STRACE_INSN_P, STRACE_DECODE_P,
STRACE_EXTRACT_P, STRACE_LINENUM_P, STRACE_MEMORY_P, STRACE_MODEL_P,
STRACE_ALU_P, STRACE_CORE_P, STRACE_EVENTS_P, STRACE_FPU_P,
diff --git a/sim/common/sim-events.c b/sim/common/sim-events.c
index d7ca0df..fc52575 100644
--- a/sim/common/sim-events.c
+++ b/sim/common/sim-events.c
@@ -140,14 +140,11 @@ struct _sim_event {
#define _ETRACE sd, NULL
-#undef ETRACE_P
-#define ETRACE_P (WITH_TRACE && STATE_EVENTS (sd)->trace)
-
#undef ETRACE
#define ETRACE(ARGS) \
do \
{ \
- if (ETRACE_P) \
+ if (STRACE_EVENTS_P (sd)) \
{ \
if (STRACE_DEBUG_P (sd)) \
{ \
@@ -409,7 +406,7 @@ update_time_from_event (SIM_DESC sd)
events->time_of_event = current_time - 1;
events->time_from_event = -1;
}
- if (ETRACE_P)
+ if (STRACE_EVENTS_P (sd))
{
sim_event *event;
int i;
@@ -521,7 +518,7 @@ sim_events_schedule_vtracef (SIM_DESC sd,
new_event->data = data;
new_event->handler = handler;
new_event->watching = watch_timer;
- if (fmt == NULL || !ETRACE_P || vasprintf (&new_event->trace, fmt, ap) < 0)
+ if (fmt == NULL || !STRACE_EVENTS_P (sd) || vasprintf (&new_event->trace, fmt, ap) < 0)
new_event->trace = NULL;
insert_sim_event (sd, new_event, delta_time);
ETRACE ((_ETRACE,
diff --git a/sim/common/sim-events.h b/sim/common/sim-events.h
index 9c56cab..6faa5cc 100644
--- a/sim/common/sim-events.h
+++ b/sim/common/sim-events.h
@@ -94,7 +94,6 @@ struct _sim_events {
SIM_ELAPSED_TIME resume_wallclock;
signed64 time_of_event;
signed64 time_from_event;
- int trace;
};
diff --git a/sim/common/sim-trace.c b/sim/common/sim-trace.c
index a706f1d..915965d 100644
--- a/sim/common/sim-trace.c
+++ b/sim/common/sim-trace.c
@@ -173,22 +173,14 @@ set_trace_option_mask (SIM_DESC sd, const char *name, int mask, const char *arg)
}
}
- /* update applicable trace bits */
+ /* Update applicable trace bits. */
for (trace_nr = 0; trace_nr < MAX_TRACE_VALUES; ++trace_nr)
{
if ((mask & (1 << trace_nr)) == 0)
continue;
/* Set non-cpu specific values. */
- switch (trace_nr)
- {
- case TRACE_EVENTS_IDX:
- STATE_EVENTS (sd)->trace = trace_val;
- break;
- case TRACE_DEBUG_IDX:
- STATE_TRACE_FLAGS (sd)[trace_nr] = trace_val;
- break;
- }
+ STATE_TRACE_FLAGS (sd)[trace_nr] = trace_val;
/* Set cpu values. */
for (cpu_nr = 0; cpu_nr < MAX_NR_PROCESSORS; cpu_nr++)
--
2.4.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/4] sim: trace: create a common WITH_TRACE_P macro
@ 2015-06-11 15:58 Mike Frysinger
2015-06-11 15:58 ` [PATCH 2/4] sim: trace: use existing defines for the useful mask Mike Frysinger
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mike Frysinger @ 2015-06-11 15:58 UTC (permalink / raw)
To: gdb-patches
This way we can use the IDX macros everywhere and not worry about the
encoding of the WITH_TRACE define in multiple places.
Committed.
---
sim/common/ChangeLog | 12 +++++++++++-
sim/common/sim-trace.h | 35 +++++++++++++++++------------------
2 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index b7d2f52..039c675 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,4 +1,14 @@
-2015-06-09 Mike Stump <mrs@mrs.kithrup.com> (obvious patch)
+2015-06-11 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-trace.h (WITH_TRACE_P): New define.
+ (WITH_TRACE_INSN_P, WITH_TRACE_DECODE_P, WITH_TRACE_EXTRACT_P,
+ WITH_TRACE_LINENUM_P, WITH_TRACE_MEMORY_P, WITH_TRACE_MODEL_P,
+ WITH_TRACE_ALU_P, WITH_TRACE_CORE_P, WITH_TRACE_EVENTS_P,
+ WITH_TRACE_FPU_P, WITH_TRACE_VPU_P, WITH_TRACE_BRANCH_P,
+ WITH_TRACE_SYSCALL_P, WITH_TRACE_DEBUG_P, STRACE_P, TRACE_P):
+ Redefine to use WITH_TRACE_P.
+
+2015-06-09 Mike Stump <mrs@mrs.kithrup.com>
* sim-events.c (sim_events_schedule_after_signal): Fix spelling
mistake in call to sim_engine_abort.
diff --git a/sim/common/sim-trace.h b/sim/common/sim-trace.h
index 3f78744..df995a6 100644
--- a/sim/common/sim-trace.h
+++ b/sim/common/sim-trace.h
@@ -111,20 +111,21 @@ enum {
#define TRACE_debug (1 << TRACE_DEBUG_IDX)
/* Preprocessor macros to simplify tests of WITH_TRACE. */
-#define WITH_TRACE_INSN_P (WITH_TRACE & TRACE_insn)
-#define WITH_TRACE_DECODE_P (WITH_TRACE & TRACE_decode)
-#define WITH_TRACE_EXTRACT_P (WITH_TRACE & TRACE_extract)
-#define WITH_TRACE_LINENUM_P (WITH_TRACE & TRACE_linenum)
-#define WITH_TRACE_MEMORY_P (WITH_TRACE & TRACE_memory)
-#define WITH_TRACE_MODEL_P (WITH_TRACE & TRACE_model)
-#define WITH_TRACE_ALU_P (WITH_TRACE & TRACE_alu)
-#define WITH_TRACE_CORE_P (WITH_TRACE & TRACE_core)
-#define WITH_TRACE_EVENTS_P (WITH_TRACE & TRACE_events)
-#define WITH_TRACE_FPU_P (WITH_TRACE & TRACE_fpu)
-#define WITH_TRACE_VPU_P (WITH_TRACE & TRACE_vpu)
-#define WITH_TRACE_BRANCH_P (WITH_TRACE & TRACE_branch)
-#define WITH_TRACE_SYSCALL_P (WITH_TRACE & TRACE_syscall)
-#define WITH_TRACE_DEBUG_P (WITH_TRACE & TRACE_debug)
+#define WITH_TRACE_P(idx) (WITH_TRACE & (1 << idx))
+#define WITH_TRACE_INSN_P WITH_TRACE_P (TRACE_INSN_IDX)
+#define WITH_TRACE_DECODE_P WITH_TRACE_P (TRACE_DECODE_IDX)
+#define WITH_TRACE_EXTRACT_P WITH_TRACE_P (TRACE_EXTRACT_IDX)
+#define WITH_TRACE_LINENUM_P WITH_TRACE_P (TRACE_LINENUM_IDX)
+#define WITH_TRACE_MEMORY_P WITH_TRACE_P (TRACE_MEMORY_IDX)
+#define WITH_TRACE_MODEL_P WITH_TRACE_P (TRACE_MODEL_IDX)
+#define WITH_TRACE_ALU_P WITH_TRACE_P (TRACE_ALU_IDX)
+#define WITH_TRACE_CORE_P WITH_TRACE_P (TRACE_CORE_IDX)
+#define WITH_TRACE_EVENTS_P WITH_TRACE_P (TRACE_EVENTS_IDX)
+#define WITH_TRACE_FPU_P WITH_TRACE_P (TRACE_FPU_IDX)
+#define WITH_TRACE_VPU_P WITH_TRACE_P (TRACE_VPU_IDX)
+#define WITH_TRACE_BRANCH_P WITH_TRACE_P (TRACE_BRANCH_IDX)
+#define WITH_TRACE_SYSCALL_P WITH_TRACE_P (TRACE_SYSCALL_IDX)
+#define WITH_TRACE_DEBUG_P WITH_TRACE_P (TRACE_DEBUG_IDX)
/* Tracing install handler. */
MODULE_INSTALL_FN trace_install;
@@ -192,8 +193,7 @@ typedef struct _trace_data {
/* Return non-zero if tracing of IDX is enabled for non-cpu specific
components. The "S" in "STRACE" refers to "System". */
#define STRACE_P(sd,idx) \
-((WITH_TRACE & (1 << (idx))) != 0 \
- && STATE_TRACE_FLAGS (sd)[idx] != 0)
+ (WITH_TRACE_P (idx) && STATE_TRACE_FLAGS (sd)[idx] != 0)
/* Non-zero if --trace-<xxxx> was specified for SD. */
#define STRACE_DEBUG_P(sd) STRACE_P (sd, TRACE_DEBUG_IDX)
@@ -204,8 +204,7 @@ typedef struct _trace_data {
/* Return non-zero if tracing of IDX is enabled for CPU. */
#define TRACE_P(cpu,idx) \
-((WITH_TRACE & (1 << (idx))) != 0 \
- && CPU_TRACE_FLAGS (cpu)[idx] != 0)
+ (WITH_TRACE_P (idx) && CPU_TRACE_FLAGS (cpu)[idx] != 0)
/* Non-zero if --trace-<xxxx> was specified for CPU. */
#define TRACE_ANY_P(cpu) ((WITH_TRACE) && (CPU_TRACE_DATA (cpu)->trace_any_p))
--
2.4.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/4] sim: trace: use existing defines for the useful mask
2015-06-11 15:58 [PATCH 1/4] sim: trace: create a common WITH_TRACE_P macro Mike Frysinger
@ 2015-06-11 15:58 ` Mike Frysinger
2015-06-11 15:58 ` [PATCH 4/4] sim: trace: centralize the system tracing Mike Frysinger
2015-06-11 15:58 ` [PATCH 3/4] sim: trace: add STRACE_xxx_P macros Mike Frysinger
2 siblings, 0 replies; 4+ messages in thread
From: Mike Frysinger @ 2015-06-11 15:58 UTC (permalink / raw)
To: gdb-patches
No point in duplicating the shift logic when we have macros already to
keep that all unified.
Committed.
---
sim/common/ChangeLog | 4 ++++
sim/common/sim-trace.h | 5 +----
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 039c675..586f58d 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,9 @@
2015-06-11 Mike Frysinger <vapier@gentoo.org>
+ * sim-trace.h (TRACE_USEFUL_MASK): Change to TRACE_xxx defines.
+
+2015-06-11 Mike Frysinger <vapier@gentoo.org>
+
* sim-trace.h (WITH_TRACE_P): New define.
(WITH_TRACE_INSN_P, WITH_TRACE_DECODE_P, WITH_TRACE_EXTRACT_P,
WITH_TRACE_LINENUM_P, WITH_TRACE_MEMORY_P, WITH_TRACE_MODEL_P,
diff --git a/sim/common/sim-trace.h b/sim/common/sim-trace.h
index df995a6..3d91aa9 100644
--- a/sim/common/sim-trace.h
+++ b/sim/common/sim-trace.h
@@ -87,10 +87,7 @@ enum {
splat on the screen everything under the sun making nothing easy to
find. */
#define TRACE_USEFUL_MASK \
-((1 << TRACE_INSN_IDX) \
- | (1 << TRACE_LINENUM_IDX) \
- | (1 << TRACE_MEMORY_IDX) \
- | (1 << TRACE_MODEL_IDX))
+ (TRACE_insn | TRACE_linenum | TRACE_memory | TRACE_model)
\f
/* Masks so WITH_TRACE can have symbolic values.
The case choice here is on purpose. The lowercase parts are args to
--
2.4.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 3/4] sim: trace: add STRACE_xxx_P macros
2015-06-11 15:58 [PATCH 1/4] sim: trace: create a common WITH_TRACE_P macro Mike Frysinger
2015-06-11 15:58 ` [PATCH 2/4] sim: trace: use existing defines for the useful mask Mike Frysinger
2015-06-11 15:58 ` [PATCH 4/4] sim: trace: centralize the system tracing Mike Frysinger
@ 2015-06-11 15:58 ` Mike Frysinger
2 siblings, 0 replies; 4+ messages in thread
From: Mike Frysinger @ 2015-06-11 15:58 UTC (permalink / raw)
To: gdb-patches
These are the parallel to the TRACE_xxx_P macros and fill out the full
set to match the existing debug one.
Committed.
---
sim/common/ChangeLog | 7 +++++++
sim/common/sim-trace.h | 14 ++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 586f58d..35f08bb 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,12 @@
2015-06-11 Mike Frysinger <vapier@gentoo.org>
+ * sim-trace.h (STRACE_ANY_P, STRACE_INSN_P, STRACE_DECODE_P,
+ STRACE_EXTRACT_P, STRACE_LINENUM_P, STRACE_MEMORY_P, STRACE_MODEL_P,
+ STRACE_ALU_P, STRACE_CORE_P, STRACE_EVENTS_P, STRACE_FPU_P,
+ STRACE_VPU_P, STRACE_BRANCH_P, STRACE_SYSCALL_P): Define.
+
+2015-06-11 Mike Frysinger <vapier@gentoo.org>
+
* sim-trace.h (TRACE_USEFUL_MASK): Change to TRACE_xxx defines.
2015-06-11 Mike Frysinger <vapier@gentoo.org>
diff --git a/sim/common/sim-trace.h b/sim/common/sim-trace.h
index 3d91aa9..5d6919a 100644
--- a/sim/common/sim-trace.h
+++ b/sim/common/sim-trace.h
@@ -193,6 +193,20 @@ typedef struct _trace_data {
(WITH_TRACE_P (idx) && STATE_TRACE_FLAGS (sd)[idx] != 0)
/* Non-zero if --trace-<xxxx> was specified for SD. */
+#define STRACE_ANY_P(sd) ((WITH_TRACE) && (STATE_TRACE_DATA (sd)->trace_any_p))
+#define STRACE_INSN_P(sd) STRACE_P (sd, TRACE_INSN_IDX)
+#define STRACE_DECODE_P(sd) STRACE_P (sd, TRACE_DECODE_IDX)
+#define STRACE_EXTRACT_P(sd) STRACE_P (sd, TRACE_EXTRACT_IDX)
+#define STRACE_LINENUM_P(sd) STRACE_P (sd, TRACE_LINENUM_IDX)
+#define STRACE_MEMORY_P(sd) STRACE_P (sd, TRACE_MEMORY_IDX)
+#define STRACE_MODEL_P(sd) STRACE_P (sd, TRACE_MODEL_IDX)
+#define STRACE_ALU_P(sd) STRACE_P (sd, TRACE_ALU_IDX)
+#define STRACE_CORE_P(sd) STRACE_P (sd, TRACE_CORE_IDX)
+#define STRACE_EVENTS_P(sd) STRACE_P (sd, TRACE_EVENTS_IDX)
+#define STRACE_FPU_P(sd) STRACE_P (sd, TRACE_FPU_IDX)
+#define STRACE_VPU_P(sd) STRACE_P (sd, TRACE_VPU_IDX)
+#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)
\f
/* CPU tracing support. */
--
2.4.1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-06-11 15:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-11 15:58 [PATCH 1/4] sim: trace: create a common WITH_TRACE_P macro Mike Frysinger
2015-06-11 15:58 ` [PATCH 2/4] sim: trace: use existing defines for the useful mask Mike Frysinger
2015-06-11 15:58 ` [PATCH 4/4] sim: trace: centralize the system tracing Mike Frysinger
2015-06-11 15:58 ` [PATCH 3/4] sim: trace: add STRACE_xxx_P macros Mike Frysinger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).