diff --git a/pkg/native_compiler/lib/back_end/arm64/assembler.dart b/pkg/native_compiler/lib/back_end/arm64/assembler.dart
index 471a031..b8d4270 100644
--- a/pkg/native_compiler/lib/back_end/arm64/assembler.dart
+++ b/pkg/native_compiler/lib/back_end/arm64/assembler.dart
@@ -1040,6 +1040,42 @@
     ldr(result, RegExtRegAddress(result, classId, Extend.UXTX, scaled: true));
   }
 
+  /// Load array element from `[base + index*elemSize + offset]`.
+  @override
+  void loadIndexed(
+    Register result,
+    Register base,
+    Register index,
+    int offset, [
+    OperandSize elemSize = .s64,
+  ]) {
+    if (offset == 0) {
+      ldr(result, RegExtRegAddress(base, index, .UXTX, scaled: true), elemSize);
+    } else {
+      add(
+        result,
+        base,
+        ShiftedRegOperand(index, .LSL, elemSize.log2sizeInBytes),
+      );
+      ldr(result, address(result, offset), elemSize);
+    }
+  }
+
+  void loadAcquire(
+    Register result,
+    Register base,
+    int offset, [
+    OperandSize sz = OperandSize.s64,
+    Register scratch = temp2Reg,
+  ]) {
+    if (offset != 0) {
+      addImmediate(scratch, base, offset, .s64, scratch);
+      ldar(result, scratch, sz);
+    } else {
+      ldar(result, base, sz);
+    }
+  }
+
   @override
   void combineHashes(Register hash, Register other) {
     // hash += other
diff --git a/pkg/native_compiler/lib/back_end/arm64/code_generator.dart b/pkg/native_compiler/lib/back_end/arm64/code_generator.dart
index bc9003a..12da173 100644
--- a/pkg/native_compiler/lib/back_end/arm64/code_generator.dart
+++ b/pkg/native_compiler/lib/back_end/arm64/code_generator.dart
@@ -1744,35 +1744,25 @@
             hasFunctionTypeArgs: hasFunctionTypeArgs,
           ),
         );
-        final stub = switch (stc.numInputs) {
-          1 => StubCode.Subtype1TestCache,
-          2 => StubCode.Subtype2TestCache,
-          3 => StubCode.Subtype3TestCache,
-          4 => StubCode.Subtype4TestCache,
-          6 => StubCode.Subtype6TestCache,
-          _ =>
-            throw 'Unexpected number of SubtypeTestCache inputs ${stc.numInputs} (type $type)',
-        };
-
         final Label slowPath = addSlowPath(() {
           assert(stackFrame.maxArgumentsStackSlots >= 6);
           _asm.loadFromPool(tempReg, type.dartType);
           _asm.stp(
-            TypeTestingStub.subtypeTestCacheReg,
+            SubtypeTestCacheStub.subtypeTestCacheReg,
             hasFunctionTypeArgs
-                ? TypeTestingStub.functionTypeArgumentsReg
+                ? SubtypeTestCacheStub.functionTypeArgumentsReg
                 : nullReg,
             RegOffsetAddress(stackPointerReg, 0),
           );
           _asm.stp(
             hasInstantiatorTypeArgs
-                ? TypeTestingStub.instantiatorTypeArgumentsReg
+                ? SubtypeTestCacheStub.instantiatorTypeArgumentsReg
                 : nullReg,
             tempReg,
             RegOffsetAddress(stackPointerReg, 2 * wordSize),
           );
           _asm.stp(
-            TypeTestingStub.instanceReg,
+            SubtypeTestCacheStub.instanceReg,
             nullReg, // Space for result
             RegOffsetAddress(stackPointerReg, 4 * wordSize),
           );
@@ -1781,11 +1771,15 @@
           _asm.b(done);
         });
 
-        _asm.loadFromPool(TypeTestingStub.subtypeTestCacheReg, stc);
-        _asm.callVmStub(stub);
-        _asm.cmp(TypeTestingStub.subtypeTestCacheResultReg, nullReg);
+        _asm.loadFromPool(SubtypeTestCacheStub.subtypeTestCacheReg, stc);
+        final stub = backEndState.stubFactory.getSubtypeTestCacheStub(
+          stc.numInputs,
+        );
+        _asm.callStub(stub);
+
+        _asm.cmp(SubtypeTestCacheStub.subtypeTestCacheResultReg, nullReg);
         _asm.b(slowPath, .equal);
-        _asm.mov(resultReg, TypeTestingStub.subtypeTestCacheResultReg);
+        _asm.mov(resultReg, SubtypeTestCacheStub.subtypeTestCacheResultReg);
         _asm.b(done);
     }
 
diff --git a/pkg/native_compiler/lib/back_end/arm64/constraints.dart b/pkg/native_compiler/lib/back_end/arm64/constraints.dart
index 75f0d6a..62face9 100644
--- a/pkg/native_compiler/lib/back_end/arm64/constraints.dart
+++ b/pkg/native_compiler/lib/back_end/arm64/constraints.dart
@@ -394,17 +394,20 @@
     };
     if (callsSubtypeTestCacheStub) {
       final inputs = [
-        TypeTestingStub.instanceReg,
+        SubtypeTestCacheStub.instanceReg,
         if (instr.inputCount > 1) ...const [
-          TypeTestingStub.instantiatorTypeArgumentsReg,
-          TypeTestingStub.functionTypeArgumentsReg,
+          SubtypeTestCacheStub.instantiatorTypeArgumentsReg,
+          SubtypeTestCacheStub.functionTypeArgumentsReg,
         ],
       ];
       return InstructionConstraints(
-        TypeTestingStub.subtypeTestCacheResultReg,
+        SubtypeTestCacheStub.subtypeTestCacheResultReg,
         inputs,
         // TODO: save registers on slow path
-        allRegistersExcept(TypeTestingStub.subtypeTestCacheResultReg, inputs),
+        allRegistersExcept(
+          SubtypeTestCacheStub.subtypeTestCacheResultReg,
+          inputs,
+        ),
         Safepoint(),
       );
     }
