diff --git a/compiler/utils/arm/jni_macro_assembler_arm_vixl.h b/compiler/utils/arm/jni_macro_assembler_arm_vixl.h
index dfc35b7..9fc683d 100644
--- a/compiler/utils/arm/jni_macro_assembler_arm_vixl.h
+++ b/compiler/utils/arm/jni_macro_assembler_arm_vixl.h
@@ -215,8 +215,8 @@
   // List of exception blocks to generate at the end of the code cache.
   ArenaVector<std::unique_ptr<ArmVIXLJNIMacroAssembler::ArmException>> exception_blocks_;
   // Used for testing.
-  friend class ArmVIXAssemblerTest_VixlLoadFromOffset_Test;
-  friend class ArmVIXAssemblerTest_VixlStoreToOffset_Test;
+  friend class ArmVIXLAssemblerTest_VixlLoadFromOffset_Test;
+  friend class ArmVIXLAssemblerTest_VixlStoreToOffset_Test;
 };
 
 }  // namespace arm
diff --git a/compiler/utils/assembler_thumb_test.cc b/compiler/utils/assembler_thumb_test.cc
index 41cb04b..367ed97 100644
--- a/compiler/utils/assembler_thumb_test.cc
+++ b/compiler/utils/assembler_thumb_test.cc
@@ -1624,9 +1624,9 @@
 typedef arm::Thumb2Assembler AssemblerType;
 #endif
 
-class ArmVIXAssemblerTest : public ::testing::Test {
+class ArmVIXLAssemblerTest : public ::testing::Test {
  public:
-  ArmVIXAssemblerTest() : pool(), arena(&pool), assembler(&arena) { }
+  ArmVIXLAssemblerTest() : pool(), arena(&pool), assembler(&arena) { }
 
   ArenaPool pool;
   ArenaAllocator arena;
@@ -1658,7 +1658,7 @@
 #undef __
 #define __ assembler.
 
-TEST_F(ArmVIXAssemblerTest, VixlJniHelpers) {
+TEST_F(ArmVIXLAssemblerTest, VixlJniHelpers) {
   const bool is_static = true;
   const bool is_synchronized = false;
   const char* shorty = "IIFII";
@@ -1689,7 +1689,7 @@
   __ Load(scratch_register, FrameOffset(4092), 4);
   __ Load(scratch_register, FrameOffset(4096), 4);
   __ LoadRawPtrFromThread(scratch_register, ThreadOffset32(512));
-  __ LoadRef(method_register, scratch_register, MemberOffset(128), true);
+  __ LoadRef(method_register, scratch_register, MemberOffset(128), /* unpoison_reference */ false);
 
   // Stores
   __ Store(FrameOffset(32), method_register, 4);
@@ -1743,7 +1743,7 @@
 #define __ assembler.asm_.
 #endif
 
-TEST_F(ArmVIXAssemblerTest, VixlLoadFromOffset) {
+TEST_F(ArmVIXLAssemblerTest, VixlLoadFromOffset) {
   __ LoadFromOffset(kLoadWord, R2, R4, 12);
   __ LoadFromOffset(kLoadWord, R2, R4, 0xfff);
   __ LoadFromOffset(kLoadWord, R2, R4, 0x1000);
@@ -1773,7 +1773,7 @@
   EmitAndCheck(&assembler, "VixlLoadFromOffset");
 }
 
-TEST_F(ArmVIXAssemblerTest, VixlStoreToOffset) {
+TEST_F(ArmVIXLAssemblerTest, VixlStoreToOffset) {
   __ StoreToOffset(kStoreWord, R2, R4, 12);
   __ StoreToOffset(kStoreWord, R2, R4, 0xfff);
   __ StoreToOffset(kStoreWord, R2, R4, 0x1000);
