[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 22/31] target-ppc/helper.c: LOG_BATS macro
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PATCH 22/31] target-ppc/helper.c: LOG_BATS macro |
Date: |
Fri, 12 Dec 2008 13:09:01 -0200 |
Create a LOG_BATS macro and use it instead of #ifdef DEBUG_BATS.
Signed-off-by: Eduardo Habkost <address@hidden>
---
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
- [Qemu-devel] [PATCH 30/31] target-alpha/translate.c: LOG_DISAS macro, (continued)
- [Qemu-devel] [PATCH 30/31] target-alpha/translate.c: LOG_DISAS macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 23/31] target-ppc/helper.c: LOG_SLB macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 16/31] target-cris/translate.c: LOG_DIS macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 19/31] target-ppc/helper.c: LOG_MMU macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 14/31] target-i386/op_helper.c: use LOG_PCALL instead of #ifdefs, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 08/31] kqemu.c: use LOG_INT instead of #ifdefs, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 06/31] vl.c: use LOG_IOPORT instead of #ifdefs, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 02/31] hw/ppc.c: use LOG_IRQ instead of #ifdefs, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 31/31] linux-user/vm86.c: LOG_VM86 macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 22/31] target-ppc/helper.c: LOG_BATS macro,
Eduardo Habkost <=
- [Qemu-devel] [PATCH 28/31] target-ppc/translate.c: LOG_DISAS macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 24/31] target-ppc/helper.c: LOG_EXCP macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 07/31] kqemu.c: LOG_INT macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 09/31] kqemu.c: LOG_INT_STATE macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 10/31] kqemu.c: use LOG_INT_STATE instead of #ifdefs, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 12/31] target-i386/op_helper.c: LOG_PCALL macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 15/31] target-i386/op_helper.c: use LOG_PCALL/LOG_PCALL_STATE, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 29/31] hw/ppc4xx_devs.c: LOG_UIC macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 18/31] target-mips/translate.c: LOG_DISAS macro, Eduardo Habkost, 2008/12/12
- [Qemu-devel] [PATCH 20/31] target-ppc/helper.c: LOG_SWTLB macro, Eduardo Habkost, 2008/12/12