* Richard Henderson (richard.hender...@linaro.org) wrote: > On 11/22/2017 01:03 PM, Peter Maydell wrote: > > On 22 November 2017 at 12:01, Richard Henderson > > <richard.hender...@linaro.org> wrote: > >> On 11/22/2017 09:41 AM, Juan Quintela wrote: > >>> This commit started use tb_unlock() and tlb_set_dirty() on non TCG > >>> code. Add the function as stubs. > >>> > >>> commit 27266271977c5a30f2f7d493e042be1897827bdd > >>> Author: Peter Maydell <peter.mayd...@linaro.org> > >>> Date: Mon Nov 20 18:08:27 2017 +0000 > >>> > >>> exec.c: Factor out before/after actions for notdirty memory writes > >>> .... > >>> > >>> Signed-off-by: Juan Quintela <quint...@redhat.com> > >>> --- > >>> accel/stubs/tcg-stub.c | 8 ++++++++ > >>> 1 file changed, 8 insertions(+) > >> > >> Hmm. An alternate solution is > >> > >> > >> diff --git a/exec.c b/exec.c > >> index 03238a3449..ac902da89d 100644 > >> --- a/exec.c > >> +++ b/exec.c > >> @@ -2378,6 +2378,7 @@ void memory_notdirty_write_prepare(NotDirtyInfo *ndi, > >> /* Called within RCU critical section. */ > >> void memory_notdirty_write_complete(NotDirtyInfo *ndi) > >> { > >> + assert(tcg_enabled()); > >> if (ndi->locked) { > >> tb_unlock(); > >> } > >> > >> > >> so that the rest of the function is compiled away. > >> > >> Thus my confusion about how Peter was adding any references to these > >> functions > >> -- he split half the function such that half is now not protected by an > >> assert. > > > > Wow, I totally do not expect "assert(tcg_enabled())" to mean > > "we rely on the compiler to be able to determine that this > > code is dead" (and in general I'm not a fan of the compilation > > relying on the compiler determining that code is dead). > > We do this all of the time for more regular tests that are obviously > compile-time. I am a really big fan of this, because it makes sure that the > (usually 32-bit) else branch continues to compile. > > It's just that with --disable-tcg, tcg_enabled() expands to the less-obviously > constant false.
On windows though assert() can return, see: https://sourceforge.net/p/mingw-w64/bugs/306/ Dave > > r~ > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK