Remove mterp_current_ibase.

Mterp has been removed.

Test: test.py
Change-Id: Iebad6fb337846e3945dcfd8ece6fae7c85afe25b
diff --git a/runtime/entrypoints_order_test.cc b/runtime/entrypoints_order_test.cc
index f6bbd22..cd43aaf 100644
--- a/runtime/entrypoints_order_test.cc
+++ b/runtime/entrypoints_order_test.cc
@@ -122,7 +122,6 @@
     EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, thread_local_objects, jni_entrypoints, sizeof(size_t));
 
     // Skip across the entrypoints structures.
-    EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, mterp_current_ibase, rosalloc_runs, sizeof(void*));
     EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, rosalloc_runs, thread_local_alloc_stack_top,
                         sizeof(void*) * kNumRosAllocThreadLocalSizeBracketsInThread);
     EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, thread_local_alloc_stack_top, thread_local_alloc_stack_end,
diff --git a/runtime/oat.h b/runtime/oat.h
index 279ebe0..84948e0 100644
--- a/runtime/oat.h
+++ b/runtime/oat.h
@@ -32,8 +32,8 @@
 class PACKED(4) OatHeader {
  public:
   static constexpr std::array<uint8_t, 4> kOatMagic { { 'o', 'a', 't', '\n' } };
-  // Last oat version changed reason: Skip internal version 199.
-  static constexpr std::array<uint8_t, 4> kOatVersion { { '2', '0', '0', '\0' } };
+  // Last oat version changed reason: Thread offsets changed.
+  static constexpr std::array<uint8_t, 4> kOatVersion { { '2', '0', '1', '\0' } };
 
   static constexpr const char* kDex2OatCmdLineKey = "dex2oat-cmdline";
   static constexpr const char* kDebuggableKey = "debuggable";
diff --git a/runtime/thread.h b/runtime/thread.h
index 7ea7d42..de7dfb0 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -770,12 +770,6 @@
   }
 
   template<PointerSize pointer_size>
-  static constexpr ThreadOffset<pointer_size> MterpCurrentIBaseOffset() {
-    return ThreadOffsetFromTlsPtr<pointer_size>(
-        OFFSETOF_MEMBER(tls_ptr_sized_values, mterp_current_ibase));
-  }
-
-  template<PointerSize pointer_size>
   static constexpr ThreadOffset<pointer_size> ExceptionOffset() {
     return ThreadOffsetFromTlsPtr<pointer_size>(OFFSETOF_MEMBER(tls_ptr_sized_values, exception));
   }
@@ -1225,14 +1219,6 @@
   bool ProtectStack(bool fatal_on_error = true);
   bool UnprotectStack();
 
-  void SetMterpCurrentIBase(void* ibase) {
-    tlsPtr_.mterp_current_ibase = ibase;
-  }
-
-  const void* GetMterpCurrentIBase() const {
-    return tlsPtr_.mterp_current_ibase;
-  }
-
   bool HandlingSignal() const {
     return tls32_.handling_signal_;
   }
@@ -1665,21 +1651,44 @@
   } tls64_;
 
   struct PACKED(sizeof(void*)) tls_ptr_sized_values {
-      tls_ptr_sized_values() : card_table(nullptr), exception(nullptr), stack_end(nullptr),
-      managed_stack(), suspend_trigger(nullptr), jni_env(nullptr), tmp_jni_env(nullptr),
-      self(nullptr), opeer(nullptr), jpeer(nullptr), stack_begin(nullptr), stack_size(0),
-      deps_or_stack_trace_sample(), wait_next(nullptr), monitor_enter_object(nullptr),
-      top_handle_scope(nullptr), class_loader_override(nullptr), long_jump_context(nullptr),
-      instrumentation_stack(nullptr),
-      stacked_shadow_frame_record(nullptr), deoptimization_context_stack(nullptr),
-      frame_id_to_shadow_frame(nullptr), name(nullptr), pthread_self(0),
-      last_no_thread_suspension_cause(nullptr), checkpoint_function(nullptr),
-      thread_local_start(nullptr), thread_local_pos(nullptr), thread_local_end(nullptr),
-      thread_local_limit(nullptr),
-      thread_local_objects(0), mterp_current_ibase(nullptr), thread_local_alloc_stack_top(nullptr),
-      thread_local_alloc_stack_end(nullptr),
-      flip_function(nullptr), method_verifier(nullptr), thread_local_mark_stack(nullptr),
-      async_exception(nullptr), top_reflective_handle_scope(nullptr) {
+      tls_ptr_sized_values() : card_table(nullptr),
+                               exception(nullptr),
+                               stack_end(nullptr),
+                               managed_stack(),
+                               suspend_trigger(nullptr),
+                               jni_env(nullptr),
+                               tmp_jni_env(nullptr),
+                               self(nullptr),
+                               opeer(nullptr),
+                               jpeer(nullptr),
+                               stack_begin(nullptr),
+                               stack_size(0),
+                               deps_or_stack_trace_sample(),
+                               wait_next(nullptr),
+                               monitor_enter_object(nullptr),
+                               top_handle_scope(nullptr),
+                               class_loader_override(nullptr),
+                               long_jump_context(nullptr),
+                               instrumentation_stack(nullptr),
+                               stacked_shadow_frame_record(nullptr),
+                               deoptimization_context_stack(nullptr),
+                               frame_id_to_shadow_frame(nullptr),
+                               name(nullptr),
+                               pthread_self(0),
+                               last_no_thread_suspension_cause(nullptr),
+                               checkpoint_function(nullptr),
+                               thread_local_start(nullptr),
+                               thread_local_pos(nullptr),
+                               thread_local_end(nullptr),
+                               thread_local_limit(nullptr),
+                               thread_local_objects(0),
+                               thread_local_alloc_stack_top(nullptr),
+                               thread_local_alloc_stack_end(nullptr),
+                               flip_function(nullptr),
+                               method_verifier(nullptr),
+                               thread_local_mark_stack(nullptr),
+                               async_exception(nullptr),
+                               top_reflective_handle_scope(nullptr) {
       std::fill(held_mutexes, held_mutexes + kLockLevelCount, nullptr);
     }
 
@@ -1811,9 +1820,6 @@
     JniEntryPoints jni_entrypoints;
     QuickEntryPoints quick_entrypoints;
 
-    // Mterp jump table base.
-    void* mterp_current_ibase;
-
     // There are RosAlloc::kNumThreadLocalSizeBrackets thread-local size brackets per thread.
     void* rosalloc_runs[kNumRosAllocThreadLocalSizeBracketsInThread];
 
diff --git a/tools/cpp-define-generator/thread.def b/tools/cpp-define-generator/thread.def
index 47c2629..d472cc4 100644
--- a/tools/cpp-define-generator/thread.def
+++ b/tools/cpp-define-generator/thread.def
@@ -23,8 +23,6 @@
            art::Thread::CardTableOffset<art::kRuntimePointerSize>().Int32Value())
 ASM_DEFINE(THREAD_CHECKPOINT_REQUEST,
            art::kCheckpointRequest)
-ASM_DEFINE(THREAD_CURRENT_IBASE_OFFSET,
-           art::Thread::MterpCurrentIBaseOffset<art::kRuntimePointerSize>().Int32Value())
 ASM_DEFINE(THREAD_EMPTY_CHECKPOINT_REQUEST,
            art::kEmptyCheckpointRequest)
 ASM_DEFINE(THREAD_EXCEPTION_OFFSET,