From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K1MEW-0002Dl-JL for qemu-devel@nongnu.org; Wed, 28 May 2008 10:02:28 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K1MEU-0002Cz-BE for qemu-devel@nongnu.org; Wed, 28 May 2008 10:02:27 -0400 Received: from [199.232.76.173] (port=55763 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K1MEU-0002Cv-7C for qemu-devel@nongnu.org; Wed, 28 May 2008 10:02:26 -0400 Received: from mx1.redhat.com ([66.187.233.31]:33219) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1K1MEU-0001dp-5G for qemu-devel@nongnu.org; Wed, 28 May 2008 10:02:26 -0400 From: Glauber Costa Date: Wed, 28 May 2008 11:01:36 -0300 Message-Id: <1211983296-27395-7-git-send-email-gcosta@redhat.com> In-Reply-To: <1211983296-27395-6-git-send-email-gcosta@redhat.com> References: <1211983296-27395-1-git-send-email-gcosta@redhat.com> <1211983296-27395-2-git-send-email-gcosta@redhat.com> <1211983296-27395-3-git-send-email-gcosta@redhat.com> <1211983296-27395-4-git-send-email-gcosta@redhat.com> <1211983296-27395-5-git-send-email-gcosta@redhat.com> <1211983296-27395-6-git-send-email-gcosta@redhat.com> Subject: [Qemu-devel] [PATCH 6/6] cpu-exec-dump Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kvm@vger.kernel.org enclose the cpu dumping logic in cpu_exec() inside cpu_exec_dump() --- cpu-exec.c | 29 ++--------------------------- exec-all.h | 4 ++++ target-i386/exec.h | 2 ++ target-i386/helper.c | 6 ++++++ 4 files changed, 14 insertions(+), 27 deletions(-) diff --git a/cpu-exec.c b/cpu-exec.c index 46b0eb8..52d74f7 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -369,33 +369,8 @@ int cpu_exec(CPUState *env1) if ((loglevel & CPU_LOG_TB_CPU)) { /* restore flags in standard format */ regs_to_env(); -#if defined(TARGET_I386) - env->eflags = env->eflags | cc_table[CC_OP].compute_all() | (DF & DF_MASK); - cpu_dump_state(env, logfile, fprintf, X86_DUMP_CCOP); - env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); -#elif defined(TARGET_ARM) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_SPARC) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_PPC) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_M68K) - cpu_m68k_flush_flags(env, env->cc_op); - env->cc_op = CC_OP_FLAGS; - env->sr = (env->sr & 0xffe0) - | env->cc_dest | (env->cc_x << 4); - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_MIPS) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_SH4) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_ALPHA) - cpu_dump_state(env, logfile, fprintf, 0); -#elif defined(TARGET_CRIS) - cpu_dump_state(env, logfile, fprintf, 0); -#else -#error unsupported target CPU -#endif + cpu_save_flags(env); + cpu_exec_dump(env); } #endif tb = tb_find_fast(); diff --git a/exec-all.h b/exec-all.h index b9a9348..97b9f10 100644 --- a/exec-all.h +++ b/exec-all.h @@ -96,6 +96,10 @@ void cpu_exec_init(CPUState *env); #define cpu_info_ip(env, buf) (0) #endif +#ifndef cpu_exec_dump +#define cpu_exec_dump(env) cpu_dump_state(env, logfile, fprintf, 0) +#endif + /* implemented by the targets */ void cpu_handle_interrupt_request(CPUState *env); /* implemented by cpu-exec.c */ diff --git a/target-i386/exec.h b/target-i386/exec.h index 2c96914..ee36f5e 100644 --- a/target-i386/exec.h +++ b/target-i386/exec.h @@ -48,6 +48,8 @@ do { #define cpu_info_ip x86_cpu_info_ip +#define cpu_exec_dump x86_cpu_exec_dump + extern FILE *logfile; extern int loglevel; diff --git a/target-i386/helper.c b/target-i386/helper.c index 5e83efd..b10ebb8 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -4798,6 +4798,12 @@ int x86_cpu_info_ip(CPUState *env, char *buf) return 1; } +void x86_cpu_exec_dump(CPUState *env) +{ + cpu_dump_state(env, logfile, fprintf, X86_DUMP_CCOP); + env->eflags &= ~(DF_MASK | CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C); +} + #if defined(CONFIG_USER_ONLY) void helper_vmrun(void) -- 1.5.4.5