diff --git a/pkg/native_compiler/lib/back_end/arm64/stub_code_generator.dart b/pkg/native_compiler/lib/back_end/arm64/stub_code_generator.dart
index d1aead6..f6f0e7b 100644
--- a/pkg/native_compiler/lib/back_end/arm64/stub_code_generator.dart
+++ b/pkg/native_compiler/lib/back_end/arm64/stub_code_generator.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:cfg/ir/constant_value.dart';
+import 'package:cfg/utils/misc.dart';
 import 'package:kernel/ast.dart' as ast show Class;
 import 'package:native_compiler/back_end/arm64/assembler.dart';
 import 'package:native_compiler/back_end/assembler.dart';
@@ -173,6 +174,507 @@
   }
 }
 
+final class SubtypeTestCacheStub extends Arm64StubCodeGenerator {
+  static const Register instanceReg = R0;
+  static const Register dstTypeReg = R8;
+  static const Register instantiatorTypeArgumentsReg = R2;
+  static const Register functionTypeArgumentsReg = R1;
+  static const Register subtypeTestCacheReg = R3;
+  static const Register scratchReg = R4;
+  static const Register subtypeTestCacheResultReg = R7;
+  static const Register entryPointReg = R9;
+  static const Register instanceDelayedFunctionTypeArgumentsReg = R10;
+
+  static const Register instanceCidOrSignatureReg = R6;
+  static const Register instanceInstantiatorTypeArgumentsReg = R5;
+  static const Register instanceParentFunctionTypeArgumentsReg = R9;
+  static const Register cacheEntriesEndReg = R11;
+  static const Register cacheContentsSizeReg = R12;
+  static const Register probeDistanceReg = R13;
+
+  final int numInputs;
+  SubtypeTestCacheStub(super.vmOffsets, super.objectLayout, this.numInputs);
+
+  VMOffsets get vmOffsets => _asm.vmOffsets;
+  ObjectLayout get objectLayout => _asm.objectLayout;
+  int get compressedWordSize => objectLayout.compressedWordSize;
+
+  void _generateSubtypeTestCacheLoopBody(
+    Register cacheEntryReg,
+    Label found,
+    Label notFound,
+    Label nextIteration,
+  ) {
+    // TODO: compressed pointers
+
+    final inputRegs = [
+      instanceCidOrSignatureReg,
+      instanceInstantiatorTypeArgumentsReg,
+      instantiatorTypeArgumentsReg,
+      functionTypeArgumentsReg,
+      instanceParentFunctionTypeArgumentsReg,
+      instanceDelayedFunctionTypeArgumentsReg,
+      dstTypeReg,
+    ];
+    final elemIndex = [
+      vmOffsets.SubtypeTestCache_kInstanceCidOrSignature,
+      vmOffsets.SubtypeTestCache_kInstanceTypeArguments,
+      vmOffsets.SubtypeTestCache_kInstantiatorTypeArguments,
+      vmOffsets.SubtypeTestCache_kFunctionTypeArguments,
+      vmOffsets.SubtypeTestCache_kInstanceParentFunctionTypeArguments,
+      vmOffsets.SubtypeTestCache_kInstanceDelayedFunctionTypeArguments,
+      vmOffsets.SubtypeTestCache_kDestinationType,
+    ];
+    assert(inputRegs.length == elemIndex.length);
+
+    for (var i = 1; i <= numInputs; i++) {
+      if (i == 1) {
+        _asm.loadAcquire(
+          scratchReg,
+          cacheEntryReg,
+          vmOffsets.SubtypeTestCache_kInstanceCidOrSignature *
+              compressedWordSize,
+        );
+        _asm.cmp(scratchReg, nullReg);
+        _asm.b(notFound, .equal);
+      } else {
+        _asm.ldr(
+          scratchReg,
+          _asm.address(cacheEntryReg, elemIndex[i - 1] * compressedWordSize),
+        );
+      }
+      _asm.cmp(scratchReg, inputRegs[i - 1]);
+      if (i == numInputs) {
+        _asm.b(found, .equal);
+      } else {
+        _asm.b(nextIteration, .notEqual);
+      }
+    }
+  }
+
+  void _generateLinearSearch(
+    Register cacheEntryReg,
+    Label found,
+    Label notFound,
+  ) {
+    _asm.addImmediate(
+      cacheEntryReg,
+      cacheEntryReg,
+      vmOffsets.Array_data_offset - heapObjectTag,
+    );
+
+    final loop = Label();
+    final nextIteration = Label();
+    _asm.bind(loop);
+
+    _generateSubtypeTestCacheLoopBody(
+      cacheEntryReg,
+      found,
+      notFound,
+      nextIteration,
+    );
+
+    // Next iteration
+    _asm.bind(nextIteration);
+    _asm.addImmediate(
+      cacheEntryReg,
+      cacheEntryReg,
+      compressedWordSize * vmOffsets.SubtypeTestCache_kTestEntryLength,
+    );
+
+    _asm.b(loop);
+  }
+
+  void getAbstractTypeHash(Register dst, Register src, Label notFound) {
+    _asm.ldr(dst, _asm.fieldAddress(src, vmOffsets.AbstractType_hash_offset));
+    _asm.smiUntag(dst);
+    // Hash of 0 means the hash hasn't been computed yet and we need to go to runtime.
+    _asm.cbz(dst, notFound);
+  }
+
+  void getTypeArgumentsHash(Register dst, Register src, Label notFound) {
+    final done = Label();
+    _asm.loadImmediate(dst, vmOffsets.TypeArguments_kAllDynamicHash);
+    _asm.cmp(src, nullReg);
+    _asm.b(done, .equal);
+    _asm.ldr(dst, _asm.fieldAddress(src, vmOffsets.TypeArguments_hash_offset));
+    _asm.smiUntag(dst);
+    _asm.cbz(dst, notFound);
+    _asm.bind(done);
+  }
+
+  void _generateHashSearch(
+    Register cacheEntryReg,
+    Register tableLengthReg,
+    Label found,
+    Label notFound,
+  ) {
+    // TODO: compressed pointers
+
+    // Since the test entry size is a power of 2, we can use lsr to divide.
+    final testEntryLengthLog2 = log2OfPowerOf2(
+      vmOffsets.SubtypeTestCache_kTestEntryLength,
+    );
+
+    // Before we finish calculating the initial probe entry, we'll need the
+    // starting cache entry and the number of entries. We'll store these in
+    // [cacheContentsSizeReg] and [probeDistanceReg], respectively.
+
+    final startingEntryReg = cacheContentsSizeReg; // alias for convenience
+
+    // Hash cache traversal
+    // Calculating number of entries
+    // The array length is a Smi so it needs to be untagged.
+    _asm.smiUntag(scratchReg, tableLengthReg);
+    final entriesCountReg = probeDistanceReg; // alias for convenience
+    _asm.lsr(entriesCountReg, scratchReg, testEntryLengthLog2);
+
+    // Calculating starting entry address
+    _asm.addImmediate(
+      cacheEntryReg,
+      cacheEntryReg,
+      vmOffsets.Array_data_offset - heapObjectTag,
+    );
+    _asm.mov(startingEntryReg, cacheEntryReg);
+
+    // Calculating end of entries address
+    _asm.add(
+      cacheEntriesEndReg,
+      cacheEntryReg,
+      ShiftedRegOperand(
+        entriesCountReg,
+        .LSL,
+        testEntryLengthLog2 + log2wordSize,
+      ),
+    );
+
+    // Hash the entry inputs
+    {
+      final done = Label();
+      // Assume a Smi tagged instance cid to avoid a branch in the common case.
+      _asm.mov(cacheEntryReg, instanceCidOrSignatureReg);
+      _asm.smiUntag(cacheEntryReg);
+      _asm.branchIfSmi(instanceCidOrSignatureReg, done);
+      getAbstractTypeHash(cacheEntryReg, instanceCidOrSignatureReg, notFound);
+      _asm.bind(done);
+    }
+    if (numInputs >= 7) {
+      getAbstractTypeHash(scratchReg, dstTypeReg, notFound);
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    if (numInputs >= 6) {
+      getTypeArgumentsHash(
+        scratchReg,
+        instanceDelayedFunctionTypeArgumentsReg,
+        notFound,
+      );
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    if (numInputs >= 5) {
+      getTypeArgumentsHash(
+        scratchReg,
+        instanceParentFunctionTypeArgumentsReg,
+        notFound,
+      );
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    if (numInputs >= 4) {
+      getTypeArgumentsHash(scratchReg, functionTypeArgumentsReg, notFound);
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    if (numInputs >= 3) {
+      getTypeArgumentsHash(scratchReg, instantiatorTypeArgumentsReg, notFound);
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    if (numInputs >= 2) {
+      getTypeArgumentsHash(
+        scratchReg,
+        instanceInstantiatorTypeArgumentsReg,
+        notFound,
+      );
+      _asm.combineHashes(cacheEntryReg, scratchReg);
+    }
+    _asm.finalizeHash(32, cacheEntryReg);
+
+    // This requires the number of entries in a hash cache to be a power of 2.
+    // Converting hash to probe entry index
+    // The entry count is not needed after this point; create the mask in place.
+    final countMaskReg = entriesCountReg; // alias for convenience
+    _asm.addImmediate(countMaskReg, countMaskReg, -1);
+    _asm.and(cacheEntryReg, cacheEntryReg, countMaskReg);
+    // Now set the register to the initial probe distance in words.
+    _asm.loadImmediate(
+      probeDistanceReg,
+      compressedWordSize * vmOffsets.SubtypeTestCache_kTestEntryLength,
+    );
+
+    // Now cacheEntryReg is the starting probe entry index.
+    // Converting probe entry index to probe entry address
+    _asm.add(
+      cacheEntryReg,
+      startingEntryReg,
+      ShiftedRegOperand(
+        cacheEntryReg,
+        .LSL,
+        testEntryLengthLog2 + log2wordSize,
+      ),
+    );
+
+    // Now set the register to the negated size of the cache contents in words.
+    final cacheNegatedSizeReg = startingEntryReg; // alias for convenience
+    _asm.sub(cacheNegatedSizeReg, startingEntryReg, cacheEntriesEndReg);
+
+    final loop = Label();
+    final nextIteration = Label();
+    _asm.bind(loop);
+
+    _generateSubtypeTestCacheLoopBody(
+      cacheEntryReg,
+      found,
+      notFound,
+      nextIteration,
+    );
+
+    _asm.bind(nextIteration);
+    // Move to next entry
+    {
+      _asm.add(cacheEntryReg, cacheEntryReg, probeDistanceReg);
+      // Adjust probe distance
+      _asm.addImmediate(
+        probeDistanceReg,
+        probeDistanceReg,
+        compressedWordSize * vmOffsets.SubtypeTestCache_kTestEntryLength,
+      );
+    }
+    // Check for leaving array
+    // Make sure we haven't run off the array.
+    _asm.cmp(cacheEntryReg, cacheEntriesEndReg);
+    _asm.b(loop, .less);
+    // Wrap around to start of entries
+    // Add the negated size of the cache contents.
+    _asm.add(cacheEntryReg, cacheEntryReg, cacheNegatedSizeReg);
+    _asm.b(loop);
+  }
+
+  @override
+  void _generate() {
+    // TODO: compressed pointers
+    _asm.push(LR);
+
+    {
+      final continueWithSearch = Label();
+      _asm.ldr(
+        scratchReg,
+        _asm.fieldAddress(
+          subtypeTestCacheReg,
+          vmOffsets.SubtypeTestCache_num_inputs_offset,
+        ),
+        OperandSize.u32,
+      );
+      _asm.cmpImmediate(scratchReg, numInputs);
+      _asm.b(continueWithSearch, .equal);
+      _asm.unimplemented('Unexpected subtype cache number of inputs');
+      _asm.bind(continueWithSearch);
+    }
+    const cacheArrayReg = subtypeTestCacheResultReg;
+    const cacheEntryReg = cacheArrayReg;
+
+    _asm.loadAcquire(
+      cacheEntryReg,
+      subtypeTestCacheReg,
+      vmOffsets.SubtypeTestCache_cache_offset - heapObjectTag,
+    );
+
+    if (numInputs >= 3) {
+      _asm.loadClassIdMayBeSmi(instanceCidOrSignatureReg, instanceReg);
+    } else {
+      // If the type is fully instantiated, then it can be determined at compile
+      // time whether Smi is a subtype of the type or not. Thus, this code should
+      // never be called with a Smi instance.
+      _asm.loadClassId(instanceCidOrSignatureReg, instanceReg);
+    }
+
+    _asm.cmpImmediate(instanceCidOrSignatureReg, ClassId.ClosureCid.index);
+    final nonClosure = Label();
+    _asm.b(nonClosure, .notEqual);
+
+    // Closure handling
+    _asm.ldr(
+      instanceCidOrSignatureReg,
+      _asm.fieldAddress(instanceReg, vmOffsets.Closure_function_offset),
+    );
+    _asm.ldr(
+      instanceCidOrSignatureReg,
+      _asm.fieldAddress(
+        instanceCidOrSignatureReg,
+        vmOffsets.Function_signature_offset,
+      ),
+    );
+
+    final initialized = Label();
+
+    if (numInputs >= 2) {
+      _asm.ldr(
+        scratchReg,
+        _asm.fieldAddress(
+          instanceReg,
+          vmOffsets.Closure_length_and_flags_offset,
+        ),
+      );
+      {
+        // TODO: VerifySmi only in debug mode
+        final isSmi = Label();
+        _asm.tbz(scratchReg, smiBit, isSmi);
+        _asm.unimplemented('Smi is expected');
+        _asm.bind(isSmi);
+      }
+
+      final loadFunctionTypeArguments = Label();
+      _asm.mov(instanceInstantiatorTypeArgumentsReg, nullReg);
+      _asm.tbz(
+        scratchReg,
+        vmOffsets.UntaggedClosure_kHasInstantiatorTypeArgumentsBit + smiShift,
+        (numInputs >= 5 ? loadFunctionTypeArguments : initialized),
+      );
+      _asm.ubfx(
+        instanceInstantiatorTypeArgumentsReg,
+        scratchReg,
+        vmOffsets.UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos +
+            smiShift,
+        vmOffsets.UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize,
+      );
+
+      _asm.loadIndexed(
+        instanceInstantiatorTypeArgumentsReg,
+        instanceReg,
+        instanceInstantiatorTypeArgumentsReg,
+        vmOffsets.Closure_elementOffset(0) - heapObjectTag,
+      );
+
+      if (numInputs >= 5) {
+        _asm.bind(loadFunctionTypeArguments);
+
+        final loadDelayedFunctionTypeArguments = Label();
+        _asm.mov(instanceParentFunctionTypeArgumentsReg, nullReg);
+        _asm.tbz(
+          scratchReg,
+          vmOffsets.UntaggedClosure_kHasFunctionTypeArgumentsBit + smiShift,
+          (numInputs >= 6 ? loadDelayedFunctionTypeArguments : initialized),
+        );
+        _asm.ubfx(
+          instanceParentFunctionTypeArgumentsReg,
+          scratchReg,
+          vmOffsets.UntaggedClosure_kFunctionTypeArgumentsIndexBitsPos +
+              smiShift,
+          vmOffsets.UntaggedClosure_kFunctionTypeArgumentsIndexBitsSize,
+        );
+        _asm.loadIndexed(
+          instanceParentFunctionTypeArgumentsReg,
+          instanceReg,
+          instanceParentFunctionTypeArgumentsReg,
+          vmOffsets.Closure_elementOffset(0) - heapObjectTag,
+        );
+
+        if (numInputs >= 6) {
+          _asm.bind(loadDelayedFunctionTypeArguments);
+
+          _asm.mov(instanceDelayedFunctionTypeArgumentsReg, nullReg);
+          _asm.tbz(
+            scratchReg,
+            vmOffsets.UntaggedClosure_kHasDelayedTypeArgumentsBit + smiShift,
+            initialized,
+          );
+          _asm.ldr(
+            instanceDelayedFunctionTypeArgumentsReg,
+            _asm.fieldAddress(
+              instanceReg,
+              vmOffsets.Closure_elementOffset(
+                vmOffsets.UntaggedClosure_kDelayedTypeArgumentsIndex,
+              ),
+            ),
+          );
+        }
+      }
+      _asm.b(initialized);
+    }
+
+    _asm.bind(nonClosure);
+    if (numInputs >= 2) {
+      _asm.loadClassById(scratchReg, instanceCidOrSignatureReg);
+      _asm.mov(instanceInstantiatorTypeArgumentsReg, nullReg);
+      _asm.ldr(
+        scratchReg,
+        _asm.fieldAddress(
+          scratchReg,
+          vmOffsets.Class_host_type_arguments_field_offset_in_words_offset,
+        ),
+        OperandSize.u32,
+      );
+      _asm.cmpImmediate(
+        scratchReg,
+        vmOffsets.Class_kNoTypeArguments,
+        OperandSize.s32,
+      );
+      final hasNoTypeArgument = Label();
+      _asm.b(hasNoTypeArgument, .equal);
+
+      _asm.add(
+        instanceInstantiatorTypeArgumentsReg,
+        instanceReg,
+        ShiftedRegOperand(scratchReg, .LSL, log2wordSize),
+      );
+      _asm.ldr(
+        instanceInstantiatorTypeArgumentsReg,
+        _asm.address(instanceInstantiatorTypeArgumentsReg, -heapObjectTag),
+      );
+
+      _asm.bind(hasNoTypeArgument);
+
+      if (numInputs >= 5) {
+        _asm.mov(instanceParentFunctionTypeArgumentsReg, nullReg);
+        if (numInputs >= 6) {
+          _asm.mov(instanceDelayedFunctionTypeArgumentsReg, nullReg);
+        }
+      }
+    }
+    _asm.smiTag(instanceCidOrSignatureReg);
+    _asm.bind(initialized);
+
+    _asm.ldr(
+      scratchReg,
+      _asm.fieldAddress(cacheEntryReg, vmOffsets.Array_length_offset),
+    );
+    _asm.cmpImmediate(
+      scratchReg,
+      vmOffsets.SubtypeTestCache_kMaxLinearCacheSize << smiShift,
+    );
+    final isHash = Label();
+    _asm.b(isHash, .greater);
+
+    final notFound = Label();
+    final found = Label();
+    _generateLinearSearch(cacheEntryReg, found, notFound);
+    _asm.bind(found);
+    _asm.ldr(
+      subtypeTestCacheResultReg,
+      _asm.address(
+        cacheArrayReg,
+        compressedWordSize * vmOffsets.SubtypeTestCache_kTestResult,
+      ),
+    );
+    _asm.pop(LR);
+    _asm.ret();
+
+    _asm.bind(notFound);
+    _asm.mov(subtypeTestCacheResultReg, nullReg);
+    _asm.pop(LR);
+    _asm.ret();
+
+    _asm.bind(isHash);
+    _generateHashSearch(cacheEntryReg, scratchReg, found, notFound);
+  }
+}
+
 final class TypeTestingStub {
   static const Register instanceReg = R0;
   static const Register dstTypeReg = R8;
@@ -182,6 +684,7 @@
   static const Register scratchReg = R4;
   static const Register subtypeTestCacheResultReg = R7;
   static const Register entryPointReg = R9;
+  static const Register instanceDelayedFunctionTypeArgumentsReg = R10;
 }
 
 final class InstantiateTypeArgumentsStub {
@@ -229,4 +732,8 @@
     Register objectReg,
     Register valueReg,
   ) => WriteBarrierStub(vmOffsets, objectLayout, objectReg, valueReg);
+
+  @override
+  StubCodeGenerator subtypeTestCacheStubGenerator(int n) =>
+      SubtypeTestCacheStub(vmOffsets, objectLayout, n);
 }
diff --git a/pkg/native_compiler/lib/back_end/assembler.dart b/pkg/native_compiler/lib/back_end/assembler.dart
index 16f05ac..3578b64 100644
--- a/pkg/native_compiler/lib/back_end/assembler.dart
+++ b/pkg/native_compiler/lib/back_end/assembler.dart
@@ -219,6 +219,13 @@
   void loadClassIdMayBeSmi(Register result, Register object);
   void loadIsolateGroup(Register rd);
   void loadClassById(Register result, Register classId);
+  void loadIndexed(
+    Register result,
+    Register base,
+    Register index,
+    int offset, [
+    OperandSize elemSize = .s64,
+  ]);
 
   void combineHashes(Register hash, Register other);
   void finalizeHash(int bitSize, Register hash);
diff --git a/pkg/native_compiler/lib/back_end/stub_code_generator.dart b/pkg/native_compiler/lib/back_end/stub_code_generator.dart
index 492e3db..de6a85a 100644
--- a/pkg/native_compiler/lib/back_end/stub_code_generator.dart
+++ b/pkg/native_compiler/lib/back_end/stub_code_generator.dart
@@ -18,6 +18,7 @@
   final CodeConsumer consumeGeneratedCode;
   Map<ast.Class, Code> _allocationStubs = {};
   Map<(Register, Register), Code> _writeBarrierStubs = {};
+  List<Code?> _subtypeTestCacheStubs = List<Code?>.filled(8, null);
 
   StubFactory(this.consumeGeneratedCode);
 
@@ -28,6 +29,8 @@
     Register valueReg,
   );
 
+  StubCodeGenerator subtypeTestCacheStubGenerator(int n);
+
   Code _generateCode(String name, StubCodeGenerator generator) {
     final code = generator.generate(name);
     consumeGeneratedCode(code);
@@ -42,4 +45,10 @@
         'WriteBarrierStub for $objectReg, $valueReg',
         writeBarrierStubGenerator(objectReg, valueReg),
       );
+
+  Code getSubtypeTestCacheStub(int numInputs) =>
+      _subtypeTestCacheStubs[numInputs] ??= _generateCode(
+        'SubtypeTestCacheStub',
+        subtypeTestCacheStubGenerator(numInputs),
+      );
 }
diff --git a/pkg/native_compiler/lib/runtime/vm_offsets.g.dart b/pkg/native_compiler/lib/runtime/vm_offsets.g.dart
index 5c7b323f..440a4cd 100644
--- a/pkg/native_compiler/lib/runtime/vm_offsets.g.dart
+++ b/pkg/native_compiler/lib/runtime/vm_offsets.g.dart
@@ -16,6 +16,7 @@
   int get Array_kMaxElements => throw 'Unknown';
   int get Array_kMaxNewSpaceElements => throw 'Unknown';
   int get Context_kMaxElements => throw 'Unknown';
+  int get Class_kNoTypeArguments => throw 'Unknown';
   int get Function_kKindBitsPos => throw 'Unknown';
   int get Function_kKindBitsSize => throw 'Unknown';
   int get Function_kRecognizedBitsPos => throw 'Unknown';
@@ -69,8 +70,15 @@
   int get SubtypeTestCache_kInstantiatorTypeArguments => throw 'Unknown';
   int get SubtypeTestCache_kTestEntryLength => throw 'Unknown';
   int get SubtypeTestCache_kMaxInputs => throw 'Unknown';
+  int get SubtypeTestCache_kMaxLinearCacheSize => throw 'Unknown';
   int get SubtypeTestCache_kTestResult => throw 'Unknown';
+  int get TypeArguments_kAllDynamicHash => throw 'Unknown';
   int get TypeArguments_kMaxElements => throw 'Unknown';
+  int get UntaggedClosure_kDelayedTypeArgumentsIndex => throw 'Unknown';
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos =>
+      throw 'Unknown';
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize =>
+      throw 'Unknown';
   int get UntaggedClosure_kHasDelayedTypeArgumentsBit => throw 'Unknown';
   int get UntaggedClosure_kHasInstantiatorTypeArgumentsBit => throw 'Unknown';
   int get UntaggedClosure_kHasFunctionTypeArgumentsBit => throw 'Unknown';
@@ -648,6 +656,8 @@
   @override
   int get Context_kMaxElements => 0x7ffffffffffffff;
   @override
+  int get Class_kNoTypeArguments => -1;
+  @override
   int get Function_kKindBitsPos => 0x0;
   @override
   int get Function_kKindBitsSize => 0x5;
@@ -750,10 +760,20 @@
   @override
   int get SubtypeTestCache_kMaxInputs => 0x7;
   @override
+  int get SubtypeTestCache_kMaxLinearCacheSize => 0xf8;
+  @override
   int get SubtypeTestCache_kTestResult => 0x7;
   @override
+  int get TypeArguments_kAllDynamicHash => 0x1;
+  @override
   int get TypeArguments_kMaxElements => 0x7ffffffffffffff;
   @override
+  int get UntaggedClosure_kDelayedTypeArgumentsIndex => 0x0;
+  @override
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos => 0x0;
+  @override
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize => 0x1;
+  @override
   int get UntaggedClosure_kHasDelayedTypeArgumentsBit => 0x0;
   @override
   int get UntaggedClosure_kHasInstantiatorTypeArgumentsBit => 0x1;
@@ -1679,6 +1699,8 @@
   @override
   int get Context_kMaxElements => 0x7ffffffffffffff;
   @override
+  int get Class_kNoTypeArguments => -1;
+  @override
   int get Function_kKindBitsPos => 0x0;
   @override
   int get Function_kKindBitsSize => 0x5;
@@ -1781,10 +1803,20 @@
   @override
   int get SubtypeTestCache_kMaxInputs => 0x7;
   @override
+  int get SubtypeTestCache_kMaxLinearCacheSize => 0xf8;
+  @override
   int get SubtypeTestCache_kTestResult => 0x7;
   @override
+  int get TypeArguments_kAllDynamicHash => 0x1;
+  @override
   int get TypeArguments_kMaxElements => 0x7ffffffffffffff;
   @override
+  int get UntaggedClosure_kDelayedTypeArgumentsIndex => 0x0;
+  @override
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos => 0x0;
+  @override
+  int get UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize => 0x1;
+  @override
   int get UntaggedClosure_kHasDelayedTypeArgumentsBit => 0x0;
   @override
   int get UntaggedClosure_kHasInstantiatorTypeArgumentsBit => 0x1;
diff --git a/pkg/native_compiler/lib/snapshot/snapshot.dart b/pkg/native_compiler/lib/snapshot/snapshot.dart
index f6df5be..d9c9591 100644
--- a/pkg/native_compiler/lib/snapshot/snapshot.dart
+++ b/pkg/native_compiler/lib/snapshot/snapshot.dart
@@ -173,11 +173,6 @@
     addBaseObject(RuntimeConstantObject(.uninitializedData));
     addBaseObject(RuntimeConstantObject(.mutableEmptyList));
     // TODO: generate these stubs instead of referencing them from the VM.
-    addBaseObject(StubCode.Subtype1TestCache);
-    addBaseObject(StubCode.Subtype2TestCache);
-    addBaseObject(StubCode.Subtype3TestCache);
-    addBaseObject(StubCode.Subtype4TestCache);
-    addBaseObject(StubCode.Subtype6TestCache);
     addBaseObject(StubCode.InstantiateTypeArguments);
     addBaseObject(StubCode.InitAsync);
     addBaseObject(StubCode.InitAsyncStar);
diff --git a/pkg/native_compiler/test/back_end/arm64/assembler_test.dart b/pkg/native_compiler/test/back_end/arm64/assembler_test.dart
index 40c3e19..ed5961b 100644
--- a/pkg/native_compiler/test/back_end/arm64/assembler_test.dart
+++ b/pkg/native_compiler/test/back_end/arm64/assembler_test.dart
@@ -98,6 +98,14 @@
         'stpw r1, r2, [r17, #4]\n',
       );
     });
