qemu-devel
[Top][All Lists]
Advanced

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

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


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

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

diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 5efc605..375cfa4 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -3396,6 +3396,8 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(ctx.pc);
         }
 
+        gen_helper_trace_vfetch(ctx.pc);
+
         insn = ldl_code(ctx.pc);
         num_insns++;
 
diff --git a/target-arm/translate.c b/target-arm/translate.c
index b0b36f3..d0b386a 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -9972,6 +9972,8 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         if (dc->thumb) {
             disas_thumb_insn(env, dc);
             if (dc->condexec_mask) {
diff --git a/target-cris/translate.c b/target-cris/translate.c
index f6bebea..4abd1d7 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -3294,6 +3294,8 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
 
                 dc->clear_x = 1;
 
+                gen_helper_trace_vfetch(dc->pc);
+
                 insn_len = dc->decoder(dc);
 
                dc->ppc = dc->pc;
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 9818ebb..9ae8c34 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -7824,6 +7824,8 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(pc_ptr);
         }
 
+        gen_helper_trace_vfetch(pc_ptr);
+
         pc_ptr = disas_insn(dc, pc_ptr);
         num_insns++;
         /* stop translation if indicated */
diff --git a/target-lm32/translate.c b/target-lm32/translate.c
index c0d9195..f57bd70 100644
--- a/target-lm32/translate.c
+++ b/target-lm32/translate.c
@@ -1076,6 +1076,8 @@ static void gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         decode(dc);
         dc->pc += 4;
         num_insns++;
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 5e735f3..ce92a7f 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -3022,6 +3022,8 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         dc->insn_pc = dc->pc;
         disas_m68k_insn(env, dc);
         num_insns++;
diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
index a1a9ce6..53b6e73 100644
--- a/target-microblaze/translate.c
+++ b/target-microblaze/translate.c
@@ -1687,6 +1687,8 @@ gen_intermediate_code_internal(CPUState *env, 
TranslationBlock *tb,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         dc->clear_imm = 1;
        decode(dc);
         if (dc->clear_imm)
diff --git a/target-mips/translate.c b/target-mips/translate.c
index 6f67b36..3318e88 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -12445,6 +12445,8 @@ gen_intermediate_code_internal (CPUState *env, 
TranslationBlock *tb,
             tcg_gen_debug_insn_start(ctx.pc);
         }
 
+        gen_helper_trace_vfetch(ctx.pc);
+
         is_branch = 0;
         if (!(ctx.hflags & MIPS_HFLAG_M16)) {
             ctx.opcode = ldl_code(ctx.pc);
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index c515ea4..8d898d0 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -9494,6 +9494,8 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(ctx.nip);
         }
 
+        gen_helper_trace_vfetch(ctx.nip);
+
         if (unlikely(ctx.le_mode)) {
             ctx.opcode = bswap32(ldl_code(ctx.nip));
         } else {
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index f0b877e..a8ac111 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -5182,6 +5182,9 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
         LOG_DISAS("pc " TARGET_FMT_lx "\n",
                   dc.pc);
 #endif
+
+        gen_helper_trace_vfetch(dc.pc);
+
         disas_s390_insn(&dc);
 
         num_insns++;
diff --git a/target-sh4/translate.c b/target-sh4/translate.c
index 6c1872c..00cbe28 100644
--- a/target-sh4/translate.c
+++ b/target-sh4/translate.c
@@ -1999,6 +1999,8 @@ gen_intermediate_code_internal(CPUState * env, 
TranslationBlock * tb,
        fprintf(stderr, "Loading opcode at address 0x%08x\n", ctx.pc);
        fflush(stderr);
 #endif
+        gen_helper_trace_vfetch(ctx.pc);
+
        ctx.opcode = lduw_code(ctx.pc);
        decode_opc(&ctx);
         num_insns++;
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 5c7cca0..cdd7dbd 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -5299,6 +5299,8 @@ static inline void 
gen_intermediate_code_internal(TranslationBlock * tb,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         last_pc = dc->pc;
         disas_sparc_insn(dc);
         num_insns++;
diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c
index 74172ea..33a201b 100644
--- a/target-unicore32/translate.c
+++ b/target-unicore32/translate.c
@@ -1924,6 +1924,8 @@ static inline void 
gen_intermediate_code_internal(CPUState *env,
             tcg_gen_debug_insn_start(dc->pc);
         }
 
+        gen_helper_trace_vfetch(dc->pc);
+
         disas_uc32_insn(env, dc);
 
         if (num_temps) {
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 96db089..c020ffa 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -2467,6 +2467,8 @@ static void gen_intermediate_code_internal(
             tcg_gen_debug_insn_start(dc.pc);
         }
 
+        gen_helper_trace_vfetch(dc.pc);
+
         disas_xtensa_insn(&dc);
         ++insn_count;
         if (env->singlestep_enabled) {
diff --git a/trace-events b/trace-events
index 6dac6ae..9b315c5 100644
--- a/trace-events
+++ b/trace-events
@@ -653,3 +653,10 @@ vcpu_reset(void *vcpu) "%p"
 #
 # vaddr : starting virtual address
 disable tcg vbbl(uint64_t vaddr) "vaddr=0x%016"PRIx64
+
+# Start instruction execution
+#
+# Targets: all
+#
+# vaddr : instruction's virtual address
+disable tcg vfetch(uint64_t vaddr) "vaddr=0x%016"PRIx64




reply via email to

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