From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:49160) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZ6r9-00080k-Hb for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RZ6r7-0003HB-Vu for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:43 -0500 Received: from gw.ac.upc.edu ([147.83.30.3]:40201) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZ6r7-0003Gy-I1 for qemu-devel@nongnu.org; Fri, 09 Dec 2011 15:15:41 -0500 Received: from localhost (unknown [84.88.53.92]) by gw.ac.upc.edu (Postfix) with ESMTP id 5B7BD6B01CA for ; Fri, 9 Dec 2011 21:15:40 +0100 (CET) From: =?utf-8?b?TGx1w61z?= Vilanova Date: Fri, 09 Dec 2011 21:15:33 +0100 Message-ID: <20111209201532.11487.62125.stgit@ginnungagap.bsc.es> In-Reply-To: <20111209201430.11487.82078.stgit@ginnungagap.bsc.es> References: <20111209201430.11487.82078.stgit@ginnungagap.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 4/7] trace: [all] Add "vbbl" TCG tracing event List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Signed-off-by: Llu=C3=ADs Vilanova --- 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(C= PUState *env, max_insns =3D CF_COUNT_MASK; =20 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(C= PUState *env, max_insns =3D CF_COUNT_MASK; =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); =20 tcg_clear_temp_count(); =20 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, Trans= lationBlock *tb, max_insns =3D CF_COUNT_MASK; =20 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(C= PUState *env, max_insns =3D CF_COUNT_MASK; =20 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, } =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { check_breakpoint(env, dc); =20 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, Trans= lationBlock *tb, max_insns =3D CF_COUNT_MASK; =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); do { pc_offset =3D dc->pc - pc_start; gen_throws_exception =3D 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, Trans= lationBlock *tb, max_insns =3D CF_COUNT_MASK; =20 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, Tr= anslationBlock *tb, max_insns =3D CF_COUNT_MASK; LOG_DISAS("\ntb %p idx %d hflags %04x\n", tb, ctx.mem_idx, ctx.hflag= s); gen_icount_start(); + gen_helper_trace_vbbl(pc_start); while (ctx.bstate =3D=3D 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(C= PUState *env, max_insns =3D CF_COUNT_MASK; =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); /* Set env in case of segfault during code fetch */ while (ctx.exception =3D=3D POWERPC_EXCP_NONE && gen_opc_ptr < gen_o= pc_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(C= PUState *env, } =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); =20 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, Tran= slationBlock * tb, if (max_insns =3D=3D 0) max_insns =3D CF_COUNT_MASK; gen_icount_start(); + gen_helper_trace_vbbl(pc_start); while (ctx.bstate =3D=3D 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(T= ranslationBlock * tb, if (max_insns =3D=3D 0) max_insns =3D 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(C= PUState *env, } =20 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); =20 gen_icount_start(); + gen_helper_trace_vbbl(pc_start); =20 if (env->singlestep_enabled && env->exception_taken) { env->exception_taken =3D 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=3D%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=3D0x%016"PRIx64