Merge "Remove oat_data_begin checks from OatFile."
diff --git a/adbconnection/adbconnection.cc b/adbconnection/adbconnection.cc
index c716d92..2050133 100644
--- a/adbconnection/adbconnection.cc
+++ b/adbconnection/adbconnection.cc
@@ -251,6 +251,8 @@
     runtime->StartThreadBirth();
   }
   ScopedLocalRef<jobject> thr(soa.Env(), CreateAdbConnectionThread(soa.Self()));
+  // Note: Using pthreads instead of std::thread to not abort when the thread cannot be
+  //       created (exception support required).
   pthread_t pthread;
   std::unique_ptr<CallbackData> data(new CallbackData { this, soa.Env()->NewGlobalRef(thr.get()) });
   started_debugger_threads_ = true;
@@ -268,7 +270,7 @@
     runtime->EndThreadBirth();
     return;
   }
-  data.release();
+  data.release();  // NOLINT pthreads API.
 }
 
 static bool FlagsSet(int16_t data, int16_t flags) {
diff --git a/build/Android.bp b/build/Android.bp
index 9797268..47a540d 100644
--- a/build/Android.bp
+++ b/build/Android.bp
@@ -21,6 +21,7 @@
     "bugprone-argument-comment",
     "bugprone-lambda-function-name",
     "bugprone-unused-raii",  // Protect scoped things like MutexLock.
+    "bugprone-unused-return-value",
     "bugprone-virtual-near-miss",
     "modernize-use-bool-literals",
     "modernize-use-nullptr",
@@ -37,6 +38,7 @@
 art_clang_tidy_errors_str = "bugprone-argument-comment"
         + ",bugprone-lambda-function-name"
         + ",bugprone-unused-raii"
+        + ",bugprone-unused-return-value"
         + ",bugprone-virtual-near-miss"
         + ",modernize-redundant-void-arg"
         + ",modernize-use-bool-literals"
diff --git a/compiler/dex/verification_results.cc b/compiler/dex/verification_results.cc
index 1e0b94d..dd947d9 100644
--- a/compiler/dex/verification_results.cc
+++ b/compiler/dex/verification_results.cc
@@ -79,7 +79,7 @@
   if (inserted) {
     // Successfully added, release the unique_ptr since we no longer have ownership.
     DCHECK_EQ(GetVerifiedMethod(ref), verified_method.get());
-    verified_method.release();
+    verified_method.release();  // NOLINT b/117926937
   } else {
     // TODO: Investigate why are we doing the work again for this method and try to avoid it.
     LOG(WARNING) << "Method processed more than once: " << ref.PrettyMethod();
@@ -117,7 +117,7 @@
                                       /*expected*/ nullptr,
                                       verified_method.get()) ==
           AtomicMap::InsertResult::kInsertResultSuccess) {
-    verified_method.release();
+    verified_method.release();  // NOLINT b/117926937
   }
 }
 
diff --git a/dex2oat/dex2oat.cc b/dex2oat/dex2oat.cc
index 5c19a27..f0f2b3e 100644
--- a/dex2oat/dex2oat.cc
+++ b/dex2oat/dex2oat.cc
@@ -589,8 +589,10 @@
     const char* reason = "dex2oat watch dog thread waiting";
     CHECK_WATCH_DOG_PTHREAD_CALL(pthread_mutex_lock, (&mutex_), reason);
     while (!shutting_down_) {
-      int rc = TEMP_FAILURE_RETRY(pthread_cond_timedwait(&cond_, &mutex_, &timeout_ts));
-      if (rc == ETIMEDOUT) {
+      int rc = pthread_cond_timedwait(&cond_, &mutex_, &timeout_ts);
+      if (rc == EINTR) {
+        continue;
+      } else if (rc == ETIMEDOUT) {
         Fatal(StringPrintf("dex2oat did not finish after %" PRId64 " seconds",
                            timeout_in_milliseconds_/1000));
       } else if (rc != 0) {
@@ -660,21 +662,21 @@
     if (!kIsDebugBuild && !(kRunningOnMemoryTool && kMemoryToolDetectsLeaks)) {
       // We want to just exit on non-debug builds, not bringing the runtime down
       // in an orderly fashion. So release the following fields.
-      driver_.release();
-      image_writer_.release();
+      driver_.release();                // NOLINT
+      image_writer_.release();          // NOLINT
       for (std::unique_ptr<const DexFile>& dex_file : opened_dex_files_) {
-        dex_file.release();
+        dex_file.release();             // NOLINT
       }
       new std::vector<MemMap>(std::move(opened_dex_files_maps_));  // Leak MemMaps.
       for (std::unique_ptr<File>& vdex_file : vdex_files_) {
-        vdex_file.release();
+        vdex_file.release();            // NOLINT
       }
       for (std::unique_ptr<File>& oat_file : oat_files_) {
-        oat_file.release();
+        oat_file.release();             // NOLINT
       }
-      runtime_.release();
-      verification_results_.release();
-      key_value_store_.release();
+      runtime_.release();               // NOLINT
+      verification_results_.release();  // NOLINT
+      key_value_store_.release();       // NOLINT
     }
   }
 
diff --git a/dexlayout/dexlayout.cc b/dexlayout/dexlayout.cc
index db6945f..8905aa3 100644
--- a/dexlayout/dexlayout.cc
+++ b/dexlayout/dexlayout.cc
@@ -1554,7 +1554,7 @@
       // Overwrite the existing vector with the new ordering, note that the sets of objects are
       // equivalent, but the order changes. This is why this is not a memory leak.
       // TODO: Consider cleaning this up with a shared_ptr.
-      class_datas[class_data_index].release();
+      class_datas[class_data_index].release();  // NOLINT b/117926937
       class_datas[class_data_index].reset(class_data);
       ++class_data_index;
     }
@@ -1570,7 +1570,7 @@
       // Overwrite the existing vector with the new ordering, note that the sets of objects are
       // equivalent, but the order changes. This is why this is not a memory leak.
       // TODO: Consider cleaning this up with a shared_ptr.
-      class_defs[i].release();
+      class_defs[i].release();  // NOLINT b/117926937
       class_defs[i].reset(new_class_def_order[i]);
     }
   }
@@ -1671,7 +1671,7 @@
   // Now we know what order we want the string data, reorder them.
   size_t data_index = 0;
   for (dex_ir::StringId* string_id : string_ids) {
-    string_datas[data_index].release();
+    string_datas[data_index].release();  // NOLINT b/117926937
     string_datas[data_index].reset(string_id->DataItem());
     ++data_index;
   }
diff --git a/libartbase/base/bit_string_test.cc b/libartbase/base/bit_string_test.cc
index 89a71a1..45f4d4e 100644
--- a/libartbase/base/bit_string_test.cc
+++ b/libartbase/base/bit_string_test.cc
@@ -110,17 +110,17 @@
   ASSERT_EQ(BitString::kCapacity, 3u);
 
   EXPECT_BITSTRING_STR("BitString[]", bs);
-  bs = SetBitStringCharAt(bs, /*i*/0, /*val*/1u);
+  bs = SetBitStringCharAt(bs, /*i=*/0, /*val=*/1u);
   EXPECT_BITSTRING_STR("BitString[1]", bs);
-  bs = SetBitStringCharAt(bs, /*i*/1, /*val*/2u);
+  bs = SetBitStringCharAt(bs, /*i=*/1, /*val=*/2u);
   EXPECT_BITSTRING_STR("BitString[1,2]", bs);
-  bs = SetBitStringCharAt(bs, /*i*/2, /*val*/3u);
+  bs = SetBitStringCharAt(bs, /*i=*/2, /*val=*/3u);
   EXPECT_BITSTRING_STR("BitString[1,2,3]", bs);
 
   // There should be at least "kCapacity" # of checks here, 1 for each unique position.
-  EXPECT_EQ(MakeBitStringChar(/*idx*/0, /*val*/1u), bs[0]);
-  EXPECT_EQ(MakeBitStringChar(/*idx*/1, /*val*/2u), bs[1]);
-  EXPECT_EQ(MakeBitStringChar(/*idx*/2, /*val*/3u), bs[2]);
+  EXPECT_EQ(MakeBitStringChar(/*idx=*/0, /*val=*/1u), bs[0]);
+  EXPECT_EQ(MakeBitStringChar(/*idx=*/1, /*val=*/2u), bs[1]);
+  EXPECT_EQ(MakeBitStringChar(/*idx=*/2, /*val=*/3u), bs[2]);
 
   // Each maximal value should be tested here for each position.
   uint32_t max_bitstring_ints[] = {
diff --git a/libartbase/base/bit_struct_test.cc b/libartbase/base/bit_struct_test.cc
index 577682c..a2389eb 100644
--- a/libartbase/base/bit_struct_test.cc
+++ b/libartbase/base/bit_struct_test.cc
@@ -73,7 +73,7 @@
 TEST(BitStructs, Custom) {
   CustomBitStruct expected(0b1111);
 
-  BitStructField<CustomBitStruct, /*lsb*/4, /*width*/4> f{};
+  BitStructField<CustomBitStruct, /*lsb=*/4, /*width=*/4> f{};
 
   EXPECT_EQ(1u, sizeof(f));
 
@@ -85,9 +85,9 @@
   EXPECT_EQ(AsUint(f), 0b11110000u);
 }
 
-BITSTRUCT_DEFINE_START(TestTwoCustom, /* size */ 8)
-  BitStructField<CustomBitStruct, /*lsb*/0, /*width*/4> f4_a;
-  BitStructField<CustomBitStruct, /*lsb*/4, /*width*/4> f4_b;
+BITSTRUCT_DEFINE_START(TestTwoCustom, /* size= */ 8)
+  BitStructField<CustomBitStruct, /*lsb=*/0, /*width=*/4> f4_a;
+  BitStructField<CustomBitStruct, /*lsb=*/4, /*width=*/4> f4_b;
 BITSTRUCT_DEFINE_END(TestTwoCustom);
 
 TEST(BitStructs, TwoCustom) {
@@ -122,7 +122,7 @@
 }
 
 TEST(BitStructs, Number) {
-  BitStructNumber<uint16_t, /*lsb*/4, /*width*/4> bsn{};
+  BitStructNumber<uint16_t, /*lsb=*/4, /*width=*/4> bsn{};
   EXPECT_EQ(2u, sizeof(bsn));
 
   bsn = 0b1111;
@@ -135,20 +135,20 @@
   EXPECT_EQ(AsUint(bsn), 0b11110000u);
 }
 
-BITSTRUCT_DEFINE_START(TestBitStruct, /* size */ 8)
-  BitStructInt</*lsb*/0, /*width*/3> i3;
-  BitStructUint</*lsb*/3, /*width*/4> u4;
+BITSTRUCT_DEFINE_START(TestBitStruct, /* size= */ 8)
+  BitStructInt</*lsb=*/0, /*width=*/3> i3;
+  BitStructUint</*lsb=*/3, /*width=*/4> u4;
 
-  BitStructUint</*lsb*/0, /*width*/7> alias_all;
+  BitStructUint</*lsb=*/0, /*width=*/7> alias_all;
 BITSTRUCT_DEFINE_END(TestBitStruct);
 
 TEST(BitStructs, Test1) {
   {
     // Check minimal size selection is correct.
-    BitStructInt</*lsb*/0, /*width*/3> i3;
-    BitStructUint</*lsb*/3, /*width*/4> u4;
+    BitStructInt</*lsb=*/0, /*width=*/3> i3;
+    BitStructUint</*lsb=*/3, /*width=*/4> u4;
 
-    BitStructUint</*lsb*/0, /*width*/7> alias_all;
+    BitStructUint</*lsb=*/0, /*width=*/7> alias_all;
 
     EXPECT_EQ(1u, sizeof(i3));
     EXPECT_EQ(1u, sizeof(u4));
@@ -216,12 +216,12 @@
   }
 }
 
-BITSTRUCT_DEFINE_START(MixedSizeBitStruct, /* size */ 32)
-  BitStructUint</*lsb*/0, /*width*/3> u3;
-  BitStructUint</*lsb*/3, /*width*/10> u10;
-  BitStructUint</*lsb*/13, /*width*/19> u19;
+BITSTRUCT_DEFINE_START(MixedSizeBitStruct, /* size= */ 32)
+  BitStructUint</*lsb=*/0, /*width=*/3> u3;
+  BitStructUint</*lsb=*/3, /*width=*/10> u10;
+  BitStructUint</*lsb=*/13, /*width=*/19> u19;
 
-  BitStructUint</*lsb*/0, /*width*/32> alias_all;
+  BitStructUint</*lsb=*/0, /*width=*/32> alias_all;
 BITSTRUCT_DEFINE_END(MixedSizeBitStruct);
 
 // static_assert(sizeof(MixedSizeBitStruct) == sizeof(uint32_t), "TestBitStructs#MixedSize");
@@ -255,11 +255,11 @@
   EXPECT_EQ(0b10101010101010101011111010100111u, AsUint(tst));
 }
 
-BITSTRUCT_DEFINE_START(TestBitStruct_u8, /* size */ 8)
-  BitStructInt</*lsb*/0, /*width*/3> i3;
-  BitStructUint</*lsb*/3, /*width*/4> u4;
+BITSTRUCT_DEFINE_START(TestBitStruct_u8, /* size= */ 8)
+  BitStructInt</*lsb=*/0, /*width=*/3> i3;
+  BitStructUint</*lsb=*/3, /*width=*/4> u4;
 
-  BitStructUint</*lsb*/0, /*width*/8> alias_all;
+  BitStructUint</*lsb=*/0, /*width=*/8> alias_all;
 BITSTRUCT_DEFINE_END(TestBitStruct_u8);
 
 TEST(BitStructs, FieldAssignment) {
@@ -283,11 +283,11 @@
   }
 }
 
-BITSTRUCT_DEFINE_START(NestedStruct, /* size */ 64)
-  BitStructField<MixedSizeBitStruct, /*lsb*/0> mixed_lower;
-  BitStructField<MixedSizeBitStruct, /*lsb*/32> mixed_upper;
+BITSTRUCT_DEFINE_START(NestedStruct, /* size= */ 64)
+  BitStructField<MixedSizeBitStruct, /*lsb=*/0> mixed_lower;
+  BitStructField<MixedSizeBitStruct, /*lsb=*/32> mixed_upper;
 
-  BitStructUint</*lsb*/0, /*width*/64> alias_all;
+  BitStructUint</*lsb=*/0, /*width=*/64> alias_all;
 BITSTRUCT_DEFINE_END(NestedStruct);
 
 TEST(BitStructs, NestedFieldAssignment) {
diff --git a/libartbase/base/bit_utils_test.cc b/libartbase/base/bit_utils_test.cc
index 3a80600..91fc3b0 100644
--- a/libartbase/base/bit_utils_test.cc
+++ b/libartbase/base/bit_utils_test.cc
@@ -353,89 +353,92 @@
 static_assert(MaskLeastSignificant<uint64_t>(63) == (std::numeric_limits<uint64_t>::max() >> 1u),
               "TestMaskLeastSignificant#6");
 
-static_assert(BitFieldClear(0xFF, /*lsb*/0, /*width*/0) == 0xFF, "TestBitFieldClear#1");
-static_assert(BitFieldClear(std::numeric_limits<uint32_t>::max(), /*lsb*/0, /*width*/32) == 0x0,
+static_assert(BitFieldClear(0xFF, /*lsb=*/0, /*width=*/0) == 0xFF, "TestBitFieldClear#1");
+static_assert(BitFieldClear(std::numeric_limits<uint32_t>::max(), /*lsb=*/0, /*width=*/32) == 0x0,
               "TestBitFieldClear#2");
-static_assert(BitFieldClear(std::numeric_limits<int32_t>::max(), /*lsb*/0, /*width*/32) == 0x0,
+static_assert(BitFieldClear(std::numeric_limits<int32_t>::max(), /*lsb=*/0, /*width=*/32) == 0x0,
               "TestBitFieldClear#3");
-static_assert(BitFieldClear(0xFF, /*lsb*/0, /*width*/2) == 0b11111100, "TestBitFieldClear#4");
-static_assert(BitFieldClear(0xFF, /*lsb*/0, /*width*/3) == 0b11111000, "TestBitFieldClear#5");
-static_assert(BitFieldClear(0xFF, /*lsb*/1, /*width*/3) == 0b11110001, "TestBitFieldClear#6");
-static_assert(BitFieldClear(0xFF, /*lsb*/2, /*width*/3) == 0b11100011, "TestBitFieldClear#7");
+static_assert(BitFieldClear(0xFF, /*lsb=*/0, /*width=*/2) == 0b11111100, "TestBitFieldClear#4");
+static_assert(BitFieldClear(0xFF, /*lsb=*/0, /*width=*/3) == 0b11111000, "TestBitFieldClear#5");
+static_assert(BitFieldClear(0xFF, /*lsb=*/1, /*width=*/3) == 0b11110001, "TestBitFieldClear#6");
+static_assert(BitFieldClear(0xFF, /*lsb=*/2, /*width=*/3) == 0b11100011, "TestBitFieldClear#7");
 
-static_assert(BitFieldExtract(0xFF, /*lsb*/0, /*width*/0) == 0x0, "TestBitFieldExtract#1");
-static_assert(BitFieldExtract(std::numeric_limits<uint32_t>::max(), /*lsb*/0, /*width*/32)
+static_assert(BitFieldExtract(0xFF, /*lsb=*/0, /*width=*/0) == 0x0, "TestBitFieldExtract#1");
+static_assert(BitFieldExtract(std::numeric_limits<uint32_t>::max(), /*lsb=*/0, /*width=*/32)
                   == std::numeric_limits<uint32_t>::max(),
               "TestBitFieldExtract#2");
-static_assert(BitFieldExtract(std::numeric_limits<int32_t>::max(), /*lsb*/0, /*width*/32)
+static_assert(BitFieldExtract(std::numeric_limits<int32_t>::max(), /*lsb=*/0, /*width=*/32)
                   == std::numeric_limits<int32_t>::max(),
               "TestBitFieldExtract#3");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/0, /*width*/2) == 0b00000011,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/0, /*width=*/2) == 0b00000011,
               "TestBitFieldExtract#4");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/0, /*width*/3) == 0b00000111,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/0, /*width=*/3) == 0b00000111,
               "TestBitFieldExtract#5");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/1, /*width*/3) == 0b00000111,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/1, /*width=*/3) == 0b00000111,
               "TestBitFieldExtract#6");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/2, /*width*/3) == 0b00000111,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/2, /*width=*/3) == 0b00000111,
               "TestBitFieldExtract#7");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/3, /*width*/3) == 0b00000111,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/3, /*width=*/3) == 0b00000111,
               "TestBitFieldExtract#8");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/8, /*width*/3) == 0b00000000,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/8, /*width=*/3) == 0b00000000,
               "TestBitFieldExtract#9");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/7, /*width*/3) == 0b00000001,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/7, /*width=*/3) == 0b00000001,
               "TestBitFieldExtract#10");
-static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb*/6, /*width*/3) == 0b00000011,
+static_assert(BitFieldExtract(static_cast<uint32_t>(0xFF), /*lsb=*/6, /*width=*/3) == 0b00000011,
               "TestBitFieldExtract#11");
-static_assert(BitFieldExtract(0xFF, /*lsb*/0, /*width*/2) == -1, "TestBitFieldExtract#12");
-static_assert(BitFieldExtract(0xFF, /*lsb*/0, /*width*/3) == -1, "TestBitFieldExtract#13");
-static_assert(BitFieldExtract(0xFF, /*lsb*/1, /*width*/3) == -1, "TestBitFieldExtract#14");
-static_assert(BitFieldExtract(0xFF, /*lsb*/2, /*width*/3) == -1, "TestBitFieldExtract#15");
-static_assert(BitFieldExtract(0xFF, /*lsb*/3, /*width*/3) == -1, "TestBitFieldExtract#16");
-static_assert(BitFieldExtract(0xFF, /*lsb*/8, /*width*/3) == 0b00000000, "TestBitFieldExtract#17");
-static_assert(BitFieldExtract(0xFF, /*lsb*/7, /*width*/3) == 0b00000001, "TestBitFieldExtract#18");
-static_assert(BitFieldExtract(0xFF, /*lsb*/6, /*width*/3) == 0b00000011, "TestBitFieldExtract#19");
-static_assert(BitFieldExtract(static_cast<uint8_t>(0b01101010), /*lsb*/2, /*width*/4)
+static_assert(BitFieldExtract(0xFF, /*lsb=*/0, /*width=*/2) == -1, "TestBitFieldExtract#12");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/0, /*width=*/3) == -1, "TestBitFieldExtract#13");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/1, /*width=*/3) == -1, "TestBitFieldExtract#14");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/2, /*width=*/3) == -1, "TestBitFieldExtract#15");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/3, /*width=*/3) == -1, "TestBitFieldExtract#16");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/8, /*width=*/3) == 0b00000000,
+              "TestBitFieldExtract#17");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/7, /*width=*/3) == 0b00000001,
+              "TestBitFieldExtract#18");
+static_assert(BitFieldExtract(0xFF, /*lsb=*/6, /*width=*/3) == 0b00000011,
+              "TestBitFieldExtract#19");
+static_assert(BitFieldExtract(static_cast<uint8_t>(0b01101010), /*lsb=*/2, /*width=*/4)
                   == 0b00001010,
               "TestBitFieldExtract#20");
-static_assert(BitFieldExtract(static_cast<int8_t>(0b01101010), /*lsb*/2, /*width*/4)
+static_assert(BitFieldExtract(static_cast<int8_t>(0b01101010), /*lsb=*/2, /*width=*/4)
                   == static_cast<int8_t>(0b11111010),
               "TestBitFieldExtract#21");
 
-static_assert(BitFieldInsert(0xFF, /*data*/0x0, /*lsb*/0, /*width*/0) == 0xFF,
+static_assert(BitFieldInsert(0xFF, /*data=*/0x0, /*lsb=*/0, /*width=*/0) == 0xFF,
               "TestBitFieldInsert#1");
 static_assert(BitFieldInsert(std::numeric_limits<uint32_t>::max(),
-                             /*data*/std::numeric_limits<uint32_t>::max(),
-                             /*lsb*/0,
-                             /*width*/32)
+                             /*data=*/std::numeric_limits<uint32_t>::max(),
+                             /*lsb=*/0,
+                             /*width=*/32)
                   == std::numeric_limits<uint32_t>::max(),
               "TestBitFieldInsert#2");
 static_assert(BitFieldInsert(std::numeric_limits<int32_t>::max(),
-                             /*data*/std::numeric_limits<uint32_t>::max(),
-                             /*lsb*/0,
-                             /*width*/32)
+                             /*data=*/std::numeric_limits<uint32_t>::max(),
+                             /*lsb=*/0,
+                             /*width=*/32)
                   == std::numeric_limits<uint32_t>::max(),
               "TestBitFieldInsert#3");
 static_assert(BitFieldInsert(0u,
-                             /*data*/std::numeric_limits<uint32_t>::max(),
-                             /*lsb*/0,
-                             /*width*/32)
+                             /*data=*/std::numeric_limits<uint32_t>::max(),
+                             /*lsb=*/0,
+                             /*width=*/32)
                   == std::numeric_limits<uint32_t>::max(),
               "TestBitFieldInsert#4");
 static_assert(BitFieldInsert(-(-0),
-                             /*data*/std::numeric_limits<uint32_t>::max(),
-                             /*lsb*/0,
-                             /*width*/32)
+                             /*data=*/std::numeric_limits<uint32_t>::max(),
+                             /*lsb=*/0,
+                             /*width=*/32)
                   == std::numeric_limits<uint32_t>::max(),
               "TestBitFieldInsert#5");
