Patchwork [2/4] add assertions about env->current_tb

login
register
mail settings
Submitter Paolo Bonzini
Date Jan. 15, 2010, 8:42 a.m.
Message ID <1263544930-18620-3-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/42953/
State New
Headers show

Comments

Paolo Bonzini - Jan. 15, 2010, 8:42 a.m.
By virtue of the previous patch env->current_tb will always be NULL at
the top of cpu_exec's outermost for loop, and at the end of the innermost
while loop.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 cpu-exec.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

Patch

diff --git a/cpu-exec.c b/cpu-exec.c
index 9128df9..d974141 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -22,6 +22,8 @@ 
 #include "tcg.h"
 #include "kvm.h"
 
+#include <assert.h>
+
 #if !defined(CONFIG_SOFTMMU)
 #undef EAX
 #undef ECX
@@ -260,7 +262,7 @@  int cpu_exec(CPUState *env1)
                     env = cpu_single_env;
 #define env cpu_single_env
 #endif
-            env->current_tb = NULL;
+            assert (env->current_tb == NULL);
             /* if an exception is pending, we execute it here */
             if (env->exception_index >= 0) {
                 if (env->exception_index >= EXCP_INTERRUPT) {
@@ -595,6 +597,7 @@  int cpu_exec(CPUState *env1)
                 }
                 spin_unlock(&tb_lock);
                 env->current_tb = tb;
+                assert (env->current_tb);
 
                 /* cpu_interrupt might be called while translating the
                    TB, but before it is linked into a potentially
@@ -640,6 +643,7 @@  int cpu_exec(CPUState *env1)
                             cpu_loop_exit();
                         }
                     }
+                    assert (env->current_tb == NULL);
                 }
                 /* reset soft MMU for next block (it can currently
                    only be set by a memory fault) */