[Top][All Lists]
[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
- [Qemu-devel] [PATCH 0/7] trace: Add some simple TCG tracing events, Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 1/7] Make 'qemu_init_vcpu' a function (instead of a macro), Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 2/7] trace: Add "vcpu_init" event, Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 3/7] trace: Add "vcpu_reset" event, Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 4/7] trace: [all] Add "vbbl" TCG tracing event,
Lluís Vilanova <=
- [Qemu-devel] [PATCH 5/7] [all] Trivial 'tcg_gen_debug_insn_start' unification in 'gen_intermediate_code_internal', Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 6/7] trace: [all] Add "vfetch" TCG tracing event, Lluís Vilanova, 2011/12/09
- [Qemu-devel] [PATCH 7/7] trace: [all] Add "vmem" TCG tracing event, Lluís Vilanova, 2011/12/09