-static_assert(BitFieldInsert(0x00, /*data*/0b11u, /*lsb*/0, /*width*/2) == 0b00000011,
+static_assert(BitFieldInsert(0x00, /*data=*/0b11u, /*lsb=*/0, /*width=*/2) == 0b00000011,
               "TestBitFieldInsert#6");
-static_assert(BitFieldInsert(0x00, /*data*/0b111u, /*lsb*/0, /*width*/3) == 0b00000111,
+static_assert(BitFieldInsert(0x00, /*data=*/0b111u, /*lsb=*/0, /*width=*/3) == 0b00000111,
               "TestBitFieldInsert#7");
-static_assert(BitFieldInsert(0x00, /*data*/0b111u, /*lsb*/1, /*width*/3) == 0b00001110,
+static_assert(BitFieldInsert(0x00, /*data=*/0b111u, /*lsb=*/1, /*width=*/3) == 0b00001110,
               "TestBitFieldInsert#8");
-static_assert(BitFieldInsert(0x00, /*data*/0b111u, /*lsb*/2, /*width*/3) == 0b00011100,
+static_assert(BitFieldInsert(0x00, /*data=*/0b111u, /*lsb=*/2, /*width=*/3) == 0b00011100,
               "TestBitFieldInsert#9");
-static_assert(BitFieldInsert(0b01011100, /*data*/0b1101u, /*lsb*/4, /*width*/4) == 0b11011100,
+static_assert(BitFieldInsert(0b01011100, /*data=*/0b1101u, /*lsb=*/4, /*width=*/4) == 0b11011100,
               "TestBitFieldInsert#10");
 
 template <typename Container>
diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc
index b65710b..9485fca 100644
--- a/libartbase/base/common_art_test.cc
+++ b/libartbase/base/common_art_test.cc
@@ -251,7 +251,7 @@
   static constexpr bool kVerifyChecksum = true;
   const ArtDexFileLoader dex_file_loader;
   if (!dex_file_loader.Open(
-        location, location, /* verify */ true, kVerifyChecksum, &error_msg, &dex_files)) {
+        location, location, /* verify= */ true, kVerifyChecksum, &error_msg, &dex_files)) {
     LOG(FATAL) << "Could not open .dex file '" << location << "': " << error_msg << "\n";
     UNREACHABLE();
   } else {
diff --git a/libartbase/base/file_magic.cc b/libartbase/base/file_magic.cc
index d8d843b..1471c59 100644
--- a/libartbase/base/file_magic.cc
+++ b/libartbase/base/file_magic.cc
@@ -31,7 +31,7 @@
 
 File OpenAndReadMagic(const char* filename, uint32_t* magic, std::string* error_msg) {
   CHECK(magic != nullptr);
-  File fd(filename, O_RDONLY, /* check_usage */ false);
+  File fd(filename, O_RDONLY, /* check_usage= */ false);
   if (fd.Fd() == -1) {
     *error_msg = StringPrintf("Unable to open '%s' : %s", filename, strerror(errno));
     return File();
diff --git a/libartbase/base/file_utils_test.cc b/libartbase/base/file_utils_test.cc
index 2a7273b..f7c9c5e 100644
--- a/libartbase/base/file_utils_test.cc
+++ b/libartbase/base/file_utils_test.cc
@@ -71,12 +71,12 @@
   // Set ANDROID_ROOT to something else (but the directory must exist). So use dirname.
   UniqueCPtr<char> root_dup(strdup(android_root_env.c_str()));
   char* dir = dirname(root_dup.get());
-  ASSERT_EQ(0, setenv("ANDROID_ROOT", dir, 1 /* overwrite */));
+  ASSERT_EQ(0, setenv("ANDROID_ROOT", dir, /* overwrite */ 1));
   std::string android_root2 = GetAndroidRootSafe(&error_msg);
   EXPECT_STREQ(dir, android_root2.c_str());
 
   // Set a bogus value for ANDROID_ROOT. This should be an error.
-  ASSERT_EQ(0, setenv("ANDROID_ROOT", "/this/is/obviously/bogus", 1 /* overwrite */));
+  ASSERT_EQ(0, setenv("ANDROID_ROOT", "/this/is/obviously/bogus", /* overwrite */ 1));
   EXPECT_EQ(GetAndroidRootSafe(&error_msg), "");
 
   // Unset ANDROID_ROOT and see that it still returns something (as libart code is running).
@@ -90,7 +90,7 @@
 
 
   // Reset ANDROID_ROOT, as other things may depend on it.
-  ASSERT_EQ(0, setenv("ANDROID_ROOT", android_root_env.c_str(), 1 /* overwrite */));
+  ASSERT_EQ(0, setenv("ANDROID_ROOT", android_root_env.c_str(), /* overwrite */ 1));
 }
 
 TEST_F(FileUtilsTest, ReplaceFileExtension) {
diff --git a/libartbase/base/mem_map.cc b/libartbase/base/mem_map.cc
index 06a168d..532ca28 100644
--- a/libartbase/base/mem_map.cc
+++ b/libartbase/base/mem_map.cc
@@ -394,7 +394,7 @@
     return Invalid();
   }
   const size_t page_aligned_byte_count = RoundUp(byte_count, kPageSize);
-  return MemMap(name, addr, byte_count, addr, page_aligned_byte_count, 0, true /* reuse */);
+  return MemMap(name, addr, byte_count, addr, page_aligned_byte_count, 0, /* reuse= */ true);
 }
 
 template<typename A, typename B>
@@ -696,8 +696,8 @@
                     tail_name,
                     tail_prot,
                     MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS,
-                    /* fd */ -1,
-                    /* offset */ 0,
+                    /* fd= */ -1,
+                    /* offset= */ 0,
                     error_msg,
                     use_debug_name);
 }
@@ -771,7 +771,7 @@
   uint8_t* begin = Begin();
   ReleaseReservedMemory(byte_count);  // Performs necessary DCHECK()s on this reservation.
   size_t base_size = RoundUp(byte_count, kPageSize);
-  return MemMap(name_, begin, byte_count, begin, base_size, prot_, /* reuse */ false);
+  return MemMap(name_, begin, byte_count, begin, base_size, prot_, /* reuse= */ false);
 }
 
 void MemMap::ReleaseReservedMemory(size_t byte_count) {
diff --git a/libartbase/base/mem_map_test.cc b/libartbase/base/mem_map_test.cc
index bf143d4..5815cf9 100644
--- a/libartbase/base/mem_map_test.cc
+++ b/libartbase/base/mem_map_test.cc
@@ -53,7 +53,7 @@
     // Find a valid map address and unmap it before returning.
     std::string error_msg;
     MemMap map = MemMap::MapAnonymous("temp",
-                                      /* addr */ nullptr,
+                                      /* addr= */ nullptr,
                                       size,
                                       PROT_READ,
                                       low_4gb,
@@ -68,7 +68,7 @@
     const size_t page_size = static_cast<size_t>(kPageSize);
     // Map a two-page memory region.
     MemMap m0 = MemMap::MapAnonymous("MemMapTest_RemapAtEndTest_map0",
-                                     /* addr */ nullptr,
+                                     /* addr= */ nullptr,
                                      2 * page_size,
                                      PROT_READ | PROT_WRITE,
                                      low_4gb,
@@ -165,17 +165,17 @@
 TEST_F(MemMapTest, ReplaceMapping_SameSize) {
   std::string error_msg;
   MemMap dest = MemMap::MapAnonymous("MapAnonymousEmpty-atomic-replace-dest",
-                                     /* addr */ nullptr,
+                                     /* addr= */ nullptr,
                                      kPageSize,
                                      PROT_READ,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(dest.IsValid());
   MemMap source = MemMap::MapAnonymous("MapAnonymous-atomic-replace-source",
-                                       /* addr */ nullptr,
+                                       /* addr= */ nullptr,
                                        kPageSize,
                                        PROT_WRITE | PROT_READ,
-                                       /* low_4gb */ false,
+                                       /* low_4gb= */ false,
                                        &error_msg);
   ASSERT_TRUE(source.IsValid());
   void* source_addr = source.Begin();
@@ -200,21 +200,21 @@
 TEST_F(MemMapTest, ReplaceMapping_MakeLarger) {
   std::string error_msg;
   MemMap dest = MemMap::MapAnonymous("MapAnonymousEmpty-atomic-replace-dest",
-                                     /* addr */ nullptr,
+                                     /* addr= */ nullptr,
                                      5 * kPageSize,  // Need to make it larger
                                                      // initially so we know
                                                      // there won't be mappings
                                                      // in the way we we move
                                                      // source.
                                      PROT_READ,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(dest.IsValid());
   MemMap source = MemMap::MapAnonymous("MapAnonymous-atomic-replace-source",
-                                       /* addr */ nullptr,
+                                       /* addr= */ nullptr,
                                        3 * kPageSize,
                                        PROT_WRITE | PROT_READ,
-                                       /* low_4gb */ false,
+                                       /* low_4gb= */ false,
                                        &error_msg);
   ASSERT_TRUE(source.IsValid());
   uint8_t* source_addr = source.Begin();
@@ -246,17 +246,17 @@
 TEST_F(MemMapTest, ReplaceMapping_MakeSmaller) {
   std::string error_msg;
   MemMap dest = MemMap::MapAnonymous("MapAnonymousEmpty-atomic-replace-dest",
-                                     /* addr */ nullptr,
+                                     /* addr= */ nullptr,
                                      3 * kPageSize,
                                      PROT_READ,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(dest.IsValid());
   MemMap source = MemMap::MapAnonymous("MapAnonymous-atomic-replace-source",
-                                       /* addr */ nullptr,
+                                       /* addr= */ nullptr,
                                        kPageSize,
                                        PROT_WRITE | PROT_READ,
-                                       /* low_4gb */ false,
+                                       /* low_4gb= */ false,
                                        &error_msg);
   ASSERT_TRUE(source.IsValid());
   uint8_t* source_addr = source.Begin();
@@ -285,11 +285,11 @@
   MemMap dest =
       MemMap::MapAnonymous(
           "MapAnonymousEmpty-atomic-replace-dest",
-          /* addr */ nullptr,
+          /* addr= */ nullptr,
           3 * kPageSize,  // Need to make it larger initially so we know there won't be mappings in
                           // the way we we move source.
           PROT_READ | PROT_WRITE,
-          /* low_4gb */ false,
+          /* low_4gb= */ false,
           &error_msg);
   ASSERT_TRUE(dest.IsValid());
   // Resize down to 1 page so we can remap the rest.
@@ -299,7 +299,7 @@
                                        dest.Begin() + kPageSize,
                                        2 * kPageSize,
                                        PROT_WRITE | PROT_READ,
-                                       /* low_4gb */ false,
+                                       /* low_4gb= */ false,
                                        &error_msg);
   ASSERT_TRUE(source.IsValid());
   ASSERT_EQ(dest.Begin() + kPageSize, source.Begin());
@@ -332,20 +332,20 @@
   CommonInit();
   std::string error_msg;
   MemMap map = MemMap::MapAnonymous("MapAnonymousEmpty",
-                                    /* addr */ nullptr,
+                                    /* addr= */ nullptr,
                                     0,
                                     PROT_READ,
-                                    /* low_4gb */ false,
+                                    /* low_4gb= */ false,
                                     &error_msg);
   ASSERT_FALSE(map.IsValid()) << error_msg;
   ASSERT_FALSE(error_msg.empty());
 
   error_msg.clear();
   map = MemMap::MapAnonymous("MapAnonymousNonEmpty",
-                             /* addr */ nullptr,
+                             /* addr= */ nullptr,
                              kPageSize,
                              PROT_READ | PROT_WRITE,
-                             /* low_4gb */ false,
+                             /* low_4gb= */ false,
                              &error_msg);
   ASSERT_TRUE(map.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -358,7 +358,7 @@
                                     reinterpret_cast<uint8_t*>(kPageSize),
                                     0x20000,
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ false,
+                                    /* low_4gb= */ false,
                                     nullptr);
   ASSERT_FALSE(map.IsValid());
 }
@@ -368,20 +368,20 @@
   CommonInit();
   std::string error_msg;
   MemMap map = MemMap::MapAnonymous("MapAnonymousEmpty",
-                                    /* addr */ nullptr,
+                                    /* addr= */ nullptr,
                                     0,
                                     PROT_READ,
-                                    /* low_4gb */ true,
+                                    /* low_4gb= */ true,
                                     &error_msg);
   ASSERT_FALSE(map.IsValid()) << error_msg;
   ASSERT_FALSE(error_msg.empty());
 
   error_msg.clear();
   map = MemMap::MapAnonymous("MapAnonymousNonEmpty",
-                             /* addr */ nullptr,
+                             /* addr= */ nullptr,
                              kPageSize,
                              PROT_READ | PROT_WRITE,
-                             /* low_4gb */ true,
+                             /* low_4gb= */ true,
                              &error_msg);
   ASSERT_TRUE(map.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -394,12 +394,12 @@
   constexpr size_t kMapSize = kPageSize;
   std::unique_ptr<uint8_t[]> data(new uint8_t[kMapSize]());
   ASSERT_TRUE(scratch_file.GetFile()->WriteFully(&data[0], kMapSize));
-  MemMap map = MemMap::MapFile(/*byte_count*/kMapSize,
+  MemMap map = MemMap::MapFile(/*byte_count=*/kMapSize,
                                PROT_READ,
                                MAP_PRIVATE,
                                scratch_file.GetFd(),
-                               /*start*/0,
-                               /*low_4gb*/true,
+                               /*start=*/0,
+                               /*low_4gb=*/true,
                                scratch_file.GetFilename().c_str(),
                                &error_msg);
   ASSERT_TRUE(map.IsValid()) << error_msg;
@@ -413,23 +413,23 @@
   CommonInit();
   std::string error_msg;
   // Find a valid address.
-  uint8_t* valid_address = GetValidMapAddress(kPageSize, /*low_4gb*/false);
+  uint8_t* valid_address = GetValidMapAddress(kPageSize, /*low_4gb=*/false);
   // Map at an address that should work, which should succeed.
   MemMap map0 = MemMap::MapAnonymous("MapAnonymous0",
                                      valid_address,
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(map0.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
   ASSERT_TRUE(map0.BaseBegin() == valid_address);
   // Map at an unspecified address, which should succeed.
   MemMap map1 = MemMap::MapAnonymous("MapAnonymous1",
-                                     /* addr */ nullptr,
+                                     /* addr= */ nullptr,
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(map1.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -439,7 +439,7 @@
                                      reinterpret_cast<uint8_t*>(map1.BaseBegin()),
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_FALSE(map2.IsValid()) << error_msg;
   ASSERT_TRUE(!error_msg.empty());
@@ -469,12 +469,12 @@
   memset(&data[2 * kPageSize], 0xaa, kPageSize);
   ASSERT_TRUE(scratch_file.GetFile()->WriteFully(&data[0], kMapSize));
 
-  MemMap map = MemMap::MapFile(/*byte_count*/kMapSize,
+  MemMap map = MemMap::MapFile(/*byte_count=*/kMapSize,
                                PROT_READ,
                                MAP_PRIVATE,
                                scratch_file.GetFd(),
-                               /*start*/0,
-                               /*low_4gb*/true,
+                               /*start=*/0,
+                               /*low_4gb=*/true,
                                scratch_file.GetFilename().c_str(),
                                &error_msg);
   ASSERT_TRUE(map.IsValid()) << error_msg;
@@ -522,7 +522,7 @@
                                reinterpret_cast<uint8_t*>(start_addr),
                                size,
                                PROT_READ | PROT_WRITE,
-                               /*low_4gb*/ true,
+                               /*low_4gb=*/ true,
                                &error_msg);
     if (map.IsValid()) {
       break;
@@ -543,7 +543,7 @@
                                     reinterpret_cast<uint8_t*>(ptr),
                                     2 * kPageSize,  // brings it over the top.
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ false,
+                                    /* low_4gb= */ false,
                                     &error_msg);
   ASSERT_FALSE(map.IsValid());
   ASSERT_FALSE(error_msg.empty());
@@ -558,7 +558,7 @@
                            reinterpret_cast<uint8_t*>(UINT64_C(0x100000000)),
                            kPageSize,
                            PROT_READ | PROT_WRITE,
-                           /* low_4gb */ true,
+                           /* low_4gb= */ true,
                            &error_msg);
   ASSERT_FALSE(map.IsValid());
   ASSERT_FALSE(error_msg.empty());
@@ -571,7 +571,7 @@
                                     reinterpret_cast<uint8_t*>(0xF0000000),
                                     0x20000000,
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ true,
+                                    /* low_4gb= */ true,
                                     &error_msg);
   ASSERT_FALSE(map.IsValid());
   ASSERT_FALSE(error_msg.empty());
@@ -585,9 +585,9 @@
                                     nullptr,
                                     0x20000,
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ false,
-                                    /* reuse */ false,
-                                    /* reservation */ nullptr,
+                                    /* low_4gb= */ false,
+                                    /* reuse= */ false,
+                                    /* reservation= */ nullptr,
                                     &error_msg);
   ASSERT_TRUE(map.IsValid());
   ASSERT_TRUE(error_msg.empty());
@@ -595,9 +595,9 @@
                                      reinterpret_cast<uint8_t*>(map.BaseBegin()),
                                      0x10000,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
-                                     /* reuse */ true,
-                                     /* reservation */ nullptr,
+                                     /* low_4gb= */ false,
+                                     /* reuse= */ true,
+                                     /* reservation= */ nullptr,
                                      &error_msg);
   ASSERT_TRUE(map2.IsValid());
   ASSERT_TRUE(error_msg.empty());
@@ -609,10 +609,10 @@
   constexpr size_t kNumPages = 3;
   // Map a 3-page mem map.
   MemMap map = MemMap::MapAnonymous("MapAnonymous0",
-                                    /* addr */ nullptr,
+                                    /* addr= */ nullptr,
                                     kPageSize * kNumPages,
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ false,
+                                    /* low_4gb= */ false,
                                     &error_msg);
   ASSERT_TRUE(map.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -627,7 +627,7 @@
                                      map_base,
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(map0.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -635,7 +635,7 @@
                                      map_base + kPageSize,
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(map1.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -643,7 +643,7 @@
                                      map_base + kPageSize * 2,
                                      kPageSize,
                                      PROT_READ | PROT_WRITE,
-                                     /* low_4gb */ false,
+                                     /* low_4gb= */ false,
                                      &error_msg);
   ASSERT_TRUE(map2.IsValid()) << error_msg;
   ASSERT_TRUE(error_msg.empty());
@@ -672,10 +672,10 @@
   const size_t page_size = static_cast<size_t>(kPageSize);
   // Map a region.
   MemMap m0 = MemMap::MapAnonymous("MemMapTest_AlignByTest_map0",
-                                   /* addr */ nullptr,
+                                   /* addr= */ nullptr,
                                    14 * page_size,
                                    PROT_READ | PROT_WRITE,
-                                   /* low_4gb */ false,
+                                   /* low_4gb= */ false,
                                    &error_msg);
   ASSERT_TRUE(m0.IsValid());
   uint8_t* base0 = m0.Begin();
@@ -778,10 +778,10 @@
   ASSERT_TRUE(scratch_file.GetFile()->WriteFully(&data[0], kMapSize));
 
   MemMap reservation = MemMap::MapAnonymous("Test reservation",
-                                            /* addr */ nullptr,
+                                            /* addr= */ nullptr,
                                             kMapSize,
                                             PROT_NONE,
-                                            /* low_4gb */ false,
+                                            /* low_4gb= */ false,
                                             &error_msg);
   ASSERT_TRUE(reservation.IsValid());
   ASSERT_TRUE(error_msg.empty());
@@ -791,14 +791,14 @@
   static_assert(kChunk1Size < kMapSize, "We want to split the reservation.");
   uint8_t* addr1 = reservation.Begin();
   MemMap map1 = MemMap::MapFileAtAddress(addr1,
-                                         /* byte_count */ kChunk1Size,
+                                         /* byte_count= */ kChunk1Size,
                                          PROT_READ,
                                          MAP_PRIVATE,
                                          scratch_file.GetFd(),
-                                         /* start */ 0,
-                                         /* low_4gb */ false,
+                                         /* start= */ 0,
+                                         /* low_4gb= */ false,
                                          scratch_file.GetFilename().c_str(),
-                                         /* reuse */ false,
+                                         /* reuse= */ false,
                                          &reservation,
                                          &error_msg);
   ASSERT_TRUE(map1.IsValid()) << error_msg;
@@ -816,10 +816,10 @@
   uint8_t* addr2 = reservation.Begin();
   MemMap map2 = MemMap::MapAnonymous("MiddleReservation",
                                      addr2,
-                                     /* byte_count */ kChunk2Size,
+                                     /* byte_count= */ kChunk2Size,
                                      PROT_READ,
-                                     /* low_4gb */ false,
-                                     /* reuse */ false,
+                                     /* low_4gb= */ false,
+                                     /* reuse= */ false,
                                      &reservation,
                                      &error_msg);
   ASSERT_TRUE(map2.IsValid()) << error_msg;
@@ -833,14 +833,14 @@
   const size_t kChunk3Size = reservation.Size() - 1u;
   uint8_t* addr3 = reservation.Begin();
   MemMap map3 = MemMap::MapFileAtAddress(addr3,
-                                         /* byte_count */ kChunk3Size,
+                                         /* byte_count= */ kChunk3Size,
                                          PROT_READ,
                                          MAP_PRIVATE,
                                          scratch_file.GetFd(),
-                                         /* start */ dchecked_integral_cast<size_t>(addr3 - addr1),
-                                         /* low_4gb */ false,
+                                         /* start= */ dchecked_integral_cast<size_t>(addr3 - addr1),
+                                         /* low_4gb= */ false,
                                          scratch_file.GetFilename().c_str(),
-                                         /* reuse */ false,
+                                         /* reuse= */ false,
                                          &reservation,
                                          &error_msg);
   ASSERT_TRUE(map3.IsValid()) << error_msg;
diff --git a/libartbase/base/scoped_flock.cc b/libartbase/base/scoped_flock.cc
index d679328..beee501 100644
--- a/libartbase/base/scoped_flock.cc
+++ b/libartbase/base/scoped_flock.cc
@@ -40,7 +40,7 @@
     // to acquire a lock, and the unlock / close in the corresponding
     // destructor. Callers should explicitly flush files they're writing to if
     // that is the desired behaviour.
-    std::unique_ptr<File> file(OS::OpenFileWithFlags(filename, flags, false /* check_usage */));
+    std::unique_ptr<File> file(OS::OpenFileWithFlags(filename, flags, /* auto_flush= */ false));
     if (file.get() == nullptr) {
       *error_msg = StringPrintf("Failed to open file '%s': %s", filename, strerror(errno));
       return nullptr;
@@ -98,7 +98,7 @@
   // destructor. Callers should explicitly flush files they're writing to if
   // that is the desired behaviour.
   ScopedFlock locked_file(
-      new LockedFile(dup(fd), path, false /* check_usage */, read_only_mode));
+      new LockedFile(dup(fd), path, /* check_usage= */ false, read_only_mode));
   if (locked_file->Fd() == -1) {
     *error_msg = StringPrintf("Failed to duplicate open file '%s': %s",
                               locked_file->GetPath().c_str(), strerror(errno));
diff --git a/libartbase/base/scoped_flock_test.cc b/libartbase/base/scoped_flock_test.cc
index f9ac1e0..22356cd 100644
--- a/libartbase/base/scoped_flock_test.cc
+++ b/libartbase/base/scoped_flock_test.cc
@@ -38,7 +38,7 @@
     // Attempt to acquire a second lock on the same file. This must fail.
     ScopedFlock second_lock = LockedFile::Open(scratch_file.GetFilename().c_str(),
                                                O_RDONLY,
-                                               /* block */ false,
+                                               /* block= */ false,
                                                &error_msg);
     ASSERT_TRUE(second_lock.get() == nullptr);
     ASSERT_TRUE(!error_msg.empty());
diff --git a/libartbase/base/zip_archive.cc b/libartbase/base/zip_archive.cc
index 174d227..f5761cf 100644
--- a/libartbase/base/zip_archive.cc
+++ b/libartbase/base/zip_archive.cc
@@ -75,10 +75,10 @@
   name += " extracted in memory from ";
   name += zip_filename;
   MemMap map = MemMap::MapAnonymous(name.c_str(),
-                                    /* addr */ nullptr,
+                                    /* addr= */ nullptr,
                                     GetUncompressedLength(),
                                     PROT_READ | PROT_WRITE,
-                                    /* low_4gb */ false,
+                                    /* low_4gb= */ false,
                                     error_msg);
   if (!map.IsValid()) {
     DCHECK(!error_msg->empty());
@@ -138,7 +138,7 @@
                       MAP_PRIVATE,
                       zip_fd,
                       offset,
-                      /* low_4gb */ false,
+                      /* low_4gb= */ false,
                       name.c_str(),
                       error_msg);
 
diff --git a/libdexfile/dex/art_dex_file_loader.cc b/libdexfile/dex/art_dex_file_loader.cc
index 4f73967..20a519b 100644
--- a/libdexfile/dex/art_dex_file_loader.cc
+++ b/libdexfile/dex/art_dex_file_loader.cc
@@ -95,7 +95,7 @@
   File fd;
   if (zip_fd != -1) {
      if (ReadMagicAndReset(zip_fd, &magic, error_msg)) {
-       fd = File(DupCloexec(zip_fd), false /* check_usage */);
+       fd = File(DupCloexec(zip_fd), /* check_usage= */ false);
      }
   } else {
     fd = OpenAndReadMagic(filename, &magic, error_msg);
@@ -142,9 +142,9 @@
   if (IsMagicValid(magic)) {
     std::unique_ptr<const DexFile> dex_file(OpenFile(fd.Release(),
                                                      filename,
-                                                     /* verify */ false,
-                                                     /* verify_checksum */ false,
-                                                     /* mmap_shared */ false,
+                                                     /* verify= */ false,
+                                                     /* verify_checksum= */ false,
+                                                     /* mmap_shared= */ false,
                                                      error_msg));
     if (dex_file == nullptr) {
       return false;
@@ -167,16 +167,16 @@
   ScopedTrace trace(std::string("Open dex file from RAM ") + location);
   return OpenCommon(base,
                     size,
-                    /*data_base*/ nullptr,
-                    /*data_size*/ 0u,
+                    /*data_base=*/ nullptr,
+                    /*data_size=*/ 0u,
                     location,
                     location_checksum,
                     oat_dex_file,
                     verify,
                     verify_checksum,
                     error_msg,
-                    /*container*/ nullptr,
-                    /*verify_result*/ nullptr);
+                    /*container=*/ nullptr,
+                    /*verify_result=*/ nullptr);
 }
 
 std::unique_ptr<const DexFile> ArtDexFileLoader::Open(const std::string& location,
@@ -199,8 +199,8 @@
   uint8_t* begin = map.Begin();
   std::unique_ptr<DexFile> dex_file = OpenCommon(begin,
                                                  size,
-                                                 /*data_base*/ nullptr,
-                                                 /*data_size*/ 0u,
+                                                 /*data_base=*/ nullptr,
+                                                 /*data_size=*/ 0u,
                                                  location,
                                                  location_checksum,
                                                  kNoOatDexFile,
@@ -208,7 +208,7 @@
                                                  verify_checksum,
                                                  error_msg,
                                                  std::make_unique<MemMapContainer>(std::move(map)),
-                                                 /*verify_result*/ nullptr);
+                                                 /*verify_result=*/ nullptr);
   // Opening CompactDex is only supported from vdex files.
   if (dex_file != nullptr && dex_file->IsCompactDexFile()) {
     *error_msg = StringPrintf("Opening CompactDex file '%s' is only supported from vdex files",
@@ -240,7 +240,7 @@
                                                      location,
                                                      verify,
                                                      verify_checksum,
-                                                     /* mmap_shared */ false,
+                                                     /* mmap_shared= */ false,
                                                      error_msg));
     if (dex_file.get() != nullptr) {
       dex_files->push_back(std::move(dex_file));
@@ -290,7 +290,7 @@
   CHECK(!location.empty());
   MemMap map;
   {
-    File delayed_close(fd, /* check_usage */ false);
+    File delayed_close(fd, /* check_usage= */ false);
     struct stat sbuf;
     memset(&sbuf, 0, sizeof(sbuf));
     if (fstat(fd, &sbuf) == -1) {
@@ -308,7 +308,7 @@
                           mmap_shared ? MAP_SHARED : MAP_PRIVATE,
                           fd,
                           0,
-                          /*low_4gb*/false,
+                          /*low_4gb=*/false,
                           location.c_str(),
                           error_msg);
     if (!map.IsValid()) {
@@ -330,8 +330,8 @@
 
   std::unique_ptr<DexFile> dex_file = OpenCommon(begin,
                                                  size,
-                                                 /*data_base*/ nullptr,
-                                                 /*data_size*/ 0u,
+                                                 /*data_base=*/ nullptr,
+                                                 /*data_size=*/ 0u,
                                                  location,
                                                  dex_header->checksum_,
                                                  kNoOatDexFile,
@@ -339,7 +339,7 @@
                                                  verify_checksum,
                                                  error_msg,
                                                  std::make_unique<MemMapContainer>(std::move(map)),
-                                                 /*verify_result*/ nullptr);
+                                                 /*verify_result=*/ nullptr);
 
   // Opening CompactDex is only supported from vdex files.
   if (dex_file != nullptr && dex_file->IsCompactDexFile()) {
@@ -407,8 +407,8 @@
   size_t size = map.Size();
   std::unique_ptr<DexFile> dex_file = OpenCommon(begin,
                                                  size,
-                                                 /*data_base*/ nullptr,
-                                                 /*data_size*/ 0u,
+                                                 /*data_base=*/ nullptr,
+                                                 /*data_size=*/ 0u,
                                                  location,
                                                  zip_entry->GetCrc32(),
                                                  kNoOatDexFile,
diff --git a/libdexfile/dex/art_dex_file_loader_test.cc b/libdexfile/dex/art_dex_file_loader_test.cc
index a7d0363..f7a2062 100644
--- a/libdexfile/dex/art_dex_file_loader_test.cc
+++ b/libdexfile/dex/art_dex_file_loader_test.cc
@@ -217,9 +217,9 @@
 
     std::string plain_method = std::string("GetMethodSignature.") + r.name;
     ASSERT_EQ(plain_method,
-              raw->PrettyMethod(cur_method->GetIndex(), /* with_signature */ false));
+              raw->PrettyMethod(cur_method->GetIndex(), /* with_signature= */ false));
     ASSERT_EQ(r.pretty_method,
-              raw->PrettyMethod(cur_method->GetIndex(), /* with_signature */ true));
+              raw->PrettyMethod(cur_method->GetIndex(), /* with_signature= */ true));
   }
 }
 
@@ -332,8 +332,8 @@
   std::string error_msg;
   bool success = loader.Open(data_location_path.c_str(),
                              data_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
@@ -360,8 +360,8 @@
   std::string error_msg;
   bool success = loader.Open(system_location_path.c_str(),
                              system_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
@@ -388,8 +388,8 @@
   std::string error_msg;
   bool success = loader.Open(system_framework_location_path.c_str(),
                              system_framework_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
@@ -416,8 +416,8 @@
   std::string error_msg;
   bool success = loader.Open(data_multi_location_path.c_str(),
                              data_multi_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
@@ -445,8 +445,8 @@
   std::string error_msg;
   bool success = loader.Open(system_multi_location_path.c_str(),
                              system_multi_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
@@ -474,8 +474,8 @@
   std::string error_msg;
   bool success = loader.Open(system_framework_multi_location_path.c_str(),
                              system_framework_multi_location_path,
-                             /* verify */ false,
-                             /* verify_checksum */ false,
+                             /* verify= */ false,
+                             /* verify_checksum= */ false,
                              &error_msg,
                              &dex_files);
   ASSERT_TRUE(success) << error_msg;
diff --git a/libdexfile/dex/code_item_accessors_test.cc b/libdexfile/dex/code_item_accessors_test.cc
index 2bb4dde..87f4bab 100644
--- a/libdexfile/dex/code_item_accessors_test.cc
+++ b/libdexfile/dex/code_item_accessors_test.cc
@@ -45,10 +45,10 @@
   std::unique_ptr<const DexFile> dex(dex_file_loader.Open(data->data(),
                                                           data->size(),
                                                           "location",
-                                                          /*location_checksum*/ 123,
-                                                          /*oat_dex_file*/nullptr,
-                                                          /*verify*/false,
-                                                          /*verify_checksum*/false,
+                                                          /*location_checksum=*/ 123,
+                                                          /*oat_dex_file=*/nullptr,
+                                                          /*verify=*/false,
+                                                          /*verify_checksum=*/false,
                                                           &error_msg));
   CHECK(dex != nullptr) << error_msg;
   return dex;
@@ -56,11 +56,11 @@
 
 TEST(CodeItemAccessorsTest, TestDexInstructionsAccessor) {
   std::vector<uint8_t> standard_dex_data;
-  std::unique_ptr<const DexFile> standard_dex(CreateFakeDex(/*compact_dex*/false,
+  std::unique_ptr<const DexFile> standard_dex(CreateFakeDex(/*compact_dex=*/false,
                                                             &standard_dex_data));
   ASSERT_TRUE(standard_dex != nullptr);
   std::vector<uint8_t> compact_dex_data;
-  std::unique_ptr<const DexFile> compact_dex(CreateFakeDex(/*compact_dex*/true,
+  std::unique_ptr<const DexFile> compact_dex(CreateFakeDex(/*compact_dex=*/true,
                                                            &compact_dex_data));
   ASSERT_TRUE(compact_dex != nullptr);
   static constexpr uint16_t kRegisterSize = 2;
diff --git a/libdexfile/dex/compact_dex_file.cc b/libdexfile/dex/compact_dex_file.cc
index 302b59e..641c523 100644
--- a/libdexfile/dex/compact_dex_file.cc
+++ b/libdexfile/dex/compact_dex_file.cc
@@ -100,7 +100,7 @@
               location_checksum,
               oat_dex_file,
               std::move(container),
-              /*is_compact_dex*/ true),
+              /*is_compact_dex=*/ true),
       debug_info_offsets_(DataBegin() + GetHeader().debug_info_offsets_pos_,
                           GetHeader().debug_info_base_,
                           GetHeader().debug_info_offsets_table_offset_) {}
diff --git a/libdexfile/dex/compact_dex_file_test.cc b/libdexfile/dex/compact_dex_file_test.cc
index 517c587..799967e 100644
--- a/libdexfile/dex/compact_dex_file_test.cc
+++ b/libdexfile/dex/compact_dex_file_test.cc
@@ -68,11 +68,11 @@
     uint16_t out_outs_size;
     uint16_t out_tries_size;
     uint32_t out_insns_size_in_code_units;
-    code_item->DecodeFields</*kDecodeOnlyInstructionCount*/false>(&out_insns_size_in_code_units,
-                                                                  &out_registers_size,
-                                                                  &out_ins_size,
-                                                                  &out_outs_size,
-                                                                  &out_tries_size);
+    code_item->DecodeFields</*kDecodeOnlyInstructionCount=*/false>(&out_insns_size_in_code_units,
+                                                                   &out_registers_size,
+                                                                   &out_ins_size,
+                                                                   &out_outs_size,
+                                                                   &out_tries_size);
     ASSERT_EQ(registers_size, out_registers_size);
     ASSERT_EQ(ins_size, out_ins_size);
     ASSERT_EQ(outs_size, out_outs_size);
@@ -80,11 +80,11 @@
     ASSERT_EQ(insns_size_in_code_units, out_insns_size_in_code_units);
 
     ++out_insns_size_in_code_units;  // Force value to change.
-    code_item->DecodeFields</*kDecodeOnlyInstructionCount*/true>(&out_insns_size_in_code_units,
-                                                                 /*registers_size*/ nullptr,
-                                                                 /*ins_size*/ nullptr,
-                                                                 /*outs_size*/ nullptr,
-                                                                 /*tries_size*/ nullptr);
+    code_item->DecodeFields</*kDecodeOnlyInstructionCount=*/true>(&out_insns_size_in_code_units,
+                                                                  /*registers_size=*/ nullptr,
+                                                                  /*ins_size=*/ nullptr,
+                                                                  /*outs_size=*/ nullptr,
+                                                                  /*tries_size=*/ nullptr);
     ASSERT_EQ(insns_size_in_code_units, out_insns_size_in_code_units);
   };
   static constexpr uint32_t kMax32 = std::numeric_limits<uint32_t>::max();
diff --git a/libdexfile/dex/dex_file_loader.cc b/libdexfile/dex/dex_file_loader.cc
index 4aafc66..3667c8c 100644
--- a/libdexfile/dex/dex_file_loader.cc
+++ b/libdexfile/dex/dex_file_loader.cc
@@ -222,16 +222,16 @@
                                                    std::string* error_msg) const {
   return OpenCommon(base,
                     size,
-                    /*data_base*/ nullptr,
-                    /*data_size*/ 0,
+                    /*data_base=*/ nullptr,
+                    /*data_size=*/ 0,
                     location,
                     location_checksum,
                     oat_dex_file,
                     verify,
                     verify_checksum,
                     error_msg,
-                    /*container*/ nullptr,
-                    /*verify_result*/ nullptr);
+                    /*container=*/ nullptr,
+                    /*verify_result=*/ nullptr);
 }
 
 std::unique_ptr<const DexFile> DexFileLoader::OpenWithDataSection(
@@ -255,8 +255,8 @@
                     verify,
                     verify_checksum,
                     error_msg,
-                    /*container*/ nullptr,
-                    /*verify_result*/ nullptr);
+                    /*container=*/ nullptr,
+                    /*verify_result=*/ nullptr);
 }
 
 bool DexFileLoader::OpenAll(
@@ -290,7 +290,7 @@
                                                  size,
                                                  location,
                                                  dex_header->checksum_,
-                                                 /*oat_dex_file*/ nullptr,
+                                                 /*oat_dex_file=*/ nullptr,
                                                  verify,
                                                  verify_checksum,
                                                  error_msg));
@@ -410,11 +410,11 @@
   std::unique_ptr<const DexFile> dex_file = OpenCommon(
       map.data(),
       map.size(),
-      /*data_base*/ nullptr,
-      /*data_size*/ 0u,
+      /*data_base=*/ nullptr,
+      /*data_size=*/ 0u,
       location,
       zip_entry->GetCrc32(),
-      /*oat_dex_file*/ nullptr,
+      /*oat_dex_file=*/ nullptr,
       verify,
       verify_checksum,
       error_msg,
diff --git a/libdexfile/dex/dex_file_loader_test.cc b/libdexfile/dex/dex_file_loader_test.cc
index 5378617..9c61d1a 100644
--- a/libdexfile/dex/dex_file_loader_test.cc
+++ b/libdexfile/dex/dex_file_loader_test.cc
@@ -221,7 +221,7 @@
   bool success = dex_file_loader.OpenAll(dex_bytes->data(),
                                          dex_bytes->size(),
                                          location,
-                                         /* verify */ true,
+                                         /* verify= */ true,
                                          kVerifyChecksum,
                                          error_code,
                                          error_msg,
@@ -256,9 +256,9 @@
                                                                dex_bytes->size(),
                                                                location,
                                                                location_checksum,
-                                                               /* oat_dex_file */ nullptr,
-                                                               /* verify */ true,
-                                                               /* verify_checksum */ true,
+                                                               /* oat_dex_file= */ nullptr,
+                                                               /* verify= */ true,
+                                                               /* verify_checksum= */ true,
                                                                &error_message));
   if (expect_success) {
     CHECK(dex_file != nullptr) << error_message;
@@ -348,7 +348,7 @@
   ASSERT_FALSE(dex_file_loader.OpenAll(dex_bytes.data(),
                                        dex_bytes.size(),
                                        kLocationString,
-                                       /* verify */ true,
+                                       /* verify= */ true,
                                        kVerifyChecksum,
                                        &error_code,
                                        &error_msg,
@@ -367,7 +367,7 @@
   ASSERT_FALSE(dex_file_loader.OpenAll(dex_bytes.data(),
                                        dex_bytes.size(),
                                        kLocationString,
-                                       /* verify */ true,
+                                       /* verify= */ true,
                                        kVerifyChecksum,
                                        &error_code,
                                        &error_msg,
@@ -386,7 +386,7 @@
   ASSERT_FALSE(dex_file_loader.OpenAll(dex_bytes.data(),
                                        dex_bytes.size(),
                                        kLocationString,
-                                       /* verify */ true,
+                                       /* verify= */ true,
                                        kVerifyChecksum,
                                        &error_code,
                                        &error_msg,
diff --git a/libdexfile/dex/dex_file_verifier.cc b/libdexfile/dex/dex_file_verifier.cc
index f273c84..499a89b 100644
--- a/libdexfile/dex/dex_file_verifier.cc
+++ b/libdexfile/dex/dex_file_verifier.cc
@@ -341,42 +341,43 @@
   bool result =
       CheckValidOffsetAndSize(header_->link_off_,
                               header_->link_size_,
-                              0 /* unaligned */,
+                              /* alignment= */ 0,
                               "link") &&
       CheckValidOffsetAndSize(header_->map_off_,
                               header_->map_off_,
-                              4,
+                              /* alignment= */ 4,
                               "map") &&
       CheckValidOffsetAndSize(header_->string_ids_off_,
                               header_->string_ids_size_,
-                              4,
+                              /* alignment= */ 4,
                               "string-ids") &&
       CheckValidOffsetAndSize(header_->type_ids_off_,
                               header_->type_ids_size_,
-                              4,
+                              /* alignment= */ 4,
                               "type-ids") &&
       CheckSizeLimit(header_->type_ids_size_, DexFile::kDexNoIndex16, "type-ids") &&
       CheckValidOffsetAndSize(header_->proto_ids_off_,
                               header_->proto_ids_size_,
-                              4,
+                              /* alignment= */ 4,
                               "proto-ids") &&
       CheckSizeLimit(header_->proto_ids_size_, DexFile::kDexNoIndex16, "proto-ids") &&
       CheckValidOffsetAndSize(header_->field_ids_off_,
                               header_->field_ids_size_,
-                              4,
+                              /* alignment= */ 4,
                               "field-ids") &&
       CheckValidOffsetAndSize(header_->method_ids_off_,
                               header_->method_ids_size_,
-                              4,
+                              /* alignment= */ 4,
                               "method-ids") &&
       CheckValidOffsetAndSize(header_->class_defs_off_,
                               header_->class_defs_size_,
-                              4,
+                              /* alignment= */ 4,
                               "class-defs") &&
       CheckValidOffsetAndSize(header_->data_off_,
                               header_->data_size_,
-                              0,  // Unaligned, spec doesn't talk about it, even though size
-                                  // is supposed to be a multiple of 4.
+                              // Unaligned, spec doesn't talk about it, even though size
+                              // is supposed to be a multiple of 4.
+                              /* alignment= */ 0,
                               "data");
   return result;
 }
@@ -1197,7 +1198,7 @@
   ClassAccessor::Method method(*dex_file_, field.ptr_pos_);
   if (!CheckIntraClassDataItemMethods(&method,
                                       accessor.NumDirectMethods(),
-                                      nullptr /* direct_it */,
+                                      /* direct_method= */ nullptr,
                                       0u,
                                       &have_class,
                                       &class_type_index,
diff --git a/libdexfile/dex/dex_file_verifier_test.cc b/libdexfile/dex/dex_file_verifier_test.cc
index a22a457..c3180f0 100644
--- a/libdexfile/dex/dex_file_verifier_test.cc
+++ b/libdexfile/dex/dex_file_verifier_test.cc
@@ -107,8 +107,8 @@
   bool success = dex_file_loader.OpenAll(dex_bytes.get(),
                                          length,
                                          location,
-                                         /* verify */ true,
-                                         /* verify_checksum */ true,
+                                         /* verify= */ true,
+                                         /* verify_checksum= */ true,
                                          &error_code,
                                          error_msg,
                                          &tmp);
@@ -1621,13 +1621,13 @@
                                       dex_file->Begin(),
                                       dex_file->Size(),
                                        "good checksum, no verify",
-                                      /*verify_checksum*/ false,
+                                      /*verify_checksum=*/ false,
                                       &error_msg));
   EXPECT_TRUE(DexFileVerifier::Verify(dex_file.get(),
                                       dex_file->Begin(),
                                       dex_file->Size(),
                                       "good checksum, verify",
-                                      /*verify_checksum*/ true,
+                                      /*verify_checksum=*/ true,
                                       &error_msg));
 
   // Bad checksum: !verify_checksum passes verify_checksum fails.
@@ -1638,13 +1638,13 @@
                                       dex_file->Begin(),
                                       dex_file->Size(),
                                       "bad checksum, no verify",
-                                      /*verify_checksum*/ false,
+                                      /*verify_checksum=*/ false,
                                       &error_msg));
   EXPECT_FALSE(DexFileVerifier::Verify(dex_file.get(),
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad checksum, verify",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
   EXPECT_NE(error_msg.find("Bad checksum"), std::string::npos) << error_msg;
 }
@@ -1691,7 +1691,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad static method name",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -1735,7 +1735,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad virtual method name",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -1779,7 +1779,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad clinit signature",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -1823,7 +1823,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad clinit signature",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -1860,7 +1860,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad init signature",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -2063,7 +2063,7 @@
                                         dex_file->Begin(),
                                         dex_file->Size(),
                                         "good checksum, verify",
-                                        /*verify_checksum*/ true,
+                                        /*verify_checksum=*/ true,
                                         &error_msg));
     // TODO(oth): Test corruptions (b/35308502)
   }
@@ -2110,7 +2110,7 @@
                                        dex_file->Begin(),
                                        dex_file->Size(),
                                        "bad static field initial values array",
-                                       /*verify_checksum*/ true,
+                                       /*verify_checksum=*/ true,
                                        &error_msg));
 }
 
@@ -2166,7 +2166,7 @@
                                       dex_file->Begin(),
                                       dex_file->Size(),
                                       "good static field initial values array",
-                                      /*verify_checksum*/ true,
+                                      /*verify_checksum=*/ true,
                                       &error_msg));
 }
 
diff --git a/libdexfile/dex/dex_instruction_test.cc b/libdexfile/dex/dex_instruction_test.cc
index 6ce9dba..02400f4 100644
--- a/libdexfile/dex/dex_instruction_test.cc
+++ b/libdexfile/dex/dex_instruction_test.cc
@@ -71,10 +71,13 @@
 
 TEST(Instruction, PropertiesOf45cc) {
   uint16_t instruction[4];
-  Build45cc(4u /* num_vregs */, 16u /* method_idx */, 32u /* proto_idx */,
-            0xcafe /* arg_regs */, instruction);
+  Build45cc(/* num_args= */ 4u,
+            /* method_idx= */ 16u,
+            /* proto_idx= */ 32u,
+            /* arg_regs= */ 0xcafe,
+            instruction);
 
-  DexInstructionIterator ins(instruction, /*dex_pc*/ 0u);
+  DexInstructionIterator ins(instruction, /*dex_pc=*/ 0u);
   ASSERT_EQ(4u, ins->SizeInCodeUnits());
 
   ASSERT_TRUE(ins->HasVRegA());
@@ -106,10 +109,13 @@
 
 TEST(Instruction, PropertiesOf4rcc) {
   uint16_t instruction[4];
-  Build4rcc(4u /* num_vregs */, 16u /* method_idx */, 32u /* proto_idx */,
-            0xcafe /* arg_regs */, instruction);
+  Build4rcc(/* num_args= */ 4u,
+            /* method_idx= */ 16u,
+            /* proto_idx= */ 32u,
+            /* arg_regs_start= */ 0xcafe,
+            instruction);
 
-  DexInstructionIterator ins(instruction, /*dex_pc*/ 0u);
+  DexInstructionIterator ins(instruction, /*dex_pc=*/ 0u);
   ASSERT_EQ(4u, ins->SizeInCodeUnits());
 
   ASSERT_TRUE(ins->HasVRegA());
diff --git a/libdexfile/dex/type_lookup_table.cc b/libdexfile/dex/type_lookup_table.cc
index 00ec358..7d80a2e 100644
--- a/libdexfile/dex/type_lookup_table.cc
+++ b/libdexfile/dex/type_lookup_table.cc
@@ -94,7 +94,7 @@
   DCHECK_ALIGNED(raw_data, alignof(Entry));
   const Entry* entries = reinterpret_cast<const Entry*>(raw_data);
   size_t mask_bits = CalculateMaskBits(num_class_defs);
-  return TypeLookupTable(dex_data_pointer, mask_bits, entries, /* owned_entries */ nullptr);
+  return TypeLookupTable(dex_data_pointer, mask_bits, entries, /* owned_entries= */ nullptr);
 }
 
 uint32_t TypeLookupTable::Lookup(const char* str, uint32_t hash) const {
diff --git a/libprofile/profile/profile_compilation_info.cc b/libprofile/profile/profile_compilation_info.cc
index 2ebde5e..6bd49a4 100644
--- a/libprofile/profile/profile_compilation_info.cc
+++ b/libprofile/profile/profile_compilation_info.cc
@@ -190,8 +190,8 @@
 bool ProfileCompilationInfo::MergeWith(const std::string& filename) {
   std::string error;
   int flags = O_RDONLY | O_NOFOLLOW | O_CLOEXEC;
-  ScopedFlock profile_file = LockedFile::Open(filename.c_str(), flags,
-      /*block*/false, &error);
+  ScopedFlock profile_file =
+      LockedFile::Open(filename.c_str(), flags, /*block=*/false, &error);
 
   if (profile_file.get() == nullptr) {
     LOG(WARNING) << "Couldn't lock the profile file " << filename << ": " << error;
@@ -221,8 +221,8 @@
   // There's no need to fsync profile data right away. We get many chances
   // to write it again in case something goes wrong. We can rely on a simple
   // close(), no sync, and let to the kernel decide when to write to disk.
-  ScopedFlock profile_file = LockedFile::Open(filename.c_str(), flags,
-                                              /*block*/false, &error);
+  ScopedFlock profile_file =
+      LockedFile::Open(filename.c_str(), flags, /*block=*/false, &error);
 
   if (profile_file.get() == nullptr) {
     LOG(WARNING) << "Couldn't lock the profile file " << filename << ": " << error;
@@ -259,8 +259,8 @@
   // There's no need to fsync profile data right away. We get many chances
   // to write it again in case something goes wrong. We can rely on a simple
   // close(), no sync, and let to the kernel decide when to write to disk.
-  ScopedFlock profile_file = LockedFile::Open(filename.c_str(), flags,
-                                              /*block*/false, &error);
+  ScopedFlock profile_file =
+      LockedFile::Open(filename.c_str(), flags, /*block=*/false, &error);
   if (profile_file.get() == nullptr) {
     LOG(WARNING) << "Couldn't lock the profile file " << filename << ": " << error;
     return false;
@@ -1393,8 +1393,8 @@
     // verify_checksum is false because we want to differentiate between a missing dex data and
     // a mismatched checksum.
     const DexFileData* dex_data = FindDexData(other_profile_line_header.dex_location,
-                                              0u,
-                                              false /* verify_checksum */);
+                                              /* checksum= */ 0u,
+                                              /* verify_checksum= */ false);
     if ((dex_data != nullptr) && (dex_data->checksum != other_profile_line_header.checksum)) {
       LOG(WARNING) << "Checksum mismatch for dex " << other_profile_line_header.dex_location;
       return false;
@@ -1481,8 +1481,8 @@
     // verify_checksum is false because we want to differentiate between a missing dex data and
     // a mismatched checksum.
     const DexFileData* dex_data = FindDexData(other_dex_data->profile_key,
-                                              0u,
-                                              /* verify_checksum */ false);
+                                              /* checksum= */ 0u,
+                                              /* verify_checksum= */ false);
     if ((dex_data != nullptr) && (dex_data->checksum != other_dex_data->checksum)) {
       LOG(WARNING) << "Checksum mismatch for dex " << other_dex_data->profile_key;
       return false;
@@ -1829,7 +1829,7 @@
       flags |= ((m & 1) != 0) ? MethodHotness::kFlagPostStartup : MethodHotness::kFlagStartup;
       info.AddMethodIndex(static_cast<MethodHotness::Flag>(flags),
                           profile_key,
-                          /*method_idx*/ 0,
+                          /*checksum=*/ 0,
                           method_idx,
                           max_method);
     }
@@ -1975,20 +1975,20 @@
                                                            MethodHotness::Flag flags) {
   DCHECK_LT(index, num_method_ids);
   if ((flags & MethodHotness::kFlagStartup) != 0) {
-    method_bitmap.StoreBit(MethodBitIndex(/*startup*/ true, index), /*value*/ true);
+    method_bitmap.StoreBit(MethodBitIndex(/*startup=*/ true, index), /*value=*/ true);
   }
   if ((flags & MethodHotness::kFlagPostStartup) != 0) {
-    method_bitmap.StoreBit(MethodBitIndex(/*startup*/ false, index), /*value*/ true);
+    method_bitmap.StoreBit(MethodBitIndex(/*startup=*/ false, index), /*value=*/ true);
   }
 }
 
 ProfileCompilationInfo::MethodHotness ProfileCompilationInfo::DexFileData::GetHotnessInfo(
     uint32_t dex_method_index) const {
   MethodHotness ret;
-  if (method_bitmap.LoadBit(MethodBitIndex(/*startup*/ true, dex_method_index))) {
+  if (method_bitmap.LoadBit(MethodBitIndex(/*startup=*/ true, dex_method_index))) {
     ret.AddFlag(MethodHotness::kFlagStartup);
   }
-  if (method_bitmap.LoadBit(MethodBitIndex(/*startup*/ false, dex_method_index))) {
+  if (method_bitmap.LoadBit(MethodBitIndex(/*startup=*/ false, dex_method_index))) {
     ret.AddFlag(MethodHotness::kFlagPostStartup);
   }
   auto it = method_map.find(dex_method_index);
diff --git a/libprofile/profile/profile_compilation_info_test.cc b/libprofile/profile/profile_compilation_info_test.cc
index 417abaa..a2bfe50 100644
--- a/libprofile/profile/profile_compilation_info_test.cc
+++ b/libprofile/profile/profile_compilation_info_test.cc
@@ -43,22 +43,22 @@
  protected:
   bool AddMethod(const std::string& dex_location,
                  uint32_t checksum,
-                 uint16_t method_index,
+                 uint16_t method_idx,
                  ProfileCompilationInfo* info) {
     return info->AddMethodIndex(Hotness::kFlagHot,
                                 dex_location,
                                 checksum,
-                                method_index,
+                                method_idx,
                                 kMaxMethodIds);
   }
 
   bool AddMethod(const std::string& dex_location,
                  uint32_t checksum,
-                 uint16_t method_index,
+                 uint16_t method_idx,
                  const ProfileCompilationInfo::OfflineProfileMethodInfo& pmi,
                  ProfileCompilationInfo* info) {
     return info->AddMethod(
-        dex_location, checksum, method_index, kMaxMethodIds, pmi, Hotness::kFlagPostStartup);
+        dex_location, checksum, method_idx, kMaxMethodIds, pmi, Hotness::kFlagPostStartup);
   }
 
   bool AddClass(const std::string& dex_location,
@@ -115,9 +115,9 @@
 
     ProfileCompilationInfo::OfflineProfileMethodInfo pmi(ic_map);
 
-    pmi.dex_references.emplace_back("dex_location1", /* checksum */1, kMaxMethodIds);
-    pmi.dex_references.emplace_back("dex_location2", /* checksum */2, kMaxMethodIds);
-    pmi.dex_references.emplace_back("dex_location3", /* checksum */3, kMaxMethodIds);
+    pmi.dex_references.emplace_back("dex_location1", /* checksum= */1, kMaxMethodIds);
+    pmi.dex_references.emplace_back("dex_location2", /* checksum= */2, kMaxMethodIds);
+    pmi.dex_references.emplace_back("dex_location3", /* checksum= */3, kMaxMethodIds);
 
     return pmi;
   }
@@ -148,8 +148,8 @@
     ScratchFile profile;
     ProfileCompilationInfo saved_info;
     for (uint16_t i = 0; i < 10; i++) {
-      ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &saved_info));
-      ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, /* method_idx */ i, &saved_info));
+      ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &saved_info));
+      ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, /* method_idx= */ i, &saved_info));
     }
     ASSERT_TRUE(saved_info.Save(GetFd(profile)));
     ASSERT_EQ(0, profile.GetFile()->Flush());
@@ -207,8 +207,8 @@
   ProfileCompilationInfo saved_info;
   // Save a few methods.
   for (uint16_t i = 0; i < 10; i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, /* method_idx */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, /* method_idx= */ i, &saved_info));
   }
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
   ASSERT_EQ(0, profile.GetFile()->Flush());
@@ -221,9 +221,9 @@
 
   // Save more methods.
   for (uint16_t i = 0; i < 100; i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, /* method_idx */ i, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location3", /* checksum */ 3, /* method_idx */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, /* method_idx= */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location3", /* checksum= */ 3, /* method_idx= */ i, &saved_info));
   }
   ASSERT_TRUE(profile.GetFile()->ResetOffset());
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -240,19 +240,19 @@
   ScratchFile profile;
 
   ProfileCompilationInfo info;
-  ASSERT_TRUE(AddMethod("dex_location", /* checksum */ 1, /* method_idx */ 1, &info));
+  ASSERT_TRUE(AddMethod("dex_location", /* checksum= */ 1, /* method_idx= */ 1, &info));
   // Trying to add info for an existing file but with a different checksum.
-  ASSERT_FALSE(AddMethod("dex_location", /* checksum */ 2, /* method_idx */ 2, &info));
+  ASSERT_FALSE(AddMethod("dex_location", /* checksum= */ 2, /* method_idx= */ 2, &info));
 }
 
 TEST_F(ProfileCompilationInfoTest, MergeFail) {
   ScratchFile profile;
 
   ProfileCompilationInfo info1;
-  ASSERT_TRUE(AddMethod("dex_location", /* checksum */ 1, /* method_idx */ 1, &info1));
+  ASSERT_TRUE(AddMethod("dex_location", /* checksum= */ 1, /* method_idx= */ 1, &info1));
   // Use the same file, change the checksum.
   ProfileCompilationInfo info2;
-  ASSERT_TRUE(AddMethod("dex_location", /* checksum */ 2, /* method_idx */ 2, &info2));
+  ASSERT_TRUE(AddMethod("dex_location", /* checksum= */ 2, /* method_idx= */ 2, &info2));
 
   ASSERT_FALSE(info1.MergeWith(info2));
 }
@@ -262,10 +262,10 @@
   ScratchFile profile;
 
   ProfileCompilationInfo info1;
-  ASSERT_TRUE(AddMethod("dex_location", /* checksum */ 1, /* method_idx */ 1, &info1));
+  ASSERT_TRUE(AddMethod("dex_location", /* checksum= */ 1, /* method_idx= */ 1, &info1));
   // Use the same file, change the checksum.
   ProfileCompilationInfo info2;
-  ASSERT_TRUE(AddMethod("dex_location", /* checksum */ 2, /* method_idx */ 2, &info2));
+  ASSERT_TRUE(AddMethod("dex_location", /* checksum= */ 2, /* method_idx= */ 2, &info2));
 
   ASSERT_TRUE(info1.Save(profile.GetFd()));
   ASSERT_EQ(0, profile.GetFile()->Flush());
@@ -280,13 +280,13 @@
   ProfileCompilationInfo saved_info;
   // Save the maximum number of methods
   for (uint16_t i = 0; i < std::numeric_limits<uint16_t>::max(); i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, /* method_idx */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, /* method_idx= */ i, &saved_info));
   }
   // Save the maximum number of classes
   for (uint16_t i = 0; i < std::numeric_limits<uint16_t>::max(); i++) {
-    ASSERT_TRUE(AddClass("dex_location1", /* checksum */ 1, dex::TypeIndex(i), &saved_info));
-    ASSERT_TRUE(AddClass("dex_location2", /* checksum */ 2, dex::TypeIndex(i), &saved_info));
+    ASSERT_TRUE(AddClass("dex_location1", /* checksum= */ 1, dex::TypeIndex(i), &saved_info));
+    ASSERT_TRUE(AddClass("dex_location2", /* checksum= */ 2, dex::TypeIndex(i), &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -390,7 +390,7 @@
   ProfileCompilationInfo saved_info;
   // Save the maximum number of methods
   for (uint16_t i = 0; i < 10; i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &saved_info));
   }
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
 
@@ -415,9 +415,9 @@
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     // Add a method which is part of the same dex file as one of the
     // class from the inline caches.
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
     // Add a method which is outside the set of dex files.
-    ASSERT_TRUE(AddMethod("dex_location4", /* checksum */ 4, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location4", /* checksum= */ 4, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -431,11 +431,11 @@
   ASSERT_TRUE(loaded_info.Equals(saved_info));
 
   std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-      loaded_info.GetMethod("dex_location1", /* checksum */ 1, /* method_idx */ 3);
+      loaded_info.GetMethod("dex_location1", /* dex_checksum= */ 1, /* dex_method_index= */ 3);
   ASSERT_TRUE(loaded_pmi1 != nullptr);
   ASSERT_TRUE(*loaded_pmi1 == pmi);
   std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi2 =
-      loaded_info.GetMethod("dex_location4", /* checksum */ 4, /* method_idx */ 3);
+      loaded_info.GetMethod("dex_location4", /* dex_checksum= */ 4, /* dex_method_index= */ 3);
   ASSERT_TRUE(loaded_pmi2 != nullptr);
   ASSERT_TRUE(*loaded_pmi2 == pmi);
 }
@@ -448,7 +448,7 @@
 
   // Add methods with inline caches.
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -459,7 +459,7 @@
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi_extra = GetOfflineProfileMethodInfo();
   MakeMegamorphic(&pmi_extra);
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info_extra));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info_extra));
   }
 
   ASSERT_TRUE(profile.GetFile()->ResetOffset());
@@ -477,7 +477,7 @@
   ASSERT_TRUE(loaded_info.Equals(saved_info));
 
   std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-      loaded_info.GetMethod("dex_location1", /* checksum */ 1, /* method_idx */ 3);
+      loaded_info.GetMethod("dex_location1", /* dex_checksum= */ 1, /* dex_method_index= */ 3);
 
   ASSERT_TRUE(loaded_pmi1 != nullptr);
   ASSERT_TRUE(*loaded_pmi1 == pmi_extra);
@@ -491,7 +491,7 @@
 
   // Add methods with inline caches.
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -502,7 +502,7 @@
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi_extra = GetOfflineProfileMethodInfo();
   MakeMegamorphic(&pmi_extra);
   for (uint16_t method_idx = 5; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info_extra));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info_extra));
   }
 
   // Mark all inline caches with missing types and add them to the profile again.
@@ -510,7 +510,7 @@
   ProfileCompilationInfo::OfflineProfileMethodInfo missing_types = GetOfflineProfileMethodInfo();
   SetIsMissingTypes(&missing_types);
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info_extra));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info_extra));
   }
 
   ASSERT_TRUE(profile.GetFile()->ResetOffset());
@@ -528,7 +528,7 @@
   ASSERT_TRUE(loaded_info.Equals(saved_info));
 
   std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-      loaded_info.GetMethod("dex_location1", /* checksum */ 1, /* method_idx */ 3);
+      loaded_info.GetMethod("dex_location1", /* dex_checksum= */ 1, /* dex_method_index= */ 3);
   ASSERT_TRUE(loaded_pmi1 != nullptr);
   ASSERT_TRUE(*loaded_pmi1 == pmi_extra);
 }
@@ -542,8 +542,8 @@
   // Modify the checksum to trigger a mismatch.
   pmi2.dex_references[0].dex_checksum++;
 
-  ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /*method_idx*/ 0, pmi1, &info));
-  ASSERT_FALSE(AddMethod("dex_location2", /* checksum */ 2, /*method_idx*/ 0, pmi2, &info));
+  ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /*method_idx=*/ 0, pmi1, &info));
+  ASSERT_FALSE(AddMethod("dex_location2", /* checksum= */ 2, /*method_idx=*/ 0, pmi2, &info));
 }
 
 // Verify that profiles behave correctly even if the methods are added in a different
@@ -556,8 +556,8 @@
 
   ProfileCompilationInfo::InlineCacheMap* ic_map = CreateInlineCacheMap();
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi(ic_map);
-  pmi.dex_references.emplace_back("dex_location1", /* checksum */ 1, kMaxMethodIds);
-  pmi.dex_references.emplace_back("dex_location2", /* checksum */ 2, kMaxMethodIds);
+  pmi.dex_references.emplace_back("dex_location1", /* checksum= */ 1, kMaxMethodIds);
+  pmi.dex_references.emplace_back("dex_location2", /* checksum= */ 2, kMaxMethodIds);
   for (uint16_t dex_pc = 1; dex_pc < 5; dex_pc++) {
     ProfileCompilationInfo::DexPcData dex_pc_data(allocator_.get());
     dex_pc_data.AddClass(0, dex::TypeIndex(0));
@@ -567,8 +567,8 @@
 
   ProfileCompilationInfo::InlineCacheMap* ic_map_reindexed = CreateInlineCacheMap();
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi_reindexed(ic_map_reindexed);
-  pmi_reindexed.dex_references.emplace_back("dex_location2", /* checksum */ 2, kMaxMethodIds);
-  pmi_reindexed.dex_references.emplace_back("dex_location1", /* checksum */ 1, kMaxMethodIds);
+  pmi_reindexed.dex_references.emplace_back("dex_location2", /* checksum= */ 2, kMaxMethodIds);
+  pmi_reindexed.dex_references.emplace_back("dex_location1", /* checksum= */ 1, kMaxMethodIds);
   for (uint16_t dex_pc = 1; dex_pc < 5; dex_pc++) {
     ProfileCompilationInfo::DexPcData dex_pc_data(allocator_.get());
     dex_pc_data.AddClass(1, dex::TypeIndex(0));
@@ -579,15 +579,15 @@
   // Profile 1 and Profile 2 get the same methods but in different order.
   // This will trigger a different dex numbers.
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, method_idx, pmi, &info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, method_idx, pmi, &info));
   }
 
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     ASSERT_TRUE(AddMethod(
-      "dex_location2", /* checksum */ 2, method_idx, pmi_reindexed, &info_reindexed));
+      "dex_location2", /* checksum= */ 2, method_idx, pmi_reindexed, &info_reindexed));
     ASSERT_TRUE(AddMethod(
-      "dex_location1", /* checksum */ 1, method_idx, pmi_reindexed, &info_reindexed));
+      "dex_location1", /* checksum= */ 1, method_idx, pmi_reindexed, &info_reindexed));
   }
 
   ProfileCompilationInfo info_backup;
@@ -597,11 +597,11 @@
   ASSERT_TRUE(info.Equals(info_backup));
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-        info.GetMethod("dex_location1", /* checksum */ 1, method_idx);
+        info.GetMethod("dex_location1", /* dex_checksum= */ 1, method_idx);
     ASSERT_TRUE(loaded_pmi1 != nullptr);
     ASSERT_TRUE(*loaded_pmi1 == pmi);
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi2 =
-        info.GetMethod("dex_location2", /* checksum */ 2, method_idx);
+        info.GetMethod("dex_location2", /* dex_checksum= */ 2, method_idx);
     ASSERT_TRUE(loaded_pmi2 != nullptr);
     ASSERT_TRUE(*loaded_pmi2 == pmi);
   }
@@ -612,34 +612,34 @@
   // Save a few methods.
   for (uint16_t i = 0; i < std::numeric_limits<uint8_t>::max(); i++) {
     std::string dex_location = std::to_string(i);
-    ASSERT_TRUE(AddMethod(dex_location, /* checksum */ 1, /* method_idx */ i, &info));
+    ASSERT_TRUE(AddMethod(dex_location, /* checksum= */ 1, /* method_idx= */ i, &info));
   }
   // We only support at most 255 dex files.
   ASSERT_FALSE(AddMethod(
-      /*dex_location*/ "256", /* checksum */ 1, /* method_idx */ 0, &info));
+      /*dex_location=*/ "256", /* checksum= */ 1, /* method_idx= */ 0, &info));
 }
 
 TEST_F(ProfileCompilationInfoTest, MegamorphicInlineCachesMerge) {
   // Create a megamorphic inline cache.
   ProfileCompilationInfo::InlineCacheMap* ic_map = CreateInlineCacheMap();
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi(ic_map);
-  pmi.dex_references.emplace_back("dex_location1", /* checksum */ 1, kMaxMethodIds);
+  pmi.dex_references.emplace_back("dex_location1", /* checksum= */ 1, kMaxMethodIds);
   ProfileCompilationInfo::DexPcData dex_pc_data(allocator_.get());
   dex_pc_data.SetIsMegamorphic();
   ic_map->Put(/*dex_pc*/ 0, dex_pc_data);
 
   ProfileCompilationInfo info_megamorphic;
   ASSERT_TRUE(AddMethod("dex_location1",
-                        /*checksum*/ 1,
-                        /*method_idx*/ 0,
+                        /*checksum=*/ 1,
+                        /*method_idx=*/ 0,
                         pmi,
                         &info_megamorphic));
 
   // Create a profile with no inline caches (for the same method).
   ProfileCompilationInfo info_no_inline_cache;
   ASSERT_TRUE(AddMethod("dex_location1",
-                        /*checksum*/ 1,
-                        /*method_idx*/ 0,
+                        /*checksum=*/ 1,
+                        /*method_idx=*/ 0,
                         &info_no_inline_cache));
 
   // Merge the megamorphic cache into the empty one.
@@ -653,23 +653,23 @@
   // Create an inline cache with missing types
   ProfileCompilationInfo::InlineCacheMap* ic_map = CreateInlineCacheMap();
   ProfileCompilationInfo::OfflineProfileMethodInfo pmi(ic_map);
-  pmi.dex_references.emplace_back("dex_location1", /* checksum */ 1, kMaxMethodIds);
+  pmi.dex_references.emplace_back("dex_location1", /* checksum= */ 1, kMaxMethodIds);
   ProfileCompilationInfo::DexPcData dex_pc_data(allocator_.get());
   dex_pc_data.SetIsMissingTypes();
   ic_map->Put(/*dex_pc*/ 0, dex_pc_data);
 
   ProfileCompilationInfo info_megamorphic;
   ASSERT_TRUE(AddMethod("dex_location1",
-                        /*checksum*/ 1,
-                        /*method_idx*/ 0,
+                        /*checksum=*/ 1,
+                        /*method_idx=*/ 0,
                         pmi,
                         &info_megamorphic));
 
   // Create a profile with no inline caches (for the same method).
   ProfileCompilationInfo info_no_inline_cache;
   ASSERT_TRUE(AddMethod("dex_location1",
-                        /*checksum*/ 1,
-                        /*method_idx*/ 0,
+                        /*checksum=*/ 1,
+                        /*method_idx=*/ 0,
                         &info_no_inline_cache));
 
   // Merge the missing type cache into the empty one.
@@ -766,26 +766,26 @@
 TEST_F(ProfileCompilationInfoTest, LoadFromZipCompress) {
   TestProfileLoadFromZip("primary.prof",
                          ZipWriter::kCompress | ZipWriter::kAlign32,
-                         /*should_succeed*/true);
+                         /*should_succeed=*/true);
 }
 
 TEST_F(ProfileCompilationInfoTest, LoadFromZipUnCompress) {
   TestProfileLoadFromZip("primary.prof",
                          ZipWriter::kAlign32,
-                         /*should_succeed*/true);
+                         /*should_succeed=*/true);
 }
 
 TEST_F(ProfileCompilationInfoTest, LoadFromZipUnAligned) {
   TestProfileLoadFromZip("primary.prof",
                          0,
-                         /*should_succeed*/true);
+                         /*should_succeed=*/true);
 }
 
 TEST_F(ProfileCompilationInfoTest, LoadFromZipFailBadZipEntry) {
   TestProfileLoadFromZip("invalid.profile.entry",
                          0,
-                         /*should_succeed*/true,
-                         /*should_succeed_with_empty_profile*/true);
+                         /*should_succeed=*/true,
+                         /*should_succeed_with_empty_profile=*/true);
 }
 
 TEST_F(ProfileCompilationInfoTest, LoadFromZipFailBadProfile) {
@@ -835,7 +835,7 @@
     info.AddMethodIndex(Hotness::kFlagHot,
                         old_name,
                         dex->GetLocationChecksum(),
-                        /* method_idx */ 0,
+                        /* method_idx= */ 0,
                         dex->NumMethodIds());
   }
 
@@ -845,7 +845,7 @@
   // Verify that we find the methods when searched with the original dex files.
   for (const std::unique_ptr<const DexFile>& dex : dex_files) {
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi =
-        info.GetMethod(dex->GetLocation(), dex->GetLocationChecksum(), /* method_idx */ 0);
+        info.GetMethod(dex->GetLocation(), dex->GetLocationChecksum(), /* dex_method_index= */ 0);
     ASSERT_TRUE(loaded_pmi != nullptr);
   }
 }
@@ -856,9 +856,9 @@
   ProfileCompilationInfo info;
   info.AddMethodIndex(Hotness::kFlagHot,
                       "my.app",
-                      /* checksum */ 123,
-                      /* method_idx */ 0,
-                      /* num_method_ids */ 10);
+                      /* checksum= */ 123,
+                      /* method_idx= */ 0,
+                      /* num_method_ids= */ 10);
 
   // Update the profile keys based on the original dex files
   ASSERT_TRUE(info.UpdateProfileKeys(dex_files));
@@ -867,13 +867,13 @@
   // location.
   for (const std::unique_ptr<const DexFile>& dex : dex_files) {
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi =
-        info.GetMethod(dex->GetLocation(), dex->GetLocationChecksum(), /* method_idx */ 0);
+        info.GetMethod(dex->GetLocation(), dex->GetLocationChecksum(), /* dex_method_index= */ 0);
     ASSERT_TRUE(loaded_pmi == nullptr);
   }
 
   // Verify that we can find the original entry.
   std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi =
-        info.GetMethod("my.app", /* checksum */ 123, /* method_idx */ 0);
+        info.GetMethod("my.app", /* dex_checksum= */ 123, /* dex_method_index= */ 0);
   ASSERT_TRUE(loaded_pmi != nullptr);
 }
 
@@ -892,7 +892,7 @@
     info.AddMethodIndex(Hotness::kFlagHot,
                         old_name,
                         dex->GetLocationChecksum(),
-                        /* method_idx */ 0,
+                        /* method_idx= */ 0,
                         dex->NumMethodIds());
   }
 
@@ -900,8 +900,8 @@
   // This will cause the rename to fail because an existing entry would already have that name.
   info.AddMethodIndex(Hotness::kFlagHot,
                       dex_files[0]->GetLocation(),
-                      /* checksum */ 123,
-                      /* method_idx */ 0,
+                      /* checksum= */ 123,
+                      /* method_idx= */ 0,
                       dex_files[0]->NumMethodIds());
 
   ASSERT_FALSE(info.UpdateProfileKeys(dex_files));
@@ -916,10 +916,10 @@
   // Add methods with inline caches.
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     // Add a method which is part of the same dex file as one of the class from the inline caches.
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, method_idx, pmi, &saved_info));
     // Add a method which is outside the set of dex files.
-    ASSERT_TRUE(AddMethod("dex_location4", /* checksum */ 4, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location4", /* checksum= */ 4, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -941,8 +941,12 @@
 
   // Dex location 2 and 4 should have been filtered out
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
-    ASSERT_TRUE(nullptr == loaded_info.GetMethod("dex_location2", /* checksum */ 2, method_idx));
-    ASSERT_TRUE(nullptr == loaded_info.GetMethod("dex_location4", /* checksum */ 4, method_idx));
+    ASSERT_TRUE(nullptr == loaded_info.GetMethod("dex_location2",
+                                                 /* dex_checksum= */ 2,
+                                                 method_idx));
+    ASSERT_TRUE(nullptr == loaded_info.GetMethod("dex_location4",
+                                                 /* dex_checksum= */ 4,
+                                                 method_idx));
   }
 
   // Dex location 1 should have all all the inline caches referencing dex location 2 set to
@@ -950,7 +954,7 @@
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     // The methods for dex location 1 should be in the profile data.
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-      loaded_info.GetMethod("dex_location1", /* checksum */ 1, /* method_idx */ method_idx);
+        loaded_info.GetMethod("dex_location1", /* dex_checksum= */ 1, method_idx);
     ASSERT_TRUE(loaded_pmi1 != nullptr);
 
     // Verify the inline cache.
@@ -989,8 +993,8 @@
     ProfileCompilationInfo::OfflineProfileMethodInfo expected_pmi(ic_map);
 
     // The dex references should not have  dex_location2 in the list.
-    expected_pmi.dex_references.emplace_back("dex_location1", /* checksum */1, kMaxMethodIds);
-    expected_pmi.dex_references.emplace_back("dex_location3", /* checksum */3, kMaxMethodIds);
+    expected_pmi.dex_references.emplace_back("dex_location1", /* checksum= */1, kMaxMethodIds);
+    expected_pmi.dex_references.emplace_back("dex_location3", /* checksum= */3, kMaxMethodIds);
 
     // Now check that we get back what we expect.
     ASSERT_TRUE(*loaded_pmi1 == expected_pmi);
@@ -1006,10 +1010,10 @@
   // Add methods with inline caches.
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     // Add a method which is part of the same dex file as one of the class from the inline caches.
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
-    ASSERT_TRUE(AddMethod("dex_location2", /* checksum */ 2, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location2", /* checksum= */ 2, method_idx, pmi, &saved_info));
     // Add a method which is outside the set of dex files.
-    ASSERT_TRUE(AddMethod("dex_location4", /* checksum */ 4, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location4", /* checksum= */ 4, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -1038,9 +1042,9 @@
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     // Add a method which is part of the same dex file as one of the
     // class from the inline caches.
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, method_idx, pmi, &saved_info));
     // Add a method which is outside the set of dex files.
-    ASSERT_TRUE(AddMethod("dex_location4", /* checksum */ 4, method_idx, pmi, &saved_info));
+    ASSERT_TRUE(AddMethod("dex_location4", /* checksum= */ 4, method_idx, pmi, &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -1060,13 +1064,13 @@
 
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi1 =
-        loaded_info.GetMethod("dex_location1", /* checksum */ 1, method_idx);
+        loaded_info.GetMethod("dex_location1", /* dex_checksum= */ 1, method_idx);
     ASSERT_TRUE(loaded_pmi1 != nullptr);
     ASSERT_TRUE(*loaded_pmi1 == pmi);
   }
   for (uint16_t method_idx = 0; method_idx < 10; method_idx++) {
     std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> loaded_pmi2 =
-        loaded_info.GetMethod("dex_location4", /* checksum */ 4, method_idx);
+        loaded_info.GetMethod("dex_location4", /* dex_checksum= */ 4, method_idx);
     ASSERT_TRUE(loaded_pmi2 != nullptr);
     ASSERT_TRUE(*loaded_pmi2 == pmi);
   }
@@ -1081,8 +1085,8 @@
   ProfileCompilationInfo saved_info;
   uint16_t item_count = 1000;
   for (uint16_t i = 0; i < item_count; i++) {
-    ASSERT_TRUE(AddClass("dex_location1", /* checksum */ 1, dex::TypeIndex(i), &saved_info));
-    ASSERT_TRUE(AddClass("dex_location2", /* checksum */ 2, dex::TypeIndex(i), &saved_info));
+    ASSERT_TRUE(AddClass("dex_location1", /* checksum= */ 1, dex::TypeIndex(i), &saved_info));
+    ASSERT_TRUE(AddClass("dex_location2", /* checksum= */ 2, dex::TypeIndex(i), &saved_info));
   }
 
   ASSERT_TRUE(saved_info.Save(GetFd(profile)));
@@ -1101,7 +1105,7 @@
   // Compute the expectation.
   ProfileCompilationInfo expected_info;
   for (uint16_t i = 0; i < item_count; i++) {
-    ASSERT_TRUE(AddClass("dex_location2", /* checksum */ 2, dex::TypeIndex(i), &expected_info));
+    ASSERT_TRUE(AddClass("dex_location2", /* checksum= */ 2, dex::TypeIndex(i), &expected_info));
   }
 
   // Validate the expectation.
@@ -1112,7 +1116,7 @@
 TEST_F(ProfileCompilationInfoTest, ClearData) {
   ProfileCompilationInfo info;
   for (uint16_t i = 0; i < 10; i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &info));
   }
   ASSERT_FALSE(IsEmpty(info));
   info.ClearData();
@@ -1122,7 +1126,7 @@
 TEST_F(ProfileCompilationInfoTest, ClearDataAndSave) {
   ProfileCompilationInfo info;
   for (uint16_t i = 0; i < 10; i++) {
-    ASSERT_TRUE(AddMethod("dex_location1", /* checksum */ 1, /* method_idx */ i, &info));
+    ASSERT_TRUE(AddMethod("dex_location1", /* checksum= */ 1, /* method_idx= */ i, &info));
   }
   info.ClearData();
 
diff --git a/openjdkjvmti/OpenjdkJvmTi.cc b/openjdkjvmti/OpenjdkJvmTi.cc
index 48f326a..4bc33b6 100644
--- a/openjdkjvmti/OpenjdkJvmTi.cc
+++ b/openjdkjvmti/OpenjdkJvmTi.cc
@@ -1195,7 +1195,7 @@
 #undef ADD_CAPABILITY
     gEventHandler->HandleChangedCapabilities(ArtJvmTiEnv::AsArtJvmTiEnv(env),
                                              changed,
-                                             /*added*/true);
+                                             /*added=*/true);
     return ret;
   }
 
@@ -1219,7 +1219,7 @@
 #undef DEL_CAPABILITY
     gEventHandler->HandleChangedCapabilities(ArtJvmTiEnv::AsArtJvmTiEnv(env),
                                              changed,
-                                             /*added*/false);
+                                             /*added=*/false);
     return OK;
   }
 
diff --git a/openjdkjvmti/deopt_manager.cc b/openjdkjvmti/deopt_manager.cc
index d20c756..8bac38a 100644
--- a/openjdkjvmti/deopt_manager.cc
+++ b/openjdkjvmti/deopt_manager.cc
@@ -289,7 +289,7 @@
     uninterruptible_cause_ = critical_section_.Enter(art::gc::kGcCauseInstrumentation,
                                                      art::gc::kCollectorTypeCriticalSection);
     art::Runtime::Current()->GetThreadList()->SuspendAll("JMVTI Deoptimizing methods",
-                                                         /*long_suspend*/ false);
+                                                         /*long_suspend=*/ false);
   }
 
   ~ScopedDeoptimizationContext()
diff --git a/openjdkjvmti/events.cc b/openjdkjvmti/events.cc
index 300a009..48df53a 100644
--- a/openjdkjvmti/events.cc
+++ b/openjdkjvmti/events.cc
@@ -517,7 +517,7 @@
           self,
           jnienv,
           art::jni::EncodeArtMethod(method),
-          /*was_popped_by_exception*/ static_cast<jboolean>(JNI_FALSE),
+          /*was_popped_by_exception=*/ static_cast<jboolean>(JNI_FALSE),
           val);
     }
   }
@@ -545,7 +545,7 @@
           self,
           jnienv,
           art::jni::EncodeArtMethod(method),
-          /*was_popped_by_exception*/ static_cast<jboolean>(JNI_FALSE),
+          /*was_popped_by_exception=*/ static_cast<jboolean>(JNI_FALSE),
           val);
     }
   }
@@ -572,7 +572,7 @@
           self,
           jnienv,
           art::jni::EncodeArtMethod(method),
-          /*was_popped_by_exception*/ static_cast<jboolean>(JNI_TRUE),
+          /*was_popped_by_exception=*/ static_cast<jboolean>(JNI_TRUE),
           val);
       // Match RI behavior of just throwing away original exception if a new one is thrown.
       if (LIKELY(!self->IsExceptionPending())) {
@@ -777,7 +777,7 @@
                             context.get(),
                             /*out*/ out_method,
                             /*out*/ dex_pc);
-    clf.WalkStack(/* include_transitions */ false);
+    clf.WalkStack(/* include_transitions= */ false);
   }
 
   // Call-back when an exception is thrown.
@@ -793,8 +793,8 @@
       FindCatchMethodsFromThrow(self, exception_object, &catch_method, &catch_pc);
       uint32_t dex_pc = 0;
       art::ArtMethod* method = self->GetCurrentMethod(&dex_pc,
-                                                      /* check_suspended */ true,
-                                                      /* abort_on_error */ art::kIsDebugBuild);
+                                                      /* check_suspended= */ true,
+                                                      /* abort_on_error= */ art::kIsDebugBuild);
       ScopedLocalRef<jobject> exception(jnienv,
                                         AddLocalRef<jobject>(jnienv, exception_object.Get()));
       RunEventCallback<ArtJvmtiEvent::kException>(
@@ -819,8 +819,8 @@
       art::JNIEnvExt* jnienv = self->GetJniEnv();
       uint32_t dex_pc;
       art::ArtMethod* method = self->GetCurrentMethod(&dex_pc,
-                                                      /* check_suspended */ true,
-                                                      /* abort_on_error */ art::kIsDebugBuild);
+                                                      /* check_suspended= */ true,
+                                                      /* abort_on_error= */ art::kIsDebugBuild);
       ScopedLocalRef<jobject> exception(jnienv,
                                         AddLocalRef<jobject>(jnienv, exception_object.Get()));
       RunEventCallback<ArtJvmtiEvent::kExceptionCatch>(
diff --git a/openjdkjvmti/fixed_up_dex_file.cc b/openjdkjvmti/fixed_up_dex_file.cc
index aedec27..6745d91 100644
--- a/openjdkjvmti/fixed_up_dex_file.cc
+++ b/openjdkjvmti/fixed_up_dex_file.cc
@@ -67,7 +67,9 @@
                            const art::DexFile& original_dex_file) {
   const art::VdexFile* vdex = GetVdex(original_dex_file);
   if (vdex != nullptr) {
-    vdex->UnquickenDexFile(new_dex_file, original_dex_file, /* decompile_return_instruction */true);
+    vdex->UnquickenDexFile(new_dex_file,
+                           original_dex_file,
+                           /* decompile_return_instruction= */ true);
   }
   new_dex_file.UnhideApis();
 }
@@ -79,7 +81,7 @@
                                       dex.Begin(),
                                       dex.Size(),
                                       "FixedUpDexFile_Verification.dex",
-                                      /*verify_checksum*/ true,
+                                      /*verify_checksum=*/ true,
                                       &error)) {
       LOG(FATAL) << "Failed to verify de-quickened dex file: " << error;
     }
@@ -113,9 +115,9 @@
       options.class_filter_.insert(descriptor);
     }
     art::DexLayout dex_layout(options,
-                              /*info*/ nullptr,
-                              /*out_file*/ nullptr,
-                              /*header*/ nullptr);
+                              /*info=*/ nullptr,
+                              /*out_file=*/ nullptr,
+                              /*header=*/ nullptr);
     std::unique_ptr<art::DexContainer> dex_container;
     bool result = dex_layout.ProcessDexFile(
         original.GetLocation().c_str(),
@@ -136,11 +138,11 @@
   new_dex_file = dex_file_loader.Open(
       data.data(),
       data.size(),
-      /*location*/"Unquickening_dexfile.dex",
-      /*location_checksum*/0,
-      /*oat_dex_file*/nullptr,
-      /*verify*/false,
-      /*verify_checksum*/false,
+      /*location=*/"Unquickening_dexfile.dex",
+      /*location_checksum=*/0,
+      /*oat_dex_file=*/nullptr,
+      /*verify=*/false,
+      /*verify_checksum=*/false,
       &error);
 
   if (new_dex_file  == nullptr) {
diff --git a/openjdkjvmti/ti_class.cc b/openjdkjvmti/ti_class.cc
index f6113df..3d33487 100644
--- a/openjdkjvmti/ti_class.cc
+++ b/openjdkjvmti/ti_class.cc
@@ -113,8 +113,8 @@
   std::unique_ptr<const art::DexFile> dex_file(dex_file_loader.Open(map_name,
                                                                     checksum,
                                                                     std::move(map),
-                                                                    /*verify*/true,
-                                                                    /*verify_checksum*/true,
+                                                                    /*verify=*/true,
+                                                                    /*verify_checksum=*/true,
                                                                     &error_msg));
   if (dex_file.get() == nullptr) {
     LOG(WARNING) << "Unable to load modified dex file for " << descriptor << ": " << error_msg;
diff --git a/openjdkjvmti/ti_class_definition.cc b/openjdkjvmti/ti_class_definition.cc
index 895e734..9e8288f 100644
--- a/openjdkjvmti/ti_class_definition.cc
+++ b/openjdkjvmti/ti_class_definition.cc
@@ -246,17 +246,17 @@
     mmap_name += name_;
     std::string error;
     dex_data_mmap_ = art::MemMap::MapAnonymous(mmap_name.c_str(),
-                                               /* addr */ nullptr,
+                                               /* addr= */ nullptr,
                                                dequick_size,
                                                PROT_NONE,
-                                               /*low_4gb*/ false,
+                                               /*low_4gb=*/ false,
                                                &error);
     mmap_name += "-TEMP";
     temp_mmap_ = art::MemMap::MapAnonymous(mmap_name.c_str(),
-                                           /* addr */ nullptr,
+                                           /* addr= */ nullptr,
                                            dequick_size,
                                            PROT_READ | PROT_WRITE,
-                                           /*low_4gb*/ false,
+                                           /*low_4gb=*/ false,
                                            &error);
     if (UNLIKELY(dex_data_mmap_.IsValid() && temp_mmap_.IsValid())) {
       // Need to save the initial dexfile so we don't need to search for it in the fault-handler.
diff --git a/openjdkjvmti/ti_extension.cc b/openjdkjvmti/ti_extension.cc
index c61d6e5..c628a32 100644
--- a/openjdkjvmti/ti_extension.cc
+++ b/openjdkjvmti/ti_extension.cc
@@ -424,7 +424,7 @@
     }
   }
   return event_handler->SetEvent(art_env,
-                                 /*event_thread*/nullptr,
+                                 /*thread=*/nullptr,
                                  static_cast<ArtJvmtiEvent>(extension_event_index),
                                  mode);
 }
diff --git a/openjdkjvmti/ti_heap.cc b/openjdkjvmti/ti_heap.cc
index 6c79a60..559ee0d 100644
--- a/openjdkjvmti/ti_heap.cc
+++ b/openjdkjvmti/ti_heap.cc
@@ -981,7 +981,9 @@
           // TODO: We don't have this info.
           if (thread != nullptr) {
             ref_info->jni_local.depth = 0;
-            art::ArtMethod* method = thread->GetCurrentMethod(nullptr, false /* abort_on_error */);
+            art::ArtMethod* method = thread->GetCurrentMethod(nullptr,
+                                                              /* check_suspended= */ true,
+                                                              /* abort_on_error= */ false);
             if (method != nullptr) {
               ref_info->jni_local.method = art::jni::EncodeArtMethod(method);
             }
@@ -1012,7 +1014,7 @@
           ref_info->stack_local.slot = static_cast<jint>(java_info.GetVReg());
           const art::StackVisitor* visitor = java_info.GetVisitor();
           ref_info->stack_local.location =
-              static_cast<jlocation>(visitor->GetDexPc(false /* abort_on_failure */));
+              static_cast<jlocation>(visitor->GetDexPc(/* abort_on_failure= */ false));
           ref_info->stack_local.depth = static_cast<jint>(visitor->GetFrameDepth());
           art::ArtMethod* method = visitor->GetMethod();
           if (method != nullptr) {
@@ -1447,7 +1449,7 @@
 }
 
 jvmtiError HeapUtil::ForceGarbageCollection(jvmtiEnv* env ATTRIBUTE_UNUSED) {
-  art::Runtime::Current()->GetHeap()->CollectGarbage(/* clear_soft_references */ false);
+  art::Runtime::Current()->GetHeap()->CollectGarbage(/* clear_soft_references= */ false);
 
   return ERR(NONE);
 }
diff --git a/openjdkjvmti/ti_method.cc b/openjdkjvmti/ti_method.cc
index 2958941..7d69c89 100644
--- a/openjdkjvmti/ti_method.cc
+++ b/openjdkjvmti/ti_method.cc
@@ -547,7 +547,7 @@
       return;
     }
     bool needs_instrument = !visitor.IsShadowFrame();
-    uint32_t pc = visitor.GetDexPc(/*abort_on_failure*/ false);
+    uint32_t pc = visitor.GetDexPc(/*abort_on_failure=*/ false);
     if (pc == art::dex::kDexNoIndex) {
       // Cannot figure out current PC.
       result_ = ERR(OPAQUE_FRAME);
diff --git a/openjdkjvmti/ti_monitor.cc b/openjdkjvmti/ti_monitor.cc
index f71328a..aac7233 100644
--- a/openjdkjvmti/ti_monitor.cc
+++ b/openjdkjvmti/ti_monitor.cc
@@ -191,7 +191,7 @@
 
     // Reaquire the mutex/monitor, also go to sleep if we were suspended.
     // TODO Give an extension to wait without suspension as well.
-    MonitorEnter(self, /*suspend*/ true);
+    MonitorEnter(self, /*suspend=*/ true);
     CHECK(owner_.load(std::memory_order_relaxed) == self);
     DCHECK_EQ(1u, count_);
     // Reset the count.
@@ -261,7 +261,7 @@
   JvmtiMonitor* monitor = DecodeMonitor(id);
   art::Thread* self = art::Thread::Current();
 
-  monitor->MonitorEnter(self, /*suspend*/false);
+  monitor->MonitorEnter(self, /*suspend=*/false);
 
   return ERR(NONE);
 }
@@ -274,7 +274,7 @@
   JvmtiMonitor* monitor = DecodeMonitor(id);
   art::Thread* self = art::Thread::Current();
 
-  monitor->MonitorEnter(self, /*suspend*/true);
+  monitor->MonitorEnter(self, /*suspend=*/true);
 
   return ERR(NONE);
 }
