qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 4/7] trace: [all] Add "vbbl" TCG tracing event


From: Lluís Vilanova
Subject: [Qemu-devel] [PATCH 4/7] trace: [all] Add "vbbl" TCG tracing event
Date: Fri, 09 Dec 2011 21:15:33 +0100
User-agent: StGit/0.15

Signed-off-by: Lluís Vilanova <address@hidden>
---
 target-alpha/translate.c      |    1 +
 target-arm/translate.c        |    1 +
 target-cris/translate.c       |    1 +
 target-i386/translate.c       |    1 +
 target-lm32/translate.c       |    1 +
 target-m68k/translate.c       |    1 +
 target-microblaze/translate.c |    1 +
 target-mips/translate.c       |    1 +
 target-ppc/translate.c        |    1 +
 target-s390x/translate.c      |    1 +
 target-sh4/translate.c        |    1 +
 target-sparc/translate.c      |    1 +
 target-unicore32/translate.c  |    1 +
 target-xtensa/translate.c     |    1 +
 trace-events                  |   13 +++++++++++++
 15 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index a961159..18f5428 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -3368,6 +3368,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 0f35b60..b0b36f3 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -9877,6 +9877,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
 
     tcg_clear_temp_count();
 
diff --git a/target-cris/translate.c b/target-cris/translate.c
index a871e7f..cac22c9 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -3266,6 +3266,7 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
             max_insns = CF_COUNT_MASK;
 
         gen_icount_start();
+        gen_helper_trace_vbbl(pc_start);
        do
        {
                check_breakpoint(env, dc);
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 1ef8d16..7192ce9 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -7797,6 +7797,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     for(;;) {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-lm32/translate.c b/target-lm32/translate.c
index 0be105d..2535fb7 100644
--- a/target-lm32/translate.c
+++ b/target-lm32/translate.c
@@ -1053,6 +1053,7 @@ static void gen_intermediate_code_internal(CPUState *env,
     }
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do {
         check_breakpoint(env, dc);
 
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index fe750e2..9cb8139 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2990,6 +2990,7 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do {
         pc_offset = dc->pc - pc_start;
         gen_throws_exception = NULL;
diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
index f976311..6b6a593 100644
--- a/target-microblaze/translate.c
+++ b/target-microblaze/translate.c
@@ -1658,6 +1658,7 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do
     {
 #if SIM_COMPAT
diff --git a/target-mips/translate.c b/target-mips/translate.c
index 73c4c5e..0076058 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -12414,6 +12414,7 @@ gen_intermediate_code_internal (CPUState *env, 
TranslationBlock *tb,
         max_insns = CF_COUNT_MASK;
     LOG_DISAS("\ntb %p idx %d hflags %04x\n", tb, ctx.mem_idx, ctx.hflags);
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     while (ctx.bstate == BS_NONE) {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 66eae30..af78360 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -9463,6 +9463,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
         max_insns = CF_COUNT_MASK;
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     /* Set env in case of segfault during code fetch */
     while (ctx.exception == POWERPC_EXCP_NONE && gen_opc_ptr < gen_opc_end) {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index 9fef77c..c2a04a5 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -5147,6 +5147,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
     }
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
 
     do {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
diff --git a/target-sh4/translate.c b/target-sh4/translate.c
index 2487451..d75c065 100644
--- a/target-sh4/translate.c
+++ b/target-sh4/translate.c
@@ -1968,6 +1968,7 @@ gen_intermediate_code_internal(CPUState * env, 
TranslationBlock * tb,
     if (max_insns == 0)
         max_insns = CF_COUNT_MASK;
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     while (ctx.bstate == BS_NONE && gen_opc_ptr < gen_opc_end) {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index d261112..415d996 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -5268,6 +5268,7 @@ static inline void 
gen_intermediate_code_internal(TranslationBlock * tb,
     if (max_insns == 0)
         max_insns = CF_COUNT_MASK;
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c
index 4d0aa43..8edca98 100644
--- a/target-unicore32/translate.c
+++ b/target-unicore32/translate.c
@@ -1888,6 +1888,7 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
     }
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
     do {
         if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) {
             QTAILQ_FOREACH(bp, &env->breakpoints, entry) {
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 8b9d9ed..3f741ac 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -2434,6 +2434,7 @@ static void gen_intermediate_code_internal(
     reset_used_window(&dc);
 
     gen_icount_start();
+    gen_helper_trace_vbbl(pc_start);
 
     if (env->singlestep_enabled && env->exception_taken) {
         env->exception_taken = 0;
diff --git a/trace-events b/trace-events
index 8278959..6dac6ae 100644
--- a/trace-events
+++ b/trace-events
@@ -640,3 +640,16 @@ win_helper_retry(uint32_t tl) "tl=%d"
 vcpu_init(void *vcpu) "%p"
 # Reset the state of a vCPU
 vcpu_reset(void *vcpu) "%p"
+
+
+## Guest events
+
+# Start BBL execution
+#
+# Note: QEMU's basic blocks do not necessarily finish in a control flow
+#       instruction.
+#
+# Targets: all
+#
+# vaddr : starting virtual address
+disable tcg vbbl(uint64_t vaddr) "vaddr=0x%016"PRIx64




reply via email to

[Prev in Thread] Current Thread [Next in Thread]