Entry-exit stubs are independent of deoptimization

We were incorrectly marking the instrumentation system as having no
instrumentation_stubs_installed_ even if entry_exit_stubs are still
installed. This would happen when the last method that had been
deoptimized is undeoptimized.

Test: ./test/testrunner/testrunner.py --host --runtime-option=-Xplugin:libtracefast-trampolined.so
Test: ./test.py --host

Change-Id: Ib3267cea65cb9f86f737eb5eb8b933daf76119b5
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index 34e2711..d752805 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -926,7 +926,7 @@
     }
 
     // If there is no deoptimized method left, we can restore the stack of each thread.
-    if (empty) {
+    if (empty && !entry_exit_stubs_installed_) {
       MutexLock mu(self, *Locks::thread_list_lock_);
       Runtime::Current()->GetThreadList()->ForEach(InstrumentationRestoreStack, this);
       instrumentation_stubs_installed_ = false;