diff --git a/compiler/utils/arm/assembler_arm_vixl.cc b/compiler/utils/arm/assembler_arm_vixl.cc
index 34849cd..d6b24da 100644
--- a/compiler/utils/arm/assembler_arm_vixl.cc
+++ b/compiler/utils/arm/assembler_arm_vixl.cc
@@ -483,13 +483,9 @@
 
 void ArmVIXLMacroAssembler::B(vixl32::Label* label) {
   if (!label->IsBound()) {
-    // Try to use 16-bit T2 encoding of B instruction.
+    // Try to use a 16-bit encoding of the B instruction.
     DCHECK(OutsideITBlock());
-    ExactAssemblyScope guard(this,
-                             k16BitT32InstructionSizeInBytes,
-                             CodeBufferCheckScope::kMaximumSize);
-    b(al, Narrow, label);
-    AddBranchLabel(label);
+    BPreferNear(label);
     return;
   }
   MacroAssembler::B(label);
@@ -497,18 +493,11 @@
 
 void ArmVIXLMacroAssembler::B(vixl32::Condition cond, vixl32::Label* label, bool is_far_target) {
   if (!label->IsBound() && !is_far_target) {
-    // Try to use 16-bit T2 encoding of B instruction.
+    // Try to use a 16-bit encoding of the B instruction.
     DCHECK(OutsideITBlock());
-    ExactAssemblyScope guard(this,
-                             k16BitT32InstructionSizeInBytes,
-                             CodeBufferCheckScope::kMaximumSize);
-    b(cond, Narrow, label);
-    AddBranchLabel(label);
+    BPreferNear(cond, label);
     return;
   }
-  // To further reduce the Bcc encoding size and use 16-bit T1 encoding,
-  // we can provide a hint to this function: i.e. far_target=false.
-  // By default this function uses 'EncodingSizeType::Best' which generates 32-bit T3 encoding.
   MacroAssembler::B(cond, label);
 }
 
