summaryrefslogtreecommitdiff
path: root/sim/common
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-04-12 16:57:24 +0000
committerMike Frysinger <vapier@gentoo.org>2010-04-12 16:57:24 +0000
commitd691350337a747dc827c09a265859df1ac86e79b (patch)
treea2b1199fc312366c2c590792ef20469ad0c18f43 /sim/common
parent7bbdc114c3787e8be817374c9ca3fff4e6944413 (diff)
downloadgdb-d691350337a747dc827c09a265859df1ac86e79b.tar.gz
sim: add helper macros for branch profiling
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>
Diffstat (limited to 'sim/common')
-rw-r--r--sim/common/ChangeLog5
-rw-r--r--sim/common/sim-profile.h16
2 files changed, 21 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 4e0aaf0b7b8..71f4613ce94 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,10 @@
2010-04-12 Mike Frysinger <vapier@gentoo.org>
+ * sim-profile.h (PROFILE_BRANCH_TAKEN, PROFILE_BRANCH_UNTAKEN): New
+ defines.
+
+2010-04-12 Mike Frysinger <vapier@gentoo.org>
+
* dv-core.c (dv_core_descriptor): Add NULL initializer.
* dv-glue.c (hw_glue_ports, dv_glue_descriptor): Likewise.
* dv-pal.c (hw_pal_ports, dv_pal_descriptor): Likewise.
diff --git a/sim/common/sim-profile.h b/sim/common/sim-profile.h
index 315a79f140a..c35fe0c4f3c 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);