From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LB9ew-0007m4-Gp for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:32 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LB9er-0007gk-JN for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:27 -0500 Received: from [199.232.76.173] (port=50398 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LB9ep-0007ej-A7 for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:23 -0500 Received: from mx2.redhat.com ([66.187.237.31]:33026) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LB9eo-0001fY-Na for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:23 -0500 From: Eduardo Habkost Date: Fri, 12 Dec 2008 13:09:03 -0200 Message-Id: <1229094550-2022-25-git-send-email-ehabkost@redhat.com> In-Reply-To: <1229094550-2022-1-git-send-email-ehabkost@redhat.com> References: <1229094550-2022-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH 24/31] target-ppc/helper.c: LOG_EXCP macro 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: Eduardo Habkost Create a LOG_EXCP macro and use it instead of #ifdef DEBUG_EXCEPTIONS. Signed-off-by: Eduardo Habkost --- target-ppc/helper.c | 49 +++++++++++++++++-------------------------------- 1 files changed, 17 insertions(+), 32 deletions(-) diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 9c095e4..30c006b 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -75,6 +75,16 @@ # define LOG_SLB(...) do { } while (0) #endif +#ifdef DEBUG_EXCEPTIONS +# define LOG_EXCP(...) do { \ + if (loglevel) \ + fprintf(logfile, ## __VA_ARGS__); \ + } while (0) +#else +# define LOG_EXCP(...) do { } while (0) +#endif + + /*****************************************************************************/ /* PowerPC MMU emulation */ @@ -2104,23 +2114,15 @@ static always_inline void powerpc_excp (CPUState *env, } goto store_next; case POWERPC_EXCP_DSI: /* Data storage exception */ -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) { - fprintf(logfile, "DSI exception: DSISR=" ADDRX" DAR=" ADDRX "\n", + LOG_EXCP("DSI exception: DSISR=" ADDRX" DAR=" ADDRX "\n", env->spr[SPR_DSISR], env->spr[SPR_DAR]); - } -#endif new_msr &= ~((target_ulong)1 << MSR_RI); if (lpes1 == 0) new_msr |= (target_ulong)MSR_HVB; goto store_next; case POWERPC_EXCP_ISI: /* Instruction storage exception */ -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) { - fprintf(logfile, "ISI exception: msr=" ADDRX ", nip=" ADDRX "\n", + LOG_EXCP("ISI exception: msr=" ADDRX ", nip=" ADDRX "\n", msr, env->nip); - } -#endif new_msr &= ~((target_ulong)1 << MSR_RI); if (lpes1 == 0) new_msr |= (target_ulong)MSR_HVB; @@ -2143,11 +2145,7 @@ static always_inline void powerpc_excp (CPUState *env, switch (env->error_code & ~0xF) { case POWERPC_EXCP_FP: if ((msr_fe0 == 0 && msr_fe1 == 0) || msr_fp == 0) { -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) { - fprintf(logfile, "Ignore floating point exception\n"); - } -#endif + LOG_EXCP("Ignore floating point exception\n"); env->exception_index = POWERPC_EXCP_NONE; env->error_code = 0; return; @@ -2161,12 +2159,8 @@ static always_inline void powerpc_excp (CPUState *env, msr |= 0x00010000; break; case POWERPC_EXCP_INVAL: -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) { - fprintf(logfile, "Invalid instruction at " ADDRX "\n", + LOG_EXCP("Invalid instruction at " ADDRX "\n", env->nip); - } -#endif new_msr &= ~((target_ulong)1 << MSR_RI); if (lpes1 == 0) new_msr |= (target_ulong)MSR_HVB; @@ -2226,17 +2220,11 @@ static always_inline void powerpc_excp (CPUState *env, goto store_next; case POWERPC_EXCP_FIT: /* Fixed-interval timer interrupt */ /* FIT on 4xx */ -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) - fprintf(logfile, "FIT exception\n"); -#endif + LOG_EXCP("FIT exception\n"); new_msr &= ~((target_ulong)1 << MSR_RI); /* XXX: check this */ goto store_next; case POWERPC_EXCP_WDT: /* Watchdog timer interrupt */ -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) - fprintf(logfile, "WDT exception\n"); -#endif + LOG_EXCP("WDT exception\n"); switch (excp_model) { case POWERPC_EXCP_BOOKE: srr0 = SPR_BOOKE_CSRR0; @@ -2357,10 +2345,7 @@ static always_inline void powerpc_excp (CPUState *env, new_msr |= (target_ulong)MSR_HVB; goto store_current; case POWERPC_EXCP_PIT: /* Programmable interval timer interrupt */ -#if defined (DEBUG_EXCEPTIONS) - if (loglevel != 0) - fprintf(logfile, "PIT exception\n"); -#endif + LOG_EXCP("PIT exception\n"); new_msr &= ~((target_ulong)1 << MSR_RI); /* XXX: check this */ goto store_next; case POWERPC_EXCP_IO: /* IO error exception */ -- 1.5.5.GIT