diff --git a/openjdkjvmti/ti_object.cc b/openjdkjvmti/ti_object.cc
index 89ce352..344ae88 100644
--- a/openjdkjvmti/ti_object.cc
+++ b/openjdkjvmti/ti_object.cc
@@ -92,7 +92,7 @@
   {
     art::ScopedObjectAccess soa(self);      // Now we know we have the shared lock.
     art::ScopedThreadSuspension sts(self, art::kNative);
-    art::ScopedSuspendAll ssa("GetObjectMonitorUsage", /*long_suspend*/false);
+    art::ScopedSuspendAll ssa("GetObjectMonitorUsage", /*long_suspend=*/false);
     art::ObjPtr<art::mirror::Object> target(self->DecodeJObject(obj));
     // This gets the list of threads trying to lock or wait on the monitor.
     art::MonitorInfo info(target.Ptr());
diff --git a/openjdkjvmti/ti_redefine.cc b/openjdkjvmti/ti_redefine.cc
index db2b143..7525c02 100644
--- a/openjdkjvmti/ti_redefine.cc
+++ b/openjdkjvmti/ti_redefine.cc
@@ -152,7 +152,7 @@
       const std::unordered_set<art::ArtMethod*>& obsoleted_methods,
       ObsoleteMap* obsolete_maps)
         : StackVisitor(thread,
-                       /*context*/nullptr,
+                       /*context=*/nullptr,
                        StackVisitor::StackWalkKind::kIncludeInlinedFrames),
           allocator_(allocator),
           obsoleted_methods_(obsoleted_methods),
@@ -305,10 +305,10 @@
                                         std::string* error_msg) {
   art::MemMap map = art::MemMap::MapAnonymous(
       StringPrintf("%s-transformed", original_location.c_str()).c_str(),
-      /* addr */ nullptr,
+      /* addr= */ nullptr,
       data.size(),
       PROT_READ|PROT_WRITE,
-      /*low_4gb*/ false,
+      /*low_4gb=*/ false,
       error_msg);
   if (LIKELY(map.IsValid())) {
     memcpy(map.Begin(), data.data(), data.size());
@@ -445,8 +445,8 @@
   std::unique_ptr<const art::DexFile> dex_file(dex_file_loader.Open(name,
                                                                     checksum,
                                                                     std::move(map),
-                                                                    /*verify*/true,
-                                                                    /*verify_checksum*/true,
+                                                                    /*verify=*/true,
+                                                                    /*verify_checksum=*/true,
                                                                     error_msg_));
   if (dex_file.get() == nullptr) {
     os << "Unable to load modified dex file for " << def.GetName() << ": " << *error_msg_;
@@ -1117,10 +1117,10 @@
                                                  dex_file_.get(),
                                                  hs.NewHandle(iter.GetNewDexCache()),
                                                  hs.NewHandle(GetClassLoader()),
-                                                 dex_file_->GetClassDef(0), /*class_def*/
-                                                 nullptr, /*compiler_callbacks*/
-                                                 true, /*allow_soft_failures*/
-                                                 /*log_level*/
+                                                 /*class_def=*/ dex_file_->GetClassDef(0),
+                                                 /*callbacks=*/ nullptr,
+                                                 /*allow_soft_failures=*/ true,
+                                                 /*log_level=*/
                                                  art::verifier::HardFailLogMode::kLogWarning,
                                                  art::Runtime::Current()->GetTargetSdkVersion(),
                                                  &error);
@@ -1288,7 +1288,7 @@
 }
 
 void Redefiner::ClassRedefinition::ReleaseDexFile() {
-  dex_file_.release();
+  dex_file_.release();  // NOLINT b/117926937
 }
 
 void Redefiner::ReleaseAllDexFiles() {
@@ -1367,7 +1367,7 @@
   // TODO We might want to give this its own suspended state!
   // TODO This isn't right. We need to change state without any chance of suspend ideally!
   art::ScopedThreadSuspension sts(self_, art::ThreadState::kNative);
-  art::ScopedSuspendAll ssa("Final installation of redefined Classes!", /*long_suspend*/true);
+  art::ScopedSuspendAll ssa("Final installation of redefined Classes!", /*long_suspend=*/true);
   for (RedefinitionDataIter data = holder.begin(); data != holder.end(); ++data) {
     art::ScopedAssertNoThreadSuspension nts("Updating runtime objects for redefinition");
     ClassRedefinition& redef = data.GetRedefinition();
diff --git a/openjdkjvmti/ti_search.cc b/openjdkjvmti/ti_search.cc
index 1189b1d..427869e 100644
--- a/openjdkjvmti/ti_search.cc
+++ b/openjdkjvmti/ti_search.cc
@@ -229,8 +229,12 @@
   std::string error_msg;
   std::vector<std::unique_ptr<const art::DexFile>> dex_files;
   const art::ArtDexFileLoader dex_file_loader;
-  if (!dex_file_loader.Open(
-        segment, segment, /* verify */ true, /* verify_checksum */ true, &error_msg, &dex_files)) {
+  if (!dex_file_loader.Open(segment,
+                            segment,
+                            /* verify= */ true,
+                            /* verify_checksum= */ true,
+                            &error_msg,
+                            &dex_files)) {
     LOG(WARNING) << "Could not open " << segment << " for boot classpath extension: " << error_msg;
     return ERR(ILLEGAL_ARGUMENT);
   }
diff --git a/openjdkjvmti/ti_stack.cc b/openjdkjvmti/ti_stack.cc
index 5a98755..1279f3b 100644
--- a/openjdkjvmti/ti_stack.cc
+++ b/openjdkjvmti/ti_stack.cc
@@ -150,7 +150,7 @@
       frames.push_back(info);
     };
     auto visitor = MakeStackTraceVisitor(self, start_input, stop_input, frames_fn);
-    visitor.WalkStack(/* include_transitions */ false);
+    visitor.WalkStack(/* include_transitions= */ false);
 
     start_result = visitor.start;
     stop_result = visitor.stop;
@@ -218,7 +218,7 @@
       ++index;
     };
     auto visitor = MakeStackTraceVisitor(self, start_input, stop_input, frames_fn);
-    visitor.WalkStack(/* include_transitions */ false);
+    visitor.WalkStack(/* include_transitions= */ false);
   }
 
   jvmtiFrameInfo* frame_buffer;
@@ -330,7 +330,7 @@
       thread_frames->push_back(info);
     };
     auto visitor = MakeStackTraceVisitor(thread, 0u, stop_input, frames_fn);
-    visitor.WalkStack(/* include_transitions */ false);
+    visitor.WalkStack(/* include_transitions= */ false);
   }
 
   art::Barrier barrier;
@@ -910,7 +910,7 @@
     art::Locks::mutator_lock_->AssertSharedHeld(art::Thread::Current());
     // Find the monitors on the stack.
     MonitorVisitor visitor(target);
-    visitor.WalkStack(/* include_transitions */ false);
+    visitor.WalkStack(/* include_transitions= */ false);
     // Find any other monitors, including ones acquired in native code.
     art::RootInfo root_info(art::kRootVMInternal);
     target->GetJniEnv()->VisitMonitorRoots(&visitor, root_info);
diff --git a/openjdkjvmti/ti_thread.cc b/openjdkjvmti/ti_thread.cc
index a0e5b5c..2131120 100644
--- a/openjdkjvmti/ti_thread.cc
+++ b/openjdkjvmti/ti_thread.cc
@@ -812,7 +812,7 @@
     runtime->EndThreadBirth();
     return ERR(INTERNAL);
   }
-  data.release();
+  data.release();  // NOLINT pthreads API.
 
   return ERR(NONE);
 }
@@ -857,7 +857,7 @@
     bool timeout = true;
     art::Thread* ret_target = art::Runtime::Current()->GetThreadList()->SuspendThreadByPeer(
         target_jthread,
-        /* request_suspension */ true,
+        /* request_suspension= */ true,
         art::SuspendReason::kForUserCode,
         &timeout);
     if (ret_target == nullptr && !timeout) {
diff --git a/openjdkjvmti/transform.cc b/openjdkjvmti/transform.cc
index d87ca56..653f944 100644
--- a/openjdkjvmti/transform.cc
+++ b/openjdkjvmti/transform.cc
@@ -76,7 +76,7 @@
                                               art::LockLevel::kSignalHandlingLock),
         class_definition_initialized_cond_("JVMTI Initialized class definitions condition",
                                            uninitialized_class_definitions_lock_) {
-    manager->AddHandler(this, /* generated_code */ false);
+    manager->AddHandler(this, /* generated_code= */ false);
   }
 
   ~TransformationFaultHandler() {
diff --git a/runtime/Android.bp b/runtime/Android.bp
index 33ad987..bedeaf7 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -379,6 +379,7 @@
     ],
     header_libs: [
         "art_cmdlineparser_headers",
+        "cpp-define-generator-definitions",
         "libnativehelper_header_only",
         "jni_platform_headers",
     ],
@@ -639,7 +640,6 @@
     ],
     header_libs: [
         "art_cmdlineparser_headers", // For parsed_options_test.
-        "cpp-define-generator-definitions",
     ],
     include_dirs: [
         "external/zlib",
diff --git a/runtime/arch/arch_test.cc b/runtime/arch/arch_test.cc
index dcc3aff..12ad84b 100644
--- a/runtime/arch/arch_test.cc
+++ b/runtime/arch/arch_test.cc
@@ -17,17 +17,11 @@
 #include <stdint.h>
 
 #include "art_method-inl.h"
-#include "asm_defines.h"
 #include "base/callee_save_type.h"
 #include "entrypoints/quick/callee_save_frame.h"
 #include "common_runtime_test.h"
 #include "quick/quick_method_frame_info.h"
 
-// Static asserts to check the values of generated #defines for assembly.
-#define ASM_DEFINE(NAME, EXPR) static_assert((NAME) == (EXPR), "Unexpected value of " #NAME);
-#include "asm_defines.def"
-#undef ASM_DEFINE
-
 namespace art {
 
 class ArchTest : public CommonRuntimeTest {
diff --git a/runtime/base/mutex.cc b/runtime/base/mutex.cc
index b2ddff3..c11e3d1 100644
--- a/runtime/base/mutex.cc
+++ b/runtime/base/mutex.cc
@@ -1028,7 +1028,11 @@
   guard_.recursion_count_ = 0;
   timespec ts;
   InitTimeSpec(true, clock, ms, ns, &ts);
-  int rc = TEMP_FAILURE_RETRY(pthread_cond_timedwait(&cond_, &guard_.mutex_, &ts));
+  int rc;
+  while ((rc = pthread_cond_timedwait(&cond_, &guard_.mutex_, &ts)) == EINTR) {
+    continue;
+  }
+
   if (rc == ETIMEDOUT) {
     timed_out = true;
   } else if (rc != 0) {
diff --git a/runtime/class_loader_context.cc b/runtime/class_loader_context.cc
index 4da0091..5c8d685 100644
--- a/runtime/class_loader_context.cc
+++ b/runtime/class_loader_context.cc
@@ -64,10 +64,10 @@
     // make sure we do not de-allocate them.
     for (ClassLoaderInfo& info : class_loader_chain_) {
       for (std::unique_ptr<OatFile>& oat_file : info.opened_oat_files) {
-        oat_file.release();
+        oat_file.release();  // NOLINT b/117926937
       }
       for (std::unique_ptr<const DexFile>& dex_file : info.opened_dex_files) {
-        dex_file.release();
+        dex_file.release();  // NOLINT b/117926937
       }
     }
   }
diff --git a/runtime/entrypoints_order_test.cc b/runtime/entrypoints_order_test.cc
index 50c65ea..f451978 100644
--- a/runtime/entrypoints_order_test.cc
+++ b/runtime/entrypoints_order_test.cc
@@ -127,9 +127,7 @@
     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, mterp_default_ibase, sizeof(void*));
-    EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, mterp_default_ibase, mterp_alt_ibase, sizeof(void*));
-    EXPECT_OFFSET_DIFFP(Thread, tlsPtr_, mterp_alt_ibase, rosalloc_runs, sizeof(void*));
+    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/gc/space/image_space.cc b/runtime/gc/space/image_space.cc
index c3e0a1e..1b3cb40 100644
--- a/runtime/gc/space/image_space.cc
+++ b/runtime/gc/space/image_space.cc
@@ -429,9 +429,9 @@
                image_header->GetImageMethod(ImageHeader::kSaveEverythingMethodForSuspendCheck));
 
       VLOG(image) << "ImageSpace::Loader::InitAppImage exiting " << *space.get();
-      if (VLOG_IS_ON(image)) {
-        logger.Dump(LOG_STREAM(INFO));
-      }
+    }
+    if (VLOG_IS_ON(image)) {
+      logger.Dump(LOG_STREAM(INFO));
     }
     return space;
   }
@@ -1396,9 +1396,9 @@
     MaybeRelocateSpaces(spaces, &logger);
     InitRuntimeMethods(spaces);
     *extra_reservation = std::move(local_extra_reservation);
+    VLOG(image) << "ImageSpace::BootImageLoader::InitFromDalvikCache exiting " << *spaces.front();
     boot_image_spaces->swap(spaces);
 
-    VLOG(image) << "ImageSpace::BootImageLoader::InitFromDalvikCache exiting " << *spaces.front();
     if (VLOG_IS_ON(image)) {
       logger.Dump(LOG_STREAM(INFO));
     }
diff --git a/runtime/intern_table-inl.h b/runtime/intern_table-inl.h
index 6e5c903..8c7fb42 100644
--- a/runtime/intern_table-inl.h
+++ b/runtime/intern_table-inl.h
@@ -51,9 +51,12 @@
 inline void InternTable::Table::AddInternStrings(UnorderedSet&& intern_strings) {
   static constexpr bool kCheckDuplicates = kIsDebugBuild;
   if (kCheckDuplicates) {
+    // Avoid doing read barriers since the space might not yet be added to the heap.
+    // See b/117803941
     for (GcRoot<mirror::String>& string : intern_strings) {
-      CHECK(Find(string.Read()) == nullptr)
-          << "Already found " << string.Read()->ToModifiedUtf8() << " in the intern table";
+      CHECK(Find(string.Read<kWithoutReadBarrier>()) == nullptr)
+          << "Already found " << string.Read<kWithoutReadBarrier>()->ToModifiedUtf8()
+          << " in the intern table";
     }
   }
   // Insert at the front since we add new interns into the back.
diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h
index 1e4239e..3c5abe1 100644
--- a/runtime/interpreter/interpreter_common.h
+++ b/runtime/interpreter/interpreter_common.h
@@ -123,7 +123,7 @@
 
 // Handles all invoke-XXX/range instructions except for invoke-polymorphic[/range].
 // Returns true on success, otherwise throws an exception and returns false.
-template<InvokeType type, bool is_range, bool do_access_check, bool fast_invoke = false>
+template<InvokeType type, bool is_range, bool do_access_check, bool is_mterp>
 static ALWAYS_INLINE bool DoInvoke(Thread* self,
                                    ShadowFrame& shadow_frame,
                                    const Instruction* inst,
@@ -169,29 +169,29 @@
     CHECK(self->IsExceptionPending());
     result->SetJ(0);
     return false;
-  } else if (UNLIKELY(!called_method->IsInvokable())) {
+  }
+  if (UNLIKELY(!called_method->IsInvokable())) {
     called_method->ThrowInvocationTimeError();
     result->SetJ(0);
     return false;
-  } else {
-    jit::Jit* jit = Runtime::Current()->GetJit();
-    if (jit != nullptr && (type == kVirtual || type == kInterface)) {
-      jit->InvokeVirtualOrInterface(receiver, sf_method, shadow_frame.GetDexPC(), called_method);
-    }
-    // The fast invoke is used from mterp for some invoke variants.
-    // The non-fast version is used from switch interpreter and it might not support intrinsics.
-    // TODO: Unify both paths.
-    if (fast_invoke) {
-      if (called_method->IsIntrinsic()) {
-        if (MterpHandleIntrinsic(&shadow_frame, called_method, inst, inst_data,
-                                 shadow_frame.GetResultRegister())) {
-          return !self->IsExceptionPending();
-        }
+  }
+
+  jit::Jit* jit = Runtime::Current()->GetJit();
+  if (jit != nullptr && (type == kVirtual || type == kInterface)) {
+    jit->InvokeVirtualOrInterface(receiver, sf_method, shadow_frame.GetDexPC(), called_method);
+  }
+
+  if (is_mterp && !is_range && called_method->IsIntrinsic()) {
+    if (type == kDirect || type == kStatic || type == kVirtual) {
+      if (MterpHandleIntrinsic(&shadow_frame, called_method, inst, inst_data,
+                               shadow_frame.GetResultRegister())) {
+        return !self->IsExceptionPending();
       }
     }
-    return DoCall<is_range, do_access_check>(called_method, self, shadow_frame, inst, inst_data,
-                                             result);
   }
+
+  return DoCall<is_range, do_access_check>(called_method, self, shadow_frame, inst, inst_data,
+                                           result);
 }
 
 static inline ObjPtr<mirror::MethodHandle> ResolveMethodHandle(Thread* self,
diff --git a/runtime/interpreter/interpreter_switch_impl.cc b/runtime/interpreter/interpreter_switch_impl.cc
index cb64ff4..d9f76ee 100644
--- a/runtime/interpreter/interpreter_switch_impl.cc
+++ b/runtime/interpreter/interpreter_switch_impl.cc
@@ -1669,70 +1669,70 @@
       }
       case Instruction::INVOKE_VIRTUAL: {
         PREAMBLE();
-        bool success = DoInvoke<kVirtual, false, do_access_check>(
+        bool success = DoInvoke<kVirtual, false, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_VIRTUAL_RANGE: {
         PREAMBLE();
-        bool success = DoInvoke<kVirtual, true, do_access_check>(
+        bool success = DoInvoke<kVirtual, true, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_SUPER: {
         PREAMBLE();
-        bool success = DoInvoke<kSuper, false, do_access_check>(
+        bool success = DoInvoke<kSuper, false, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_SUPER_RANGE: {
         PREAMBLE();
-        bool success = DoInvoke<kSuper, true, do_access_check>(
+        bool success = DoInvoke<kSuper, true, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_DIRECT: {
         PREAMBLE();
-        bool success = DoInvoke<kDirect, false, do_access_check>(
+        bool success = DoInvoke<kDirect, false, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_DIRECT_RANGE: {
         PREAMBLE();
-        bool success = DoInvoke<kDirect, true, do_access_check>(
+        bool success = DoInvoke<kDirect, true, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_INTERFACE: {
         PREAMBLE();
-        bool success = DoInvoke<kInterface, false, do_access_check>(
+        bool success = DoInvoke<kInterface, false, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_INTERFACE_RANGE: {
         PREAMBLE();
-        bool success = DoInvoke<kInterface, true, do_access_check>(
+        bool success = DoInvoke<kInterface, true, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_STATIC: {
         PREAMBLE();
-        bool success = DoInvoke<kStatic, false, do_access_check>(
+        bool success = DoInvoke<kStatic, false, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
       }
       case Instruction::INVOKE_STATIC_RANGE: {
         PREAMBLE();
-        bool success = DoInvoke<kStatic, true, do_access_check>(
+        bool success = DoInvoke<kStatic, true, do_access_check, /*is_mterp=*/ false>(
             self, shadow_frame, inst, inst_data, &result_register);
         POSSIBLY_HANDLE_PENDING_EXCEPTION_ON_INVOKE(!success);
         break;
diff --git a/runtime/interpreter/mterp/arm/main.S b/runtime/interpreter/mterp/arm/main.S
index 62c38bf..f5fdf14 100644
--- a/runtime/interpreter/mterp/arm/main.S
+++ b/runtime/interpreter/mterp/arm/main.S
@@ -404,21 +404,20 @@
     // cfi info continues, and covers the whole mterp implementation.
     END ExecuteMterpImpl
 
-%def alt_stub():
-/*
- * Inter-instruction transfer stub.  Call out to MterpCheckBefore to handle
- * any interesting requests and then jump to the real instruction
- * handler.  Note that the call to MterpCheckBefore is done as a tail call.
- */
+%def dchecks_before_helper():
+    // Call C++ to do debug checks and return to the handler using tail call.
     .extern MterpCheckBefore
-    ldr    rIBASE, [rSELF, #THREAD_CURRENT_IBASE_OFFSET]            @ refresh IBASE.
-    adr    lr, .L_ALT_${opcode}
-    sub    lr, lr, #(.L_ALT_${opcode} - .L_${opcode})               @ Addr of primary handler.
     mov    r0, rSELF
     add    r1, rFP, #OFF_FP_SHADOWFRAME
     mov    r2, rPC
     b      MterpCheckBefore     @ (self, shadow_frame, dex_pc_ptr)  @ Tail call.
 
+%def opcode_pre():
+%  add_helper(dchecks_before_helper, "Mterp_dchecks_before_helper")
+    #if !defined(NDEBUG)
+    bl     Mterp_dchecks_before_helper
+    #endif
+
 %def fallback():
 /* Transfer stub to alternate interpreter */
     b    MterpFallback
@@ -733,13 +732,6 @@
     .global artMterpAsmInstructionEnd
 artMterpAsmInstructionEnd:
 
-%def instruction_end_alt():
-
-    .type artMterpAsmAltInstructionEnd, #object
-    .hidden artMterpAsmAltInstructionEnd
-    .global artMterpAsmAltInstructionEnd
-artMterpAsmAltInstructionEnd:
-
 %def instruction_start():
 
     .type artMterpAsmInstructionStart, #object
@@ -748,14 +740,6 @@
 artMterpAsmInstructionStart = .L_op_nop
     .text
 
-%def instruction_start_alt():
-
-    .type artMterpAsmAltInstructionStart, #object
-    .hidden artMterpAsmAltInstructionStart
-    .global artMterpAsmAltInstructionStart
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
-    .text
-
 %def opcode_start():
     ENTRY Mterp_${opcode}
 %def opcode_end():
diff --git a/runtime/interpreter/mterp/arm64/main.S b/runtime/interpreter/mterp/arm64/main.S
index f248265..1b72e79 100644
--- a/runtime/interpreter/mterp/arm64/main.S
+++ b/runtime/interpreter/mterp/arm64/main.S
@@ -429,20 +429,20 @@
     // cfi info continues, and covers the whole mterp implementation.
     END ExecuteMterpImpl
 
-%def alt_stub():
-/*
- * Inter-instruction transfer stub.  Call out to MterpCheckBefore to handle
- * any interesting requests and then jump to the real instruction
- * handler.  Note that the call to MterpCheckBefore is done as a tail call.
- */
+%def dchecks_before_helper():
+    // Call C++ to do debug checks and return to the handler using tail call.
     .extern MterpCheckBefore
-    ldr    xIBASE, [xSELF, #THREAD_CURRENT_IBASE_OFFSET]            // refresh IBASE.
-    adr    lr, artMterpAsmInstructionStart + (${opnum} * 128)       // Addr of primary handler.
     mov    x0, xSELF
     add    x1, xFP, #OFF_FP_SHADOWFRAME
     mov    x2, xPC
     b      MterpCheckBefore     // (self, shadow_frame, dex_pc_ptr) Note: tail call.
 
+%def opcode_pre():
+%  add_helper(dchecks_before_helper, "Mterp_dchecks_before_helper")
+    #if !defined(NDEBUG)
+    bl     Mterp_dchecks_before_helper
+    #endif
+
 %def footer():
     .cfi_endproc
     END MterpHelpers
@@ -766,13 +766,6 @@
     .global artMterpAsmInstructionEnd
 artMterpAsmInstructionEnd:
 
-%def instruction_end_alt():
-
-    .type artMterpAsmAltInstructionEnd, #object
-    .hidden artMterpAsmAltInstructionEnd
-    .global artMterpAsmAltInstructionEnd
-artMterpAsmAltInstructionEnd:
-
 %def instruction_start():
 
     .type artMterpAsmInstructionStart, #object
@@ -781,14 +774,6 @@
 artMterpAsmInstructionStart = .L_op_nop
     .text
 
-%def instruction_start_alt():
-
-    .type artMterpAsmAltInstructionStart, #object
-    .hidden artMterpAsmAltInstructionStart
-    .global artMterpAsmAltInstructionStart
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
-    .text
-
 %def opcode_start():
     ENTRY Mterp_${opcode}
 %def opcode_end():
diff --git a/runtime/interpreter/mterp/common/gen_setup.py b/runtime/interpreter/mterp/common/gen_setup.py
index d2a6376..cfa5e2e 100644
--- a/runtime/interpreter/mterp/common/gen_setup.py
+++ b/runtime/interpreter/mterp/common/gen_setup.py
@@ -33,20 +33,16 @@
 def balign():
   write_line("    .balign {}".format(handler_size_bytes))
 
-def write_opcode(num, name, write_method, is_alt):
+def write_opcode(num, name, write_method):
   global opnum, opcode
   opnum, opcode = str(num), name
-  if is_alt:
-    name = "ALT_" + name
   write_line("/* ------------------------------ */")
   balign()
   write_line(".L_{1}: /* {0:#04x} */".format(num, name))
-  if is_alt:
-    alt_stub()
-  else:
-    opcode_start()
-    write_method()
-    opcode_end()
+  opcode_start()
+  opcode_pre()
+  write_method()
+  opcode_end()
   write_line("")
   opnum, opcode = None, None
 
@@ -76,7 +72,7 @@
   entry()
 
   instruction_start()
-  opcodes(is_alt = False)
+  opcodes()
   balign()
   instruction_end()
 
@@ -84,11 +80,6 @@
     out.write(helper)
   helpers()
 
-  instruction_start_alt()
-  opcodes(is_alt = True)
-  balign()
-  instruction_end_alt()
-
   footer()
 
   out.seek(0)
diff --git a/runtime/interpreter/mterp/gen_mterp.py b/runtime/interpreter/mterp/gen_mterp.py
index ad6e836..5d25955 100755
--- a/runtime/interpreter/mterp/gen_mterp.py
+++ b/runtime/interpreter/mterp/gen_mterp.py
@@ -58,9 +58,9 @@
   script = StringIO()  # File-like in-memory buffer.
   script.write("# DO NOT EDIT: This file was generated by gen-mterp.py.\n")
   script.write(open(SCRIPT_SETUP_CODE, "r").read())
-  script.write("def opcodes(is_alt):\n")
+  script.write("def opcodes():\n")
   for i, opcode in enumerate(getOpcodeList()):
-    script.write('  write_opcode({0}, "{1}", {1}, is_alt)\n'.format(i, opcode))
+    script.write('  write_opcode({0}, "{1}", {1})\n'.format(i, opcode))
 
   # Read all template files and translate them into python code.
   for input_filename in sorted(input_filenames):
diff --git a/runtime/interpreter/mterp/mterp.cc b/runtime/interpreter/mterp/mterp.cc
index 5cd9e5d..be985ff 100644
--- a/runtime/interpreter/mterp/mterp.cc
+++ b/runtime/interpreter/mterp/mterp.cc
@@ -48,11 +48,7 @@
 }
 
 void InitMterpTls(Thread* self) {
-  self->SetMterpDefaultIBase(artMterpAsmInstructionStart);
-  self->SetMterpAltIBase(artMterpAsmAltInstructionStart);
-  self->SetMterpCurrentIBase((kTraceExecutionEnabled || kTestExportPC) ?
-                             artMterpAsmAltInstructionStart :
-                             artMterpAsmInstructionStart);
+  self->SetMterpCurrentIBase(artMterpAsmInstructionStart);
 }
 
 /*
@@ -177,7 +173,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kVirtual, /*is_range*/ false, /*access_check*/ false, /*fast_invoke*/ true>(
+  return DoInvoke<kVirtual, /*is_range=*/ false, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -188,7 +184,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kSuper, /*is_range*/ false, /*access_check*/ false>(
+  return DoInvoke<kSuper, /*is_range=*/ false, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -199,7 +195,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kInterface, /*is_range*/ false, /*access_check*/ false>(
+  return DoInvoke<kInterface, /*is_range=*/ false, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -210,7 +206,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kDirect, /*is_range*/ false, /*access_check*/ false, /*fast_invoke*/ true>(
+  return DoInvoke<kDirect, /*is_range=*/ false, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -221,7 +217,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kStatic, /*is_range*/ false, /*access_check*/ false, /*fast_invoke*/ true>(
+  return DoInvoke<kStatic, /*is_range=*/ false, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -254,7 +250,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kVirtual, /*is_range*/ true, /*access_check*/ false>(
+  return DoInvoke<kVirtual, /*is_range=*/ true, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -265,7 +261,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kSuper, /*is_range*/ true, /*access_check*/ false>(
+  return DoInvoke<kSuper, /*is_range=*/ true, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -276,7 +272,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kInterface, /*is_range*/ true, /*access_check*/ false>(
+  return DoInvoke<kInterface, /*is_range=*/ true, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -287,7 +283,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kDirect, /*is_range*/ true, /*access_check*/ false>(
+  return DoInvoke<kDirect, /*is_range=*/ true, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
@@ -298,7 +294,7 @@
     REQUIRES_SHARED(Locks::mutator_lock_) {
   JValue* result_register = shadow_frame->GetResultRegister();
   const Instruction* inst = Instruction::At(dex_pc_ptr);
-  return DoInvoke<kStatic, /*is_range*/ true, /*access_check*/ false>(
+  return DoInvoke<kStatic, /*is_range=*/ true, /*do_access_check=*/ false, /*is_mterp=*/ true>(
       self, *shadow_frame, inst, inst_data, result_register);
 }
 
diff --git a/runtime/interpreter/mterp/mterp.h b/runtime/interpreter/mterp/mterp.h
index adde7c6..81a53c8 100644
--- a/runtime/interpreter/mterp/mterp.h
+++ b/runtime/interpreter/mterp/mterp.h
@@ -25,8 +25,6 @@
  */
 extern "C" void* artMterpAsmInstructionStart[];
 extern "C" void* artMterpAsmInstructionEnd[];
-extern "C" void* artMterpAsmAltInstructionStart[];
-extern "C" void* artMterpAsmAltInstructionEnd[];
 
 namespace art {
 
diff --git a/runtime/interpreter/mterp/x86/arithmetic.S b/runtime/interpreter/mterp/x86/arithmetic.S
index 43ca4c8..3b5f0be 100644
--- a/runtime/interpreter/mterp/x86/arithmetic.S
+++ b/runtime/interpreter/mterp/x86/arithmetic.S
@@ -142,7 +142,7 @@
 %def binop(result="%eax", instr=""):
 /*
  * Generic 32-bit binary operation.  Provide an "instr" line that
- * specifies an instruction that performs "result = eax op (rFP,%ecx,4)".
+ * specifies an instruction that performs "result = eax op VREG_ADDRESS(%ecx)".
  * This could be an x86 instruction or a function call.  (If the result
  * comes back in a register other than eax, you can override "result".)
  *
@@ -153,7 +153,7 @@
     movzbl  2(rPC), %eax                    # eax <- BB
     movzbl  3(rPC), %ecx                    # ecx <- CC
     GET_VREG %eax, %eax                     # eax <- vBB
-    $instr                                  # ex: addl    (rFP,%ecx,4),%eax
+    $instr                                  # ex: addl    VREG_ADDRESS(%ecx),%eax
     SET_VREG $result, rINST
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
 
@@ -187,7 +187,7 @@
     sarl    $$4, rINST                      # rINST <- B
     GET_VREG %eax, rINST                    # eax <- vB
     andb    $$0xf, %cl                      # ecx <- A
-    $instr                                  # for ex: addl   %eax,(rFP,%ecx,4)
+    $instr                                  # for ex: addl   %eax,VREG_ADDRESS(%ecx)
     CLEAR_REF %ecx
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
@@ -240,8 +240,8 @@
     movl    rIBASE, LOCAL0(%esp)            # save rIBASE
     GET_VREG rIBASE, %eax                   # rIBASE <- v[BB+0]
     GET_VREG_HIGH %eax, %eax                # eax <- v[BB+1]
-    $instr1                                 # ex: addl   (rFP,%ecx,4),rIBASE
-    $instr2                                 # ex: adcl   4(rFP,%ecx,4),%eax
+    $instr1                                 # ex: addl   VREG_ADDRESS(%ecx),rIBASE
+    $instr2                                 # ex: adcl   VREG_HIGH_ADDRESS(%ecx),%eax
     SET_VREG rIBASE, rINST                  # v[AA+0] <- rIBASE
     movl    LOCAL0(%esp), rIBASE            # restore rIBASE
     SET_VREG_HIGH %eax, rINST               # v[AA+1] <- eax
@@ -355,10 +355,10 @@
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
 %def op_add_int():
-%  binop(instr="addl    (rFP,%ecx,4), %eax")
+%  binop(instr="addl    VREG_ADDRESS(%ecx), %eax")
 
 %def op_add_int_2addr():
-%  binop2addr(instr="addl    %eax, (rFP,%ecx,4)")
+%  binop2addr(instr="addl    %eax, VREG_ADDRESS(%ecx)")
 
 %def op_add_int_lit16():
 %  binopLit16(instr="addl    %ecx, %eax")
@@ -367,16 +367,16 @@
 %  binopLit8(instr="addl    %ecx, %eax")
 
 %def op_add_long():
-%  binopWide(instr1="addl    (rFP,%ecx,4), rIBASE", instr2="adcl    4(rFP,%ecx,4), %eax")
+%  binopWide(instr1="addl    VREG_ADDRESS(%ecx), rIBASE", instr2="adcl    VREG_HIGH_ADDRESS(%ecx), %eax")
 
 %def op_add_long_2addr():
 %  binopWide2addr(instr1="addl    %eax, (rFP,rINST,4)", instr2="adcl    %ecx, 4(rFP,rINST,4)")
 
 %def op_and_int():
-%  binop(instr="andl    (rFP,%ecx,4), %eax")
+%  binop(instr="andl    VREG_ADDRESS(%ecx), %eax")
 
 %def op_and_int_2addr():
-%  binop2addr(instr="andl    %eax, (rFP,%ecx,4)")
+%  binop2addr(instr="andl    %eax, VREG_ADDRESS(%ecx)")
 
 %def op_and_int_lit16():
 %  binopLit16(instr="andl    %ecx, %eax")
@@ -385,7 +385,7 @@
 %  binopLit8(instr="andl    %ecx, %eax")
 
 %def op_and_long():
-%  binopWide(instr1="andl    (rFP,%ecx,4), rIBASE", instr2="andl    4(rFP,%ecx,4), %eax")
+%  binopWide(instr1="andl    VREG_ADDRESS(%ecx), rIBASE", instr2="andl    VREG_HIGH_ADDRESS(%ecx), %eax")
 
 %def op_and_long_2addr():
 %  binopWide2addr(instr1="andl    %eax, (rFP,rINST,4)", instr2="andl    %ecx, 4(rFP,rINST,4)")
@@ -517,7 +517,7 @@
     movzbl  3(rPC), %ecx                    # ecx <- CC
     GET_VREG %eax, %eax                     # eax <- vBB
     mov     rIBASE, LOCAL0(%esp)
-    imull   (rFP,%ecx,4), %eax              # trashes rIBASE/edx
+    imull   VREG_ADDRESS(%ecx), %eax        # trashes rIBASE/edx
     mov     LOCAL0(%esp), rIBASE
     SET_VREG %eax, rINST
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
@@ -529,7 +529,7 @@
     GET_VREG %eax, rINST                    # eax <- vB
     andb    $$0xf, %cl                      # ecx <- A
     movl    rIBASE, rINST
-    imull   (rFP,%ecx,4), %eax              # trashes rIBASE/edx
+    imull   VREG_ADDRESS(%ecx), %eax        # trashes rIBASE/edx
     movl    rINST, rIBASE
     SET_VREG %eax, %ecx
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
@@ -578,7 +578,7 @@
     mov     rFP, LOCAL1(%esp)               # save FP
     mov     rIBASE, LOCAL2(%esp)            # save rIBASE
     leal    (rFP,%eax,4), %esi              # esi <- &v[B]
-    leal    (rFP,%ecx,4), rFP               # rFP <- &v[C]
+    leal    VREG_ADDRESS(%ecx), rFP         # rFP <- &v[C]
     movl    4(%esi), %ecx                   # ecx <- Bmsw
     imull   (rFP), %ecx                     # ecx <- (Bmsw*Clsw)
     movl    4(rFP), %eax                    # eax <- Cmsw
@@ -666,10 +666,10 @@
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
 %def op_or_int():
-%  binop(instr="orl     (rFP,%ecx,4), %eax")
+%  binop(instr="orl     VREG_ADDRESS(%ecx), %eax")
 
 %def op_or_int_2addr():
-%  binop2addr(instr="orl     %eax, (rFP,%ecx,4)")
+%  binop2addr(instr="orl     %eax, VREG_ADDRESS(%ecx)")
 
 %def op_or_int_lit16():
 %  binopLit16(instr="orl     %ecx, %eax")
@@ -678,7 +678,7 @@
 %  binopLit8(instr="orl     %ecx, %eax")
 
 %def op_or_long():
-%  binopWide(instr1="orl     (rFP,%ecx,4), rIBASE", instr2="orl     4(rFP,%ecx,4), %eax")
+%  binopWide(instr1="orl     VREG_ADDRESS(%ecx), rIBASE", instr2="orl     VREG_HIGH_ADDRESS(%ecx), %eax")
 
 %def op_or_long_2addr():
 %  binopWide2addr(instr1="orl     %eax, (rFP,rINST,4)", instr2="orl     %ecx, 4(rFP,rINST,4)")
@@ -845,13 +845,13 @@
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
 %def op_sub_int():
-%  binop(instr="subl    (rFP,%ecx,4), %eax")
+%  binop(instr="subl    VREG_ADDRESS(%ecx), %eax")
 
 %def op_sub_int_2addr():
-%  binop2addr(instr="subl    %eax, (rFP,%ecx,4)")
+%  binop2addr(instr="subl    %eax, VREG_ADDRESS(%ecx)")
 
 %def op_sub_long():
-%  binopWide(instr1="subl    (rFP,%ecx,4), rIBASE", instr2="sbbl    4(rFP,%ecx,4), %eax")
+%  binopWide(instr1="subl    VREG_ADDRESS(%ecx), rIBASE", instr2="sbbl    VREG_HIGH_ADDRESS(%ecx), %eax")
 
 %def op_sub_long_2addr():
 %  binopWide2addr(instr1="subl    %eax, (rFP,rINST,4)", instr2="sbbl    %ecx, 4(rFP,rINST,4)")
@@ -925,10 +925,10 @@
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
 %def op_xor_int():
-%  binop(instr="xorl    (rFP,%ecx,4), %eax")
+%  binop(instr="xorl    VREG_ADDRESS(%ecx), %eax")
 
 %def op_xor_int_2addr():
-%  binop2addr(instr="xorl    %eax, (rFP,%ecx,4)")
+%  binop2addr(instr="xorl    %eax, VREG_ADDRESS(%ecx)")
 
 %def op_xor_int_lit16():
 %  binopLit16(instr="xorl    %ecx, %eax")
@@ -937,7 +937,7 @@
 %  binopLit8(instr="xorl    %ecx, %eax")
 
 %def op_xor_long():
-%  binopWide(instr1="xorl    (rFP,%ecx,4), rIBASE", instr2="xorl    4(rFP,%ecx,4), %eax")
+%  binopWide(instr1="xorl    VREG_ADDRESS(%ecx), rIBASE", instr2="xorl    VREG_HIGH_ADDRESS(%ecx), %eax")
 
 %def op_xor_long_2addr():
 %  binopWide2addr(instr1="xorl    %eax, (rFP,rINST,4)", instr2="xorl    %ecx, 4(rFP,rINST,4)")
diff --git a/runtime/interpreter/mterp/x86/main.S b/runtime/interpreter/mterp/x86/main.S
index b44f168..04b653e 100644
--- a/runtime/interpreter/mterp/x86/main.S
+++ b/runtime/interpreter/mterp/x86/main.S
@@ -273,47 +273,47 @@
 #define VREG_REF_HIGH_ADDRESS(_vreg) 4(rREFS,_vreg,4)
 
 .macro GET_VREG _reg _vreg
-    movl    (rFP,\_vreg,4), \_reg
+    movl    VREG_ADDRESS(\_vreg), \_reg
 .endm
 
 /* Read wide value to xmm. */
 .macro GET_WIDE_FP_VREG _reg _vreg
-    movq    (rFP,\_vreg,4), \_reg
+    movq    VREG_ADDRESS(\_vreg), \_reg
 .endm
 
 .macro SET_VREG _reg _vreg
-    movl    \_reg, (rFP,\_vreg,4)
-    movl    MACRO_LITERAL(0), (rREFS,\_vreg,4)
+    movl    \_reg, VREG_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
 .endm
 
 /* Write wide value from xmm. xmm is clobbered. */
 .macro SET_WIDE_FP_VREG _reg _vreg
-    movq    \_reg, (rFP,\_vreg,4)
+    movq    \_reg, VREG_ADDRESS(\_vreg)
     pxor    \_reg, \_reg
-    movq    \_reg, (rREFS,\_vreg,4)
+    movq    \_reg, VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro SET_VREG_OBJECT _reg _vreg
-    movl    \_reg, (rFP,\_vreg,4)
-    movl    \_reg, (rREFS,\_vreg,4)
+    movl    \_reg, VREG_ADDRESS(\_vreg)
+    movl    \_reg, VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro GET_VREG_HIGH _reg _vreg
-    movl    4(rFP,\_vreg,4), \_reg
+    movl    VREG_HIGH_ADDRESS(\_vreg), \_reg
 .endm
 
 .macro SET_VREG_HIGH _reg _vreg
-    movl    \_reg, 4(rFP,\_vreg,4)
-    movl    MACRO_LITERAL(0), 4(rREFS,\_vreg,4)
+    movl    \_reg, VREG_HIGH_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_HIGH_ADDRESS(\_vreg)
 .endm
 
 .macro CLEAR_REF _vreg
-    movl    MACRO_LITERAL(0),  (rREFS,\_vreg,4)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro CLEAR_WIDE_REF _vreg
-    movl    MACRO_LITERAL(0),  (rREFS,\_vreg,4)
-    movl    MACRO_LITERAL(0), 4(rREFS,\_vreg,4)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_HIGH_ADDRESS(\_vreg)
 .endm
 
 /*
@@ -410,26 +410,24 @@
     // cfi info continues, and covers the whole mterp implementation.
     END ExecuteMterpImpl
 
-%def alt_stub():
-/*
- * Inter-instruction transfer stub.  Call out to MterpCheckBefore to handle
- * any interesting requests and then jump to the real instruction
- * handler.  Unlike the Arm handler, we can't do this as a tail call
- * because rIBASE is caller save and we need to reload it.
- *
- * Note that unlike in the Arm implementation, we should never arrive
- * here with a zero breakFlag because we always refresh rIBASE on
- * return.
- */
+%def dchecks_before_helper():
+    // Call C++ to do debug checks and return to the handler using tail call.
     .extern MterpCheckBefore
+    popl    %eax                     # Return address (the instuction handler).
     movl    rSELF, %ecx
     movl    %ecx, OUT_ARG0(%esp)
-    leal    OFF_FP_SHADOWFRAME(rFP), %eax
-    movl    %eax, OUT_ARG1(%esp)
+    leal    OFF_FP_SHADOWFRAME(rFP), %ecx
+    movl    %ecx, OUT_ARG1(%esp)
     movl    rPC, OUT_ARG2(%esp)
-    call    SYMBOL(MterpCheckBefore)        # (self, shadow_frame, dex_pc_ptr)
+    pushl   %eax                     # Return address for the tail call.
+    jmp     SYMBOL(MterpCheckBefore) # (self, shadow_frame, dex_pc_ptr)
+
+%def opcode_pre():
+%  add_helper(dchecks_before_helper, "Mterp_dchecks_before_helper")
+    #if !defined(NDEBUG)
+    call    SYMBOL(Mterp_dchecks_before_helper)
     REFRESH_IBASE
-    jmp     .L_op_nop+(${opnum}*${handler_size_bytes})
+    #endif
 
 %def fallback():
 /* Transfer stub to alternate interpreter */
@@ -773,13 +771,6 @@
     .global SYMBOL(artMterpAsmInstructionEnd)
 SYMBOL(artMterpAsmInstructionEnd):
 
-%def instruction_end_alt():
-
-    OBJECT_TYPE(artMterpAsmAltInstructionEnd)
-    ASM_HIDDEN SYMBOL(artMterpAsmAltInstructionEnd)
-    .global SYMBOL(artMterpAsmAltInstructionEnd)
-SYMBOL(artMterpAsmAltInstructionEnd):
-
 %def instruction_start():
 
     OBJECT_TYPE(artMterpAsmInstructionStart)
@@ -788,14 +779,6 @@
 SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
     .text
 
-%def instruction_start_alt():
-
-    OBJECT_TYPE(artMterpAsmAltInstructionStart)
-    ASM_HIDDEN SYMBOL(artMterpAsmAltInstructionStart)
-    .global SYMBOL(artMterpAsmAltInstructionStart)
-    .text
-SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
-
 %def opcode_start():
     ENTRY Mterp_${opcode}
 %def opcode_end():
diff --git a/runtime/interpreter/mterp/x86_64/arithmetic.S b/runtime/interpreter/mterp/x86_64/arithmetic.S
index ffe2008..263f82b 100644
--- a/runtime/interpreter/mterp/x86_64/arithmetic.S
+++ b/runtime/interpreter/mterp/x86_64/arithmetic.S
@@ -137,7 +137,7 @@
     movzbq  2(rPC), %rax                    # rax <- BB
     movzbq  3(rPC), %rcx                    # rcx <- CC
     GET_VREG %eax, %rax                     # eax <- vBB
-    $instr                                  # ex: addl    (rFP,%rcx,4),%eax
+    $instr                                  # ex: addl    VREG_ADDRESS(%rcx),%eax
     SET_VREG $result, rINSTq
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
 
@@ -228,7 +228,7 @@
     movzbq  2(rPC), %rax                    # eax <- BB
     movzbq  3(rPC), %rcx                    # ecx <- CC
     GET_WIDE_VREG %rax, %rax                # rax <- v[BB]
-    $instr                                  # ex: addq   (rFP,%rcx,4),%rax
+    $instr                                  # ex: addq   VREG_ADDRESS(%rcx),%rax
     SET_WIDE_VREG %rax, rINSTq              # v[AA] <- rax
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
 
@@ -241,7 +241,7 @@
     sarl    $$4, rINST                      # rINST <- B
     andb    $$0xf, %cl                      # ecx <- A
     GET_WIDE_VREG %rax, rINSTq              # rax <- vB
-    $instr                                  # for ex: addq   %rax,(rFP,%rcx,4)
+    $instr                                  # for ex: addq   %rax,VREG_ADDRESS(%rcx)
     CLEAR_WIDE_REF %rcx
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
@@ -317,10 +317,10 @@
     ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
 
 %def op_add_int():
-%  binop(instr="addl    (rFP,%rcx,4), %eax")
+%  binop(instr="addl    VREG_ADDRESS(%rcx), %eax")
 
 %def op_add_int_2addr():
-%  binop2addr(instr="addl    %eax, (rFP,%rcx,4)")
+%  binop2addr(instr="addl    %eax, VREG_ADDRESS(%rcx)")
 
 %def op_add_int_lit16():
 %  binopLit16(instr="addl    %ecx, %eax")
@@ -329,16 +329,16 @@
 %  binopLit8(instr="addl    %ecx, %eax")
 
 %def op_add_long():
-%  binopWide(instr="addq    (rFP,%rcx,4), %rax")
+%  binopWide(instr="addq    VREG_ADDRESS(%rcx), %rax")
 
 %def op_add_long_2addr():
-%  binopWide2addr(instr="addq    %rax, (rFP,%rcx,4)")
+%  binopWide2addr(instr="addq    %rax, VREG_ADDRESS(%rcx)")
 
 %def op_and_int():
-%  binop(instr="andl    (rFP,%rcx,4), %eax")
+%  binop(instr="andl    VREG_ADDRESS(%rcx), %eax")
 
 %def op_and_int_2addr():
-%  binop2addr(instr="andl    %eax, (rFP,%rcx,4)")
+%  binop2addr(instr="andl    %eax, VREG_ADDRESS(%rcx)")
 
 %def op_and_int_lit16():
 %  binopLit16(instr="andl    %ecx, %eax")
@@ -347,10 +347,10 @@
 %  binopLit8(instr="andl    %ecx, %eax")
 
 %def op_and_long():
-%  binopWide(instr="andq    (rFP,%rcx,4), %rax")
+%  binopWide(instr="andq    VREG_ADDRESS(%rcx), %rax")
 
 %def op_and_long_2addr():
-%  binopWide2addr(instr="andq    %rax, (rFP,%rcx,4)")
+%  binopWide2addr(instr="andq    %rax, VREG_ADDRESS(%rcx)")
 
 %def op_cmp_long():
 /*
@@ -413,7 +413,7 @@
 %  op_move()
 
 %def op_mul_int():
-%  binop(instr="imull   (rFP,%rcx,4), %eax")
+%  binop(instr="imull   VREG_ADDRESS(%rcx), %eax")
 
 %def op_mul_int_2addr():
     /* mul vA, vB */
@@ -432,7 +432,7 @@
 %  binopLit8(instr="imull   %ecx, %eax")
 
 %def op_mul_long():
-%  binopWide(instr="imulq   (rFP,%rcx,4), %rax")
+%  binopWide(instr="imulq   VREG_ADDRESS(%rcx), %rax")
 
 %def op_mul_long_2addr():
     /* mul vA, vB */
@@ -457,10 +457,10 @@
 %  unop(instr="    notq    %rax", wide="1")
 
 %def op_or_int():
-%  binop(instr="orl     (rFP,%rcx,4), %eax")
+%  binop(instr="orl     VREG_ADDRESS(%rcx), %eax")
 
 %def op_or_int_2addr():
-%  binop2addr(instr="orl     %eax, (rFP,%rcx,4)")
+%  binop2addr(instr="orl     %eax, VREG_ADDRESS(%rcx)")
 
 %def op_or_int_lit16():
 %  binopLit16(instr="orl     %ecx, %eax")
@@ -469,10 +469,10 @@
 %  binopLit8(instr="orl     %ecx, %eax")
 
 %def op_or_long():
-%  binopWide(instr="orq     (rFP,%rcx,4), %rax")
+%  binopWide(instr="orq     VREG_ADDRESS(%rcx), %rax")
 
 %def op_or_long_2addr():
-%  binopWide2addr(instr="orq     %rax, (rFP,%rcx,4)")
+%  binopWide2addr(instr="orq     %rax, VREG_ADDRESS(%rcx)")
 
 %def op_rem_int():
 %  bindiv(result="%edx", second="%ecx", wide="0", suffix="l", rem="1")
@@ -530,16 +530,16 @@
 %  shop2addr(instr="sarq    %cl, %rax", wide="1")
 
 %def op_sub_int():
-%  binop(instr="subl    (rFP,%rcx,4), %eax")
+%  binop(instr="subl    VREG_ADDRESS(%rcx), %eax")
 
 %def op_sub_int_2addr():
-%  binop2addr(instr="subl    %eax, (rFP,%rcx,4)")
+%  binop2addr(instr="subl    %eax, VREG_ADDRESS(%rcx)")
 
 %def op_sub_long():
-%  binopWide(instr="subq    (rFP,%rcx,4), %rax")
+%  binopWide(instr="subq    VREG_ADDRESS(%rcx), %rax")
 
 %def op_sub_long_2addr():
-%  binopWide2addr(instr="subq    %rax, (rFP,%rcx,4)")
+%  binopWide2addr(instr="subq    %rax, VREG_ADDRESS(%rcx)")
 
 %def op_ushr_int():
 %  binop1(instr="shrl    %cl, %eax")
@@ -557,10 +557,10 @@
 %  shop2addr(instr="shrq    %cl, %rax", wide="1")
 
 %def op_xor_int():
-%  binop(instr="xorl    (rFP,%rcx,4), %eax")
+%  binop(instr="xorl    VREG_ADDRESS(%rcx), %eax")
 
 %def op_xor_int_2addr():
-%  binop2addr(instr="xorl    %eax, (rFP,%rcx,4)")
+%  binop2addr(instr="xorl    %eax, VREG_ADDRESS(%rcx)")
 
 %def op_xor_int_lit16():
 %  binopLit16(instr="xorl    %ecx, %eax")
@@ -569,7 +569,7 @@
 %  binopLit8(instr="xorl    %ecx, %eax")
 
 %def op_xor_long():
-%  binopWide(instr="xorq    (rFP,%rcx,4), %rax")
+%  binopWide(instr="xorq    VREG_ADDRESS(%rcx), %rax")
 
 %def op_xor_long_2addr():
-%  binopWide2addr(instr="xorq    %rax, (rFP,%rcx,4)")
+%  binopWide2addr(instr="xorq    %rax, VREG_ADDRESS(%rcx)")
diff --git a/runtime/interpreter/mterp/x86_64/main.S b/runtime/interpreter/mterp/x86_64/main.S
index 900923d..e283bbe 100644
--- a/runtime/interpreter/mterp/x86_64/main.S
+++ b/runtime/interpreter/mterp/x86_64/main.S
@@ -256,50 +256,52 @@
  * Get/set the 32-bit value from a Dalvik register.
  */
 #define VREG_ADDRESS(_vreg) (rFP,_vreg,4)
+#define VREG_HIGH_ADDRESS(_vreg) 4(rFP,_vreg,4)
 #define VREG_REF_ADDRESS(_vreg) (rREFS,_vreg,4)
+#define VREG_REF_HIGH_ADDRESS(_vreg) 4(rREFS,_vreg,4)
 
 .macro GET_VREG _reg _vreg
-    movl    (rFP,\_vreg,4), \_reg
+    movl    VREG_ADDRESS(\_vreg), \_reg
 .endm
 
 /* Read wide value. */
 .macro GET_WIDE_VREG _reg _vreg
-    movq    (rFP,\_vreg,4), \_reg
+    movq    VREG_ADDRESS(\_vreg), \_reg
 .endm
 
 .macro SET_VREG _reg _vreg
-    movl    \_reg, (rFP,\_vreg,4)
-    movl    MACRO_LITERAL(0), (rREFS,\_vreg,4)
+    movl    \_reg, VREG_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
 .endm
 
 /* Write wide value. reg is clobbered. */
 .macro SET_WIDE_VREG _reg _vreg
-    movq    \_reg, (rFP,\_vreg,4)
+    movq    \_reg, VREG_ADDRESS(\_vreg)
     xorq    \_reg, \_reg
-    movq    \_reg, (rREFS,\_vreg,4)
+    movq    \_reg, VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro SET_VREG_OBJECT _reg _vreg
-    movl    \_reg, (rFP,\_vreg,4)
-    movl    \_reg, (rREFS,\_vreg,4)
+    movl    \_reg, VREG_ADDRESS(\_vreg)
+    movl    \_reg, VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro GET_VREG_HIGH _reg _vreg
-    movl    4(rFP,\_vreg,4), \_reg
+    movl    VREG_HIGH_ADDRESS(\_vreg), \_reg
 .endm
 
 .macro SET_VREG_HIGH _reg _vreg
-    movl    \_reg, 4(rFP,\_vreg,4)
-    movl    MACRO_LITERAL(0), 4(rREFS,\_vreg,4)
+    movl    \_reg, VREG_HIGH_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_HIGH_ADDRESS(\_vreg)
 .endm
 
 .macro CLEAR_REF _vreg
-    movl    MACRO_LITERAL(0),  (rREFS,\_vreg,4)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
 .endm
 
 .macro CLEAR_WIDE_REF _vreg
-    movl    MACRO_LITERAL(0),  (rREFS,\_vreg,4)
-    movl    MACRO_LITERAL(0), 4(rREFS,\_vreg,4)
+    movl    MACRO_LITERAL(0), VREG_REF_ADDRESS(\_vreg)
+    movl    MACRO_LITERAL(0), VREG_REF_HIGH_ADDRESS(\_vreg)
 .endm
 
 /*
@@ -393,24 +395,22 @@
     // cfi info continues, and covers the whole mterp implementation.
     END ExecuteMterpImpl
 
-%def alt_stub():
-/*
- * Inter-instruction transfer stub.  Call out to MterpCheckBefore to handle
- * any interesting requests and then jump to the real instruction
- * handler.  Unlike the Arm handler, we can't do this as a tail call
- * because rIBASE is caller save and we need to reload it.
- *
- * Note that unlike in the Arm implementation, we should never arrive
- * here with a zero breakFlag because we always refresh rIBASE on
- * return.
- */
+%def dchecks_before_helper():
+    // Call C++ to do debug checks and return to the handler using tail call.
     .extern MterpCheckBefore
+    popq    %rax                     # Return address (the instuction handler).
     REFRESH_IBASE
     movq    rSELF, OUT_ARG0
     leaq    OFF_FP_SHADOWFRAME(rFP), OUT_ARG1
     movq    rPC, OUT_ARG2
-    call    SYMBOL(MterpCheckBefore)        # (self, shadow_frame, dex_pc_ptr)
-    jmp     .L_op_nop+(${opnum}*${handler_size_bytes})
+    pushq   %rax                     # Return address for the tail call.
+    jmp     SYMBOL(MterpCheckBefore) # (self, shadow_frame, dex_pc_ptr)
+
+%def opcode_pre():
+%  add_helper(dchecks_before_helper, "Mterp_dchecks_before_helper")
+    #if !defined(NDEBUG)
+    call    SYMBOL(Mterp_dchecks_before_helper)
+    #endif
 
 %def fallback():
 /* Transfer stub to alternate interpreter */
@@ -726,13 +726,6 @@
     .global SYMBOL(artMterpAsmInstructionEnd)
 SYMBOL(artMterpAsmInstructionEnd):
 
-%def instruction_end_alt():
-
-    OBJECT_TYPE(artMterpAsmAltInstructionEnd)
-    ASM_HIDDEN SYMBOL(artMterpAsmAltInstructionEnd)
-    .global SYMBOL(artMterpAsmAltInstructionEnd)
-SYMBOL(artMterpAsmAltInstructionEnd):
-
 %def instruction_start():
 
     OBJECT_TYPE(artMterpAsmInstructionStart)
@@ -741,14 +734,6 @@
 SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
     .text
 
-%def instruction_start_alt():
-
-    OBJECT_TYPE(artMterpAsmAltInstructionStart)
-    ASM_HIDDEN SYMBOL(artMterpAsmAltInstructionStart)
-    .global SYMBOL(artMterpAsmAltInstructionStart)
-    .text
-SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
-
 %def opcode_start():
     ENTRY Mterp_${opcode}
 %def opcode_end():
diff --git a/runtime/jdwp/jdwp_handler.cc b/runtime/jdwp/jdwp_handler.cc
index 0a54e38..d31f166 100644
--- a/runtime/jdwp/jdwp_handler.cc
+++ b/runtime/jdwp/jdwp_handler.cc
@@ -1344,13 +1344,14 @@
   VLOG(jdwp) << StringPrintf("    --> event requestId=%#x", requestId);
 
   /* add it to the list */
+  // TODO: RegisterEvent() should take std::unique_ptr<>.
   JdwpError err = state->RegisterEvent(pEvent.get());
   if (err != ERR_NONE) {
     /* registration failed, probably because event is bogus */
     LOG(WARNING) << "WARNING: event request rejected";
     return err;
   }
-  pEvent.release();
+  pEvent.release();  // NOLINT b/117926937
   return ERR_NONE;
 }
 
diff --git a/runtime/native/dalvik_system_DexFile.cc b/runtime/native/dalvik_system_DexFile.cc
index 36f9b1a..6becd36 100644
--- a/runtime/native/dalvik_system_DexFile.cc
+++ b/runtime/native/dalvik_system_DexFile.cc
@@ -112,7 +112,7 @@
 
   // Now release all the unique_ptrs.
   for (auto& dex_file : vec) {
-    dex_file.release();
+    dex_file.release();  // NOLINT
   }
 
   return long_array;
@@ -295,7 +295,7 @@
       ScopedObjectAccess soa(env);
       for (auto& dex_file : dex_files) {
         if (linker->IsDexFileRegistered(soa.Self(), *dex_file)) {
-          dex_file.release();
+          dex_file.release();  // NOLINT
         }
       }
     }
diff --git a/runtime/oat.h b/runtime/oat.h
index 963725a..5c5a02d 100644
--- a/runtime/oat.h
+++ b/runtime/oat.h
@@ -32,8 +32,8 @@
 class PACKED(4) OatHeader {
  public:
   static constexpr uint8_t kOatMagic[] = { 'o', 'a', 't', '\n' };
-  // Last oat version changed reason: Remove PIC option from oat files.
-  static constexpr uint8_t kOatVersion[] = { '1', '6', '2', '\0' };
+  // Last oat version changed reason: Remove interpreter alt tables.
+  static constexpr uint8_t kOatVersion[] = { '1', '6', '3', '\0' };
 
   static constexpr const char* kImageLocationKey = "image-location";
   static constexpr const char* kDex2OatCmdLineKey = "dex2oat-cmdline";
diff --git a/runtime/oat_file_manager.cc b/runtime/oat_file_manager.cc
index a9ef9a3..b9e9d38 100644
--- a/runtime/oat_file_manager.cc
+++ b/runtime/oat_file_manager.cc
@@ -84,7 +84,7 @@
   auto it = oat_files_.find(compare);
   CHECK(it != oat_files_.end());
   oat_files_.erase(it);
-  compare.release();
+  compare.release();  // NOLINT b/117926937
 }
 
 const OatFile* OatFileManager::FindOpenedOatFileFromDexLocation(
@@ -567,7 +567,7 @@
           if (added_image_space) {
             // Successfully added image space to heap, release the map so that it does not get
             // freed.
-            image_space.release();
+            image_space.release();  // NOLINT b/117926937
 
             // Register for tracking.
             for (const auto& dex_file : dex_files) {
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index b3a2bdd..4d77b9d 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -165,6 +165,11 @@
 #include <android/set_abort_message.h>
 #endif
 
+// Static asserts to check the values of generated assembly-support macros.
+#define ASM_DEFINE(NAME, EXPR) static_assert((NAME) == (EXPR), "Unexpected value of " #NAME);
+#include "asm_defines.def"
+#undef ASM_DEFINE
+
 namespace art {
 
 // If a signal isn't handled properly, enable a handler that attempts to dump the Java stack.
diff --git a/runtime/thread.cc b/runtime/thread.cc
index 51775c6..b3492e1 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -729,7 +729,7 @@
       // JNIEnvExt we created.
       // Note: we can't check for tmp_jni_env == nullptr, as that would require synchronization
       //       between the threads.
-      child_jni_env_ext.release();
+      child_jni_env_ext.release();  // NOLINT pthreads API.
       return;
     }
   }
diff --git a/runtime/thread.h b/runtime/thread.h
index 47a3af2..d7dc5ae 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -743,18 +743,6 @@
   }
 
   template<PointerSize pointer_size>
-  static constexpr ThreadOffset<pointer_size> MterpDefaultIBaseOffset() {
-    return ThreadOffsetFromTlsPtr<pointer_size>(
-        OFFSETOF_MEMBER(tls_ptr_sized_values, mterp_default_ibase));
-  }
-
-  template<PointerSize pointer_size>
-  static constexpr ThreadOffset<pointer_size> MterpAltIBaseOffset() {
-    return ThreadOffsetFromTlsPtr<pointer_size>(
-        OFFSETOF_MEMBER(tls_ptr_sized_values, mterp_alt_ibase));
-  }
-
-  template<PointerSize pointer_size>
   static constexpr ThreadOffset<pointer_size> ExceptionOffset() {
     return ThreadOffsetFromTlsPtr<pointer_size>(OFFSETOF_MEMBER(tls_ptr_sized_values, exception));
   }
@@ -1199,30 +1187,14 @@
   bool ProtectStack(bool fatal_on_error = true);
   bool UnprotectStack();
 
-  void SetMterpDefaultIBase(void* ibase) {
-    tlsPtr_.mterp_default_ibase = ibase;
-  }
-
   void SetMterpCurrentIBase(void* ibase) {
     tlsPtr_.mterp_current_ibase = ibase;
   }
 
-  void SetMterpAltIBase(void* ibase) {
-    tlsPtr_.mterp_alt_ibase = ibase;
-  }
-
-  const void* GetMterpDefaultIBase() const {
-    return tlsPtr_.mterp_default_ibase;
-  }
-
   const void* GetMterpCurrentIBase() const {
     return tlsPtr_.mterp_current_ibase;
   }
 
-  const void* GetMterpAltIBase() const {
-    return tlsPtr_.mterp_alt_ibase;
-  }
-
   bool HandlingSignal() const {
     return tls32_.handling_signal_;
   }
@@ -1599,8 +1571,7 @@
       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), mterp_default_ibase(nullptr),
-      mterp_alt_ibase(nullptr), thread_local_alloc_stack_top(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) {
@@ -1737,10 +1708,8 @@
     JniEntryPoints jni_entrypoints;
     QuickEntryPoints quick_entrypoints;
 
-    // Mterp jump table bases.
+    // Mterp jump table base.
     void* mterp_current_ibase;
-    void* mterp_default_ibase;
-    void* mterp_alt_ibase;
 
     // There are RosAlloc::kNumThreadLocalSizeBrackets thread-local size brackets per thread.
     void* rosalloc_runs[kNumRosAllocThreadLocalSizeBracketsInThread];
diff --git a/tools/ahat/Android.mk b/tools/ahat/Android.mk
index 32e5b55..dcd9105 100644
--- a/tools/ahat/Android.mk
+++ b/tools/ahat/Android.mk
@@ -104,9 +104,17 @@
 $(AHAT_TEST_DUMP_PROGUARD_MAP): $(proguard_dictionary)
 	cp $(PRIVATE_AHAT_SOURCE_PROGUARD_MAP) $@
 
+ifeq (true,$(HOST_PREFER_32_BIT))
+  AHAT_TEST_DALVIKVM_DEP := $(HOST_OUT_EXECUTABLES)/dalvikvm32
+  AHAT_TEST_DALVIKVM_ARG := --32
+else
+  AHAT_TEST_DALVIKVM_DEP := $(HOST_OUT_EXECUTABLES)/dalvikvm64
+  AHAT_TEST_DALVIKVM_ARG := --64
+endif
+
 # Run ahat-test-dump.jar to generate test-dump.hprof and test-dump-base.hprof
 AHAT_TEST_DUMP_DEPENDENCIES := \
-  $(HOST_OUT_EXECUTABLES)/dalvikvm64 \
+  $(AHAT_TEST_DALVIKVM_DEP) \
   $(ART_HOST_SHARED_LIBRARY_DEBUG_DEPENDENCIES) \
   $(HOST_OUT_EXECUTABLES)/art \
   $(HOST_CORE_IMG_OUT_BASE)$(CORE_IMG_SUFFIX)
@@ -114,20 +122,24 @@
 $(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
 $(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
 $(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_ANDROID_DATA)
+$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_DALVIKVM_ARG := $(AHAT_TEST_DALVIKVM_ARG)
 $(AHAT_TEST_DUMP_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
 	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
 	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
 	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
-	  $(PRIVATE_AHAT_TEST_ART) -d --64 -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@
+	  $(PRIVATE_AHAT_TEST_ART) -d $(PRIVATE_AHAT_TEST_DALVIKVM_ARG) \
+	  -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@
 
 $(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
 $(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
 $(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_BASE_ANDROID_DATA)
+$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_DALVIKVM_ARG := $(AHAT_TEST_DALVIKVM_ARG)
 $(AHAT_TEST_DUMP_BASE_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
 	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
 	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
 	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
-	  $(PRIVATE_AHAT_TEST_ART) -d --64 -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@ --base
+	  $(PRIVATE_AHAT_TEST_ART) -d $(PRIVATE_AHAT_TEST_DALVIKVM_ARG) \
+	  -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@ --base
 
 # --- ahat-ri-test-dump.jar -------
 include $(CLEAR_VARS)
diff --git a/tools/cpp-define-generator/asm_defines.cc b/tools/cpp-define-generator/asm_defines.cc
index c105c1a..b79e1ae 100644
--- a/tools/cpp-define-generator/asm_defines.cc
+++ b/tools/cpp-define-generator/asm_defines.cc
@@ -31,6 +31,6 @@
 #define ASM_DEFINE(NAME, EXPR) \
 void AsmDefineHelperFor_##NAME() { \
   asm volatile("\n.ascii \">>" #NAME " %0 %1<<\"" \
-  :: "i" (static_cast<int64_t>(EXPR)), "i" (EXPR < 0 ? 1 : 0)); \
+  :: "i" (static_cast<int64_t>(EXPR)), "i" ((EXPR) < 0 ? 1 : 0)); \
 }
 #include "asm_defines.def"
diff --git a/tools/cpp-define-generator/thread.def b/tools/cpp-define-generator/thread.def
index 2dd90fa..7b19076 100644
--- a/tools/cpp-define-generator/thread.def
+++ b/tools/cpp-define-generator/thread.def
@@ -18,16 +18,12 @@
 #include "thread.h"
 #endif
 
-ASM_DEFINE(THREAD_ALT_IBASE_OFFSET,
-           art::Thread::MterpAltIBaseOffset<art::kRuntimePointerSize>().Int32Value())
 ASM_DEFINE(THREAD_CARD_TABLE_OFFSET,
            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_DEFAULT_IBASE_OFFSET,
-           art::Thread::MterpDefaultIBaseOffset<art::kRuntimePointerSize>().Int32Value())
 ASM_DEFINE(THREAD_EMPTY_CHECKPOINT_REQUEST,
            art::kEmptyCheckpointRequest)
 ASM_DEFINE(THREAD_EXCEPTION_OFFSET,