]> git.proxmox.com Git - mirror_qemu.git/commitdiff
exec.c: add a check between constants to see whether we could skip
authorWei Yang <richardw.yang@linux.intel.com>
Thu, 21 Mar 2019 08:25:55 +0000 (16:25 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 16 Sep 2019 10:32:21 +0000 (12:32 +0200)
The maximum level is defined as P_L2_LEVELS and skip is defined with 6
bits, which means if P_L2_LEVELS < (1 << 6), skip never exceeds the
boundary.

Since this check is between two constants, which leverages compiler
to optimize the code based on different configuration.

Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
Message-Id: <20190321082555.21118-7-richardw.yang@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
exec.c

diff --git a/exec.c b/exec.c
index d1969bb894694f6d42d6ac0c39fa77172607b8a8..b9511be096686db0faa23ff5dbe82b94f38c55d6 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -324,7 +324,8 @@ static void phys_page_compact(PhysPageEntry *lp, Node *nodes)
     assert(valid_ptr < P_L2_SIZE);
 
     /* Don't compress if it won't fit in the # of bits we have. */
-    if (lp->skip + p[valid_ptr].skip >= (1 << 6)) {
+    if (P_L2_LEVELS >= (1 << 6) &&
+        lp->skip + p[valid_ptr].skip >= (1 << 6)) {
         return;
     }