+    test('fieldAddress', () {
+      asm.ldr(R1, asm.fieldAddress(R0, 42), .s32);
+      asm.ldr(R1, asm.fieldAddress(R0, 42), .u32);
+      expectDisassembly(
+        'ldrsw r1, [r0, #41]\n'
+        'ldrw r1, [r0, #41]\n',
+      );
+    });
     test('enterDartFrame', () {
       asm.enterDartFrame();
       expectDisassembly(
@@ -565,6 +573,68 @@
         'ldr r2, [r2, r1 uxtx scaled]\n',
       );
     });
+    test('loadIndexed', () {
+      asm.loadIndexed(R2, R1, R3, 0, OperandSize.s32);
+      asm.loadIndexed(R2, R1, R3, 42, OperandSize.s32);
+      asm.loadIndexed(R2, R1, R3, 4231, OperandSize.s32);
+      asm.loadIndexed(R2, R1, R3, 0, OperandSize.s64);
+      asm.loadIndexed(R2, R1, R3, 42, OperandSize.s64);
+      asm.loadIndexed(R2, R1, R3, 4231, OperandSize.s64);
+      expectDisassembly(
+        'ldrsw r2, [r1, r3 uxtx scaled]\n'
+        'add r2, r1, r3 lsl #2\n'
+        'ldrsw r2, [r2, #42]\n'
+        'add r2, r1, r3 lsl #2\n'
+        'add r17, r2, #0x1000\n'
+        'ldrsw r2, [r17, #135]\n'
+        'ldr r2, [r1, r3 uxtx scaled]\n'
+        'add r2, r1, r3 lsl #3\n'
+        'ldr r2, [r2, #42]\n'
+        'add r2, r1, r3 lsl #3\n'
+        'add r17, r2, #0x1000\n'
+        'ldr r2, [r17, #135]\n',
+      );
+    });
+    test('loadAcquire', () {
+      asm.loadAcquire(R2, R1, 0, OperandSize.s32);
+      asm.loadAcquire(R2, R1, 42, OperandSize.s32);
+      asm.loadAcquire(R2, R1, 4231, OperandSize.s32);
+      asm.loadAcquire(R2, R1, 0, OperandSize.s64);
+      asm.loadAcquire(R2, R1, 42, OperandSize.s64);
+      asm.loadAcquire(R2, R1, 4231, OperandSize.s64);
+      asm.loadAcquire(R2, R1, 0, OperandSize.s32, R3);
+      asm.loadAcquire(R2, R1, 42, OperandSize.s32, R3);
+      asm.loadAcquire(R2, R1, 4231, OperandSize.s32, R3);
+      asm.loadAcquire(R2, R1, 0, OperandSize.s64, R3);
+      asm.loadAcquire(R2, R1, 42, OperandSize.s64, R3);
+      asm.loadAcquire(R2, R1, 4231, OperandSize.s64, R3);
+      expectDisassembly(
+        'ldarw r2, [r1]\n'
+        'add r17, r1, #0x2a\n'
+        'ldarw r2, [r17]\n'
+        'movz r17, #0x1087\n'
+        'add r17, r1, r17\n'
+        'ldarw r2, [r17]\n'
+        'ldar r2, [r1]\n'
+        'add r17, r1, #0x2a\n'
+        'ldar r2, [r17]\n'
+        'movz r17, #0x1087\n'
+        'add r17, r1, r17\n'
+        'ldar r2, [r17]\n'
+        'ldarw r2, [r1]\n'
+        'add r3, r1, #0x2a\n'
+        'ldarw r2, [r3]\n'
+        'movz r3, #0x1087\n'
+        'add r3, r1, r3\n'
+        'ldarw r2, [r3]\n'
+        'ldar r2, [r1]\n'
+        'add r3, r1, #0x2a\n'
+        'ldar r2, [r3]\n'
+        'movz r3, #0x1087\n'
+        'add r3, r1, r3\n'
+        'ldar r2, [r3]\n',
+      );
+    });
     test('combineHashes', () {
       asm.combineHashes(R0, R7);
       expectDisassembly(
diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc
index d206121..71e5dc4 100644
--- a/runtime/vm/compiler/runtime_api.cc
+++ b/runtime/vm/compiler/runtime_api.cc
@@ -397,8 +397,6 @@
   return dart::IsTypedDataClassId(cid);
 }
 
-const word Class::kNoTypeArguments = dart::Class::kNoTypeArguments;
-
 classid_t Class::GetId(const dart::Class& handle) {
   return handle.id();
 }
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index 9182214..0417eb6 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -431,7 +431,10 @@
 };
 
 class UntaggedClosure : public AllStatic {
+  static const word kInstantiatorTypeArgumentsIndexBitsPos;
+  static const word kInstantiatorTypeArgumentsIndexBitsSize;
   static const word kHasDelayedTypeArgumentsBit;
+  static const word kDelayedTypeArgumentsIndex;
   static const word kHasInstantiatorTypeArgumentsBit;
   static const word kHasFunctionTypeArgumentsBit;
   static const word kFunctionTypeArgumentsIndexBitsPos;
@@ -1490,6 +1493,7 @@
   static word num_inputs_offset();
 
   static const word kMaxInputs;
+  static const word kMaxLinearCacheSize;
   static const word kTestEntryLength;
   static const word kInstanceCidOrSignature;
   static const word kDestinationType;
@@ -1636,6 +1640,7 @@
   static word InstanceSize();
   FINAL_CLASS();
 
+  static const word kAllDynamicHash;
   static const word kMaxElements;
 };
 
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 3406aaa..d110db3 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -71,6 +71,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -154,11 +155,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -889,6 +900,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -973,11 +985,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -1713,6 +1735,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -1796,11 +1819,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0x328;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -2530,6 +2563,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -2614,11 +2648,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -3357,6 +3401,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffc;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -3440,11 +3485,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -4180,6 +4235,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffc;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -4263,11 +4319,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -5004,6 +5070,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -5087,11 +5154,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -5823,6 +5900,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -5907,11 +5985,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -6645,6 +6733,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -6728,11 +6817,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -7455,6 +7554,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -7539,11 +7639,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -8271,6 +8381,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -8354,11 +8465,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0x328;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -9080,6 +9201,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -9164,11 +9286,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -9899,6 +10031,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffc;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -9982,11 +10115,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -10714,6 +10857,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffc;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -10797,11 +10941,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -11530,6 +11684,7 @@
 static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
     0xfffd;
 static constexpr dart::compiler::target::word Context_kMaxElements = 0xfffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -11613,11 +11768,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -12341,6 +12506,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word Function_kRecognizedBitsPos = 0x5;
@@ -12425,11 +12591,21 @@
 static constexpr dart::compiler::target::word
     SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kMaxInputs = 0x7;
+static constexpr dart::compiler::target::word
+    SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word TypeArguments_kAllDynamicHash =
+    0x1;
 static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -13163,6 +13339,7 @@
     0xfffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -13256,11 +13433,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -14071,6 +14258,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -14164,11 +14352,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -14990,6 +15188,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -15083,11 +15282,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -15905,6 +16114,7 @@
     0xfffc;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -15998,11 +16208,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -16820,6 +17040,7 @@
     0xfffc;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -16913,11 +17134,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -17737,6 +17968,7 @@
     0xfffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -17830,11 +18062,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -18646,6 +18888,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -18739,11 +18982,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -19557,6 +19810,7 @@
     0xfffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -19650,11 +19904,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -20456,6 +20720,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -20549,11 +20814,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -21366,6 +21641,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -21459,11 +21735,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -22272,6 +22558,7 @@
     0xfffc;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -22365,11 +22652,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -23178,6 +23475,7 @@
     0xfffc;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -23271,11 +23569,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -24086,6 +24394,7 @@
     0xfffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0xfffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -24179,11 +24488,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0xfffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
@@ -24986,6 +25305,7 @@
     0x7ffd;
 static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
     0x7ffffffffffffff;
+static constexpr dart::compiler::target::word AOT_Class_kNoTypeArguments = -1;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsPos = 0x0;
 static constexpr dart::compiler::target::word AOT_Function_kKindBitsSize = 0x5;
 static constexpr dart::compiler::target::word AOT_Function_kRecognizedBitsPos =
@@ -25079,11 +25399,21 @@
     AOT_SubtypeTestCache_kTestEntryLength = 0x8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kMaxInputs =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_SubtypeTestCache_kMaxLinearCacheSize = 0xf8;
 static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
     0x7;
+static constexpr dart::compiler::target::word
+    AOT_TypeArguments_kAllDynamicHash = 0x1;
 static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
     0x7ffffffffffffff;
 static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kDelayedTypeArgumentsIndex = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsPos = 0x0;
+static constexpr dart::compiler::target::word
+    AOT_UntaggedClosure_kInstantiatorTypeArgumentsIndexBitsSize = 0x1;
+static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasDelayedTypeArgumentsBit = 0x0;
 static constexpr dart::compiler::target::word
     AOT_UntaggedClosure_kHasInstantiatorTypeArgumentsBit = 0x1;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index ab1bbc2..bdbe2c8 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -88,6 +88,7 @@
   CONSTANT(Array, kMaxElements)                                                \
   CONSTANT(Array, kMaxNewSpaceElements)                                        \
   CONSTANT(Context, kMaxElements)                                              \
+  CONSTANT(Class, kNoTypeArguments)                                            \
   CONSTANT(Function, kKindBitsPos)                                             \
   CONSTANT(Function, kKindBitsSize)                                            \
   CONSTANT(Function, kRecognizedBitsPos)                                       \
@@ -139,8 +140,13 @@
   CONSTANT(SubtypeTestCache, kInstantiatorTypeArguments)                       \
   CONSTANT(SubtypeTestCache, kTestEntryLength)                                 \
   CONSTANT(SubtypeTestCache, kMaxInputs)                                       \
+  CONSTANT(SubtypeTestCache, kMaxLinearCacheSize)                              \
   CONSTANT(SubtypeTestCache, kTestResult)                                      \
+  CONSTANT(TypeArguments, kAllDynamicHash)                                     \
   CONSTANT(TypeArguments, kMaxElements)                                        \
+  CONSTANT(UntaggedClosure, kDelayedTypeArgumentsIndex)                        \
+  CONSTANT(UntaggedClosure, kInstantiatorTypeArgumentsIndexBitsPos)            \
+  CONSTANT(UntaggedClosure, kInstantiatorTypeArgumentsIndexBitsSize)           \
   CONSTANT(UntaggedClosure, kHasDelayedTypeArgumentsBit)                       \
   CONSTANT(UntaggedClosure, kHasInstantiatorTypeArgumentsBit)                  \
   CONSTANT(UntaggedClosure, kHasFunctionTypeArgumentsBit)                      \
diff --git a/runtime/vm/module_snapshot.cc b/runtime/vm/module_snapshot.cc
index 33ae029..dd1ff45 100644
--- a/runtime/vm/module_snapshot.cc
+++ b/runtime/vm/module_snapshot.cc
@@ -1943,11 +1943,6 @@
   AddBaseObject(Object::uninitialized_index());
   AddBaseObject(Object::uninitialized_data());
   AddBaseObject(Object::mutable_empty_array());
-  AddBaseObject(StubCode::Subtype1TestCache());
-  AddBaseObject(StubCode::Subtype2TestCache());
-  AddBaseObject(StubCode::Subtype3TestCache());
-  AddBaseObject(StubCode::Subtype4TestCache());
-  AddBaseObject(StubCode::Subtype6TestCache());
   AddBaseObject(StubCode::InstantiateTypeArguments());
   AddBaseObject(StubCode::InitAsync());
   AddBaseObject(StubCode::InitAsyncStar());
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index be3339b..ca5cdcb 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -3161,6 +3161,10 @@
                uint8_t,
                HasDelayedTypeArgumentsBit::shift(),
                HasDelayedTypeArgumentsBit::bitsize()>;
+  static constexpr intptr_t kInstantiatorTypeArgumentsIndexBitsPos =
+      InstantiatorTypeArgumentsIndexBits::shift();
+  static constexpr intptr_t kInstantiatorTypeArgumentsIndexBitsSize =
+      InstantiatorTypeArgumentsIndexBits::bitsize();
 
   using FunctionTypeArgumentsIndexBits =
       BitField<intptr_t, uint8_t, HasFunctionTypeArgumentsBit::kNextBit, 2>;
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index 4493e18..969efbb 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -854,7 +854,7 @@
   }
 }
 
-// Instantiate type.
+// Assert supertype-subtype relationship.
 // Arg0: instantiator type arguments
 // Arg1: function type arguments
 // Arg2: type to be a subtype of the other
diff --git a/tools/VERSION b/tools/VERSION
index 9a80ae2..f54cf5b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 3
 MINOR 14
 PATCH 0
-PRERELEASE 200
+PRERELEASE 201
 PRERELEASE_PATCH 0
