Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] sim: add helper macros for branch profiling
@ 2010-04-10 18:58 Mike Frysinger
  2010-04-12 14:54 ` Joel Brobecker
  0 siblings, 1 reply; 4+ messages in thread
From: Mike Frysinger @ 2010-04-10 18:58 UTC (permalink / raw)
  To: gdb-patches

The profile code has a lot of helper macros already, but none yet for the
branch profiling code.  So add ones for the basic functions -- taken and
untaken branches.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
2010-04-10  Mike Frysinger  <vapier@gentoo.org>

	* sim-profile.h (PROFILE_BRANCH_TAKEN, PROFILE_BRANCH_UNTAKEN): New
	defines.

 sim/common/sim-profile.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/sim/common/sim-profile.h b/sim/common/sim-profile.h
index 315a79f..c35fe0c 100644
--- a/sim/common/sim-profile.h
+++ b/sim/common/sim-profile.h
@@ -290,6 +290,22 @@ do { \
 #define PROFILE_COUNT_CORE(cpu, addr, size, map)
 #endif /* ! core */
 
+#if WITH_PROFILE_MODEL_P
+#define PROFILE_BRANCH_TAKEN(cpu) \
+do { \
+  if (PROFILE_MODEL_P (cpu)) \
+    ++ PROFILE_MODEL_TAKEN_COUNT (CPU_PROFILE_DATA (cpu)); \
+} while (0)
+#define PROFILE_BRANCH_UNTAKEN(cpu) \
+do { \
+  if (PROFILE_MODEL_P (cpu)) \
+    ++ PROFILE_MODEL_UNTAKEN_COUNT (CPU_PROFILE_DATA (cpu)); \
+} while (0)
+#else
+#define PROFILE_BRANCH_TAKEN(cpu)
+#define PROFILE_BRANCH_UNTAKEN(cpu)
+#endif /* ! model */
+
 /* Misc. utilities.  */
 
 extern void sim_profile_print_bar (SIM_DESC, unsigned int, unsigned int, unsigned int);
-- 
1.7.0.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-04-12 16:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-10 18:58 [PATCH] sim: add helper macros for branch profiling Mike Frysinger
2010-04-12 14:54 ` Joel Brobecker
2010-04-12 16:02   ` Mike Frysinger
2010-04-12 16:09     ` Joel Brobecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox