qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>
Subject: [Qemu-devel] [PATCH 27/31] target-ppc/op_helper.c: LOG_SWTLB macro
Date: Fri, 12 Dec 2008 13:09:06 -0200	[thread overview]
Message-ID: <1229094550-2022-28-git-send-email-ehabkost@redhat.com> (raw)
In-Reply-To: <1229094550-2022-1-git-send-email-ehabkost@redhat.com>

Create a LOG_SWTLB macro and use it instead of #ifdef DEBUG_SOFTWARE_TLB.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target-ppc/op_helper.c |   64 ++++++++++++++---------------------------------
 1 files changed, 19 insertions(+), 45 deletions(-)

diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index 0a084bf..a6049cb 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -27,6 +27,16 @@
 //#define DEBUG_EXCEPTIONS
 //#define DEBUG_SOFTWARE_TLB
 
+#ifdef DEBUG_SOFTWARE_TLB
+#  define LOG_SWTLB(...) do {            \
+     if (loglevel)                       \
+       fprintf(logfile, ## __VA_ARGS__); \
+   } while (0)
+#else
+#  define LOG_SWTLB(...) do { } while (0)
+#endif
+
+
 /*****************************************************************************/
 /* Exceptions processing helpers */
 
@@ -2741,13 +2751,9 @@ static void do_6xx_tlb (target_ulong new_EPN, int is_code)
         EPN = env->spr[SPR_DMISS];
     }
     way = (env->spr[SPR_SRR1] >> 17) & 1;
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s: EPN " ADDRX " " ADDRX " PTE0 " ADDRX
+    LOG_SWTLB("%s: EPN " ADDRX " " ADDRX " PTE0 " ADDRX
                 " PTE1 " ADDRX " way %d\n",
                 __func__, new_EPN, EPN, CMP, RPN, way);
-    }
-#endif
     /* Store this TLB */
     ppc6xx_tlb_store(env, (uint32_t)(new_EPN & TARGET_PAGE_MASK),
                      way, is_code, CMP, RPN);
@@ -2773,13 +2779,9 @@ static void do_74xx_tlb (target_ulong new_EPN, int is_code)
     CMP = env->spr[SPR_PTEHI];
     EPN = env->spr[SPR_TLBMISS] & ~0x3;
     way = env->spr[SPR_TLBMISS] & 0x3;
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s: EPN " ADDRX " " ADDRX " PTE0 " ADDRX
+    LOG_SWTLB("%s: EPN " ADDRX " " ADDRX " PTE0 " ADDRX
                 " PTE1 " ADDRX " way %d\n",
                 __func__, new_EPN, EPN, CMP, RPN, way);
-    }
-#endif
     /* Store this TLB */
     ppc6xx_tlb_store(env, (uint32_t)(new_EPN & TARGET_PAGE_MASK),
                      way, is_code, CMP, RPN);
@@ -2903,22 +2905,14 @@ void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val)
     ppcemb_tlb_t *tlb;
     target_ulong page, end;
 
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s entry %d val " ADDRX "\n", __func__, (int)entry, val);
-    }
-#endif
+    LOG_SWTLB("%s entry %d val " ADDRX "\n", __func__, (int)entry, val);
     entry &= 0x3F;
     tlb = &env->tlb[entry].tlbe;
     /* Invalidate previous TLB (if it's valid) */
     if (tlb->prot & PAGE_VALID) {
         end = tlb->EPN + tlb->size;
-#if defined (DEBUG_SOFTWARE_TLB)
-        if (loglevel != 0) {
-            fprintf(logfile, "%s: invalidate old TLB %d start " ADDRX
+        LOG_SWTLB("%s: invalidate old TLB %d start " ADDRX
                     " end " ADDRX "\n", __func__, (int)entry, tlb->EPN, end);
-        }
-#endif
         for (page = tlb->EPN; page < end; page += TARGET_PAGE_SIZE)
             tlb_flush_page(env, page);
     }
@@ -2943,26 +2937,18 @@ void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val)
     }
     tlb->PID = env->spr[SPR_40x_PID]; /* PID */
     tlb->attr = val & 0xFF;
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s: set up TLB %d RPN " PADDRX " EPN " ADDRX
+    LOG_SWTLB("%s: set up TLB %d RPN " PADDRX " EPN " ADDRX
                 " size " ADDRX " prot %c%c%c%c PID %d\n", __func__,
                 (int)entry, tlb->RPN, tlb->EPN, tlb->size,
                 tlb->prot & PAGE_READ ? 'r' : '-',
                 tlb->prot & PAGE_WRITE ? 'w' : '-',
                 tlb->prot & PAGE_EXEC ? 'x' : '-',
                 tlb->prot & PAGE_VALID ? 'v' : '-', (int)tlb->PID);
