sim: add helper macros for branch profiling
authorMike Frysinger <vapier@gentoo.org>
Mon, 12 Apr 2010 16:57:24 +0000 (16:57 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 12 Apr 2010 16:57:24 +0000 (16:57 +0000)
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>
sim/common/ChangeLog
sim/common/sim-profile.h

index 4e0aaf0b7b872f6efab0362347111d89d346df3b..71f4613ce9414e36b3bdc975d69eb03d9d937cbb 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 315a79f140a5a82877cd70e38d48468521fd5602..c35fe0c4f3c47f71397f2f89adf87f40b4d4c572 100644 (file)
@@ -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);