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-0007nd-Gj 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-0007gr-58 for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:26 -0500 Received: from [199.232.76.173] (port=50399 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LB9ep-0007el-B1 for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:23 -0500 Received: from mx2.redhat.com ([66.187.237.31]:33027) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LB9eo-0001fb-OU for qemu-devel@nongnu.org; Fri, 12 Dec 2008 10:10:23 -0500 From: Eduardo Habkost Date: Fri, 12 Dec 2008 13:09:01 -0200 Message-Id: <1229094550-2022-23-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 22/31] target-ppc/helper.c: LOG_BATS 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_BATS macro and use it instead of #ifdef DEBUG_BATS. Signed-off-by: Eduardo Habkost --- target-ppc/helper.c | 54 ++++++++++++++++++-------------------------------- 1 files changed, 20 insertions(+), 34 deletions(-) diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 85b8a0d..d12fb74 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -57,6 +57,16 @@ # define LOG_SWTLB(...) do { } while (0) #endif +#ifdef DEBUG_BATS +# define LOG_BATS(...) do { \ + if (loglevel) \ + fprintf(logfile, ## __VA_ARGS__); \ + } while (0) +#else +# define LOG_BATS(...) do { } while (0) +#endif + + /*****************************************************************************/ /* PowerPC MMU emulation */ @@ -473,12 +483,8 @@ static always_inline void bat_601_size_prot (CPUState *env,target_ulong *blp, int key, pp, valid, prot; bl = (*BATl & 0x0000003F) << 17; -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "b %02x ==> bl " ADDRX " msk " ADDRX "\n", + LOG_BATS("b %02x ==> bl " ADDRX " msk " ADDRX "\n", (uint8_t)(*BATl & 0x0000003F), bl, ~bl); - } -#endif prot = 0; valid = (*BATl >> 6) & 1; if (valid) { @@ -502,12 +508,8 @@ static always_inline int get_bat (CPUState *env, mmu_ctx_t *ctx, int i, valid, prot; int ret = -1; -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "%s: %cBAT v " ADDRX "\n", __func__, + LOG_BATS("%s: %cBAT v " ADDRX "\n", __func__, type == ACCESS_CODE ? 'I' : 'D', virtual); - } -#endif switch (type) { case ACCESS_CODE: BATlt = env->IBAT[1]; @@ -529,13 +531,9 @@ static always_inline int get_bat (CPUState *env, mmu_ctx_t *ctx, } else { bat_size_prot(env, &bl, &valid, &prot, BATu, BATl); } -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "%s: %cBAT%d v " ADDRX " BATu " ADDRX + LOG_BATS("%s: %cBAT%d v " ADDRX " BATu " ADDRX " BATl " ADDRX "\n", __func__, type == ACCESS_CODE ? 'I' : 'D', i, virtual, *BATu, *BATl); - } -#endif if ((virtual & 0xF0000000) == BEPIu && ((virtual & 0x0FFE0000) & ~bl) == BEPIl) { /* BAT matches */ @@ -559,16 +557,16 @@ static always_inline int get_bat (CPUState *env, mmu_ctx_t *ctx, } } if (ret < 0) { -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "no BAT match for " ADDRX ":\n", virtual); +#if defined(DEBUG_BATS) + if (IS_LOGGING) { + QEMU_LOG0("no BAT match for " ADDRX ":\n", virtual); for (i = 0; i < 4; i++) { BATu = &BATut[i]; BATl = &BATlt[i]; BEPIu = *BATu & 0xF0000000; BEPIl = *BATu & 0x0FFE0000; bl = (*BATu & 0x00001FFC) << 15; - fprintf(logfile, "%s: %cBAT%d v " ADDRX " BATu " ADDRX + QEMU_LOG0("%s: %cBAT%d v " ADDRX " BATu " ADDRX " BATl " ADDRX " \n\t" ADDRX " " ADDRX " " ADDRX "\n", __func__, type == ACCESS_CODE ? 'I' : 'D', i, virtual, *BATu, *BATl, BEPIu, BEPIl, bl); @@ -576,7 +574,6 @@ static always_inline int get_bat (CPUState *env, mmu_ctx_t *ctx, } #endif } - /* No hit */ return ret; } @@ -1683,30 +1680,19 @@ static always_inline void do_invalidate_BAT (CPUPPCState *env, base = BATu & ~0x0001FFFF; end = base + mask + 0x00020000; -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "Flush BAT from " ADDRX " to " ADDRX " (" ADDRX ")\n", + LOG_BATS("Flush BAT from " ADDRX " to " ADDRX " (" ADDRX ")\n", base, end, mask); - } -#endif for (page = base; page != end; page += TARGET_PAGE_SIZE) tlb_flush_page(env, page); -#if defined (DEBUG_BATS) - if (loglevel != 0) - fprintf(logfile, "Flush done\n"); -#endif + LOG_BATS("Flush done\n"); } #endif static always_inline void dump_store_bat (CPUPPCState *env, char ID, int ul, int nr, target_ulong value) { -#if defined (DEBUG_BATS) - if (loglevel != 0) { - fprintf(logfile, "Set %cBAT%d%c to " ADDRX " (" ADDRX ")\n", + LOG_BATS("Set %cBAT%d%c to " ADDRX " (" ADDRX ")\n", ID, nr, ul == 0 ? 'u' : 'l', value, env->nip); - } -#endif } void ppc_store_ibatu (CPUPPCState *env, int nr, target_ulong value) -- 1.5.5.GIT