[PATCH] sim: add helper macros for branch profiling

Mike Frysinger
2010-04-10T18:58:10Z

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