-    }
-#endif
     /* Invalidate new TLB (if valid) */
     if (tlb->prot & PAGE_VALID) {
         end = tlb->EPN + tlb->size;
-#if defined (DEBUG_SOFTWARE_TLB)
-        if (loglevel != 0) {
-            fprintf(logfile, "%s: invalidate TLB %d start " ADDRX
+        LOG_SWTLB("%s: invalidate TLB %d start " ADDRX
                     " end " ADDRX "\n", __func__, (int)entry, tlb->EPN, end);
-        }
-#endif
         for (page = tlb->EPN; page < end; page += TARGET_PAGE_SIZE)
             tlb_flush_page(env, page);
     }
@@ -2972,11 +2958,7 @@ void helper_4xx_tlbwe_lo (target_ulong entry, target_ulong val)
 {
     ppcemb_tlb_t *tlb;
 
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s entry %i val " ADDRX "\n", __func__, (int)entry, val);
-    }
-#endif
+    LOG_SWTLB("%s entry %i val " ADDRX "\n", __func__, (int)entry, val);
     entry &= 0x3F;
     tlb = &env->tlb[entry].tlbe;
     tlb->RPN = val & 0xFFFFFC00;
@@ -2985,17 +2967,13 @@ void helper_4xx_tlbwe_lo (target_ulong entry, target_ulong val)
         tlb->prot |= PAGE_EXEC;
     if (val & 0x100)
         tlb->prot |= PAGE_WRITE;
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s: set up TLB %d RPN " PADDRX " EPN " ADDRX
+    LOG_SWTLB("%s: set up TLB %d RPN " PADDRX " EPN " ADDRX
                 " size " ADDRX " prot %c%c%c%c PID %d\n", __func__,
                 (int)entry, tlb->RPN, tlb->EPN, tlb->size,
                 tlb->prot & PAGE_READ ? 'r' : '-',
                 tlb->prot & PAGE_WRITE ? 'w' : '-',
                 tlb->prot & PAGE_EXEC ? 'x' : '-',
                 tlb->prot & PAGE_VALID ? 'v' : '-', (int)tlb->PID);
-    }
-#endif
 }
 
 target_ulong helper_4xx_tlbsx (target_ulong address)
@@ -3010,12 +2988,8 @@ void helper_440_tlbwe (uint32_t word, target_ulong entry, target_ulong value)
     target_ulong EPN, RPN, size;
     int do_flush_tlbs;
 
-#if defined (DEBUG_SOFTWARE_TLB)
-    if (loglevel != 0) {
-        fprintf(logfile, "%s word %d entry %d value " ADDRX "\n",
+    LOG_SWTLB("%s word %d entry %d value " ADDRX "\n",
                 __func__, word, (int)entry, value);
-    }
-#endif
     do_flush_tlbs = 0;
     entry &= 0x3F;
     tlb = &env->tlb[entry].tlbe;
-- 
1.5.5.GIT

  parent reply	other threads:[~2008-12-12 15:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-12 15:08 [Qemu-devel] [PATCH 00/31] Logging code cleanup, take 2 Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 01/31] hw/ppc.c: LOG_IRQ macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 02/31] hw/ppc.c: use LOG_IRQ instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 03/31] hw/ppc.c: LOG_TB macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 04/31] hw/ppc.c: use LOG_TB instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 05/31] vl.c: LOG_IOPORT macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 06/31] vl.c: use LOG_IOPORT instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 07/31] kqemu.c: LOG_INT macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 08/31] kqemu.c: use LOG_INT instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 09/31] kqemu.c: LOG_INT_STATE macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 10/31] kqemu.c: use LOG_INT_STATE instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 11/31] kqemu.c: kill remaining DEBUG #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 12/31] target-i386/op_helper.c: LOG_PCALL macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 13/31] target-i386/op_helper.c: LOG_PCALL_STATE macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 14/31] target-i386/op_helper.c: use LOG_PCALL instead of #ifdefs Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 15/31] target-i386/op_helper.c: use LOG_PCALL/LOG_PCALL_STATE Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 16/31] target-cris/translate.c: LOG_DIS macro Eduardo Habkost
2008-12-12 18:59   ` Stuart Brady
2008-12-12 15:08 ` [Qemu-devel] [PATCH 17/31] target-cris: replace D(fprintf(logfile, ...)) macros with D_LOG(...) Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 18/31] target-mips/translate.c: LOG_DISAS macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 19/31] target-ppc/helper.c: LOG_MMU macro Eduardo Habkost
2008-12-12 15:08 ` [Qemu-devel] [PATCH 20/31] target-ppc/helper.c: LOG_SWTLB macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 21/31] target-ppc/helper.c: convert commented-out debug code to LOG_SWTLB Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 22/31] target-ppc/helper.c: LOG_BATS macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 23/31] target-ppc/helper.c: LOG_SLB macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 24/31] target-ppc/helper.c: LOG_EXCP macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 25/31] target-ppc/helper.c: remaining LOG_BATS & LOG_MMU conversions Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 26/31] target-ppc/helper.c: LOG_MMU_STATE macro Eduardo Habkost
2008-12-12 15:09 ` Eduardo Habkost [this message]
2008-12-12 15:09 ` [Qemu-devel] [PATCH 28/31] target-ppc/translate.c: LOG_DISAS macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 29/31] hw/ppc4xx_devs.c: LOG_UIC macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 30/31] target-alpha/translate.c: LOG_DISAS macro Eduardo Habkost
2008-12-12 15:09 ` [Qemu-devel] [PATCH 31/31] linux-user/vm86.c: LOG_VM86 macro Eduardo Habkost
2008-12-12 16:25 ` [Qemu-devel] [PATCH 00/31] Logging code cleanup, take 2 Blue Swirl
2008-12-12 16:54   ` Eduardo Habkost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1229094550-2022-28-git-send-email-ehabkost@redhat.com \
    --to=ehabkost@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).