Version 2.17.0-230.0.dev

Merge commit '116706e74e3496d8b739ada32cf07e449651dd43' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f549dd..acdb3ff 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,7 +30,7 @@
 - Change `Performance.mark` and `Performance.measure` to accept their different
   overloads. `mark` can now accept a `markOptions` map, and `measure` can now
   accept a `startMark` and `endMark`, or a `measureOptions` map. Both methods
-  return their correct return types now as well - `PerformanceEntry` and
+  return their correct return types now as well - `PerformanceEntry?` and
   `PerformanceMeasure?`, respectively.
 
 #### `dart:indexed_db`
diff --git a/DEPS b/DEPS
index 5cc60b6..8153c4c 100644
--- a/DEPS
+++ b/DEPS
@@ -67,8 +67,8 @@
   # The list of revisions for these tools comes from Fuchsia, here:
   # https://fuchsia.googlesource.com/integration/+/HEAD/toolchain
   # If there are problems with the toolchain, contact fuchsia-toolchain@.
-  "clang_revision": "1aa59ff2f789776ebfa2d4b315fd3ea589652b4a",
-  "gn_revision": "b79031308cc878488202beb99883ec1f2efd9a6d",
+  "clang_revision": "c2592c374e469f343ecea82d6728609650924259",
+  "gn_revision": "d7c2209cebcfe37f46dba7be4e1a7000ffc342fb",
 
   # Scripts that make 'git cl format' work.
   "clang_format_scripts_rev": "bb994c6f067340c1135eb43eed84f4b33cfa7397",
@@ -130,7 +130,7 @@
   "markupsafe_rev": "8f45f5cfa0009d2a70589bcda0349b8cb2b72783",
   "markdown_rev": "7479783f0493f6717e1d7ae31cb37d39a91026b2",
   "matcher_rev": "07595a7739d47a8315caba5a8e58fb9ae3d81261",
-  "mime_rev": "7f4252d469de032aa4df9f90e827dbac4b8efa48",
+  "mime_rev": "c2c5ffd594674f32dc277521369da1557a1622d3",
   "mockito_rev": "d39ac507483b9891165e422ec98d9fb480037c8b",
   "oauth2_rev": "7cd3284049fe5badbec9f2bea2afc41d14c01057",
   "package_config_rev": "8731bf10b5375542792a32a0f7c8a6f370583d96",
diff --git a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
index 86aaeac..a72b342 100644
--- a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
@@ -344,6 +344,28 @@
   String toString() => 'DemoteViaExplicitWrite($node)';
 }
 
+/// Information gathered by flow analysis about an argument to either
+/// `identical` or `operator ==`.
+class EqualityInfo<Variable extends Object, Type extends Object> {
+  /// The [ExpressionInfo] for the expression.  This is used to determine
+  /// whether the expression is a `null` literal.
+  final ExpressionInfo<Variable, Type>? _expressionInfo;
+
+  /// The type of the expression on the LHS of `==` or `!=`.
+  final Type _type;
+
+  /// If the LHS of `==` or `!=` is a reference, the thing being referred to.
+  /// Otherwise `null`.
+  final ReferenceWithType<Variable, Type>? _reference;
+
+  EqualityInfo._(this._expressionInfo, this._type, this._reference);
+
+  @override
+  String toString() =>
+      'EqualityInfo(expressionInfo: $_expressionInfo, type: $_type, reference: '
+      '$_reference)';
+}
+
 /// A collection of flow models representing the possible outcomes of evaluating
 /// an expression that are relevant to flow analysis.
 class ExpressionInfo<Variable extends Object, Type extends Object> {
@@ -479,14 +501,27 @@
   /// [condition] should be the condition of the loop.
   void doStatement_end(Expression condition);
 
-  /// Call this method just after visiting a binary `==` or `!=` expression.
-  void equalityOp_end(Expression wholeExpression, Expression rightOperand,
-      Type rightOperandType,
-      {bool notEqual = false});
+  /// Call this method just after visiting either side of a binary `==` or `!=`
+  /// expression, or an argument to `identical`.
+  ///
+  /// Returns information about the expression that will later be needed by
+  /// [equalityOperation_end].
+  ///
+  /// Note: the return type is nullable because legacy type promotion doesn't
+  /// need to record information about equality operands.
+  EqualityInfo<Variable, Type>? equalityOperand_end(
+      Expression operand, Type type);
 
-  /// Call this method just after visiting the left hand side of a binary `==`
-  /// or `!=` expression.
-  void equalityOp_rightBegin(Expression leftOperand, Type leftOperandType);
+  /// Call this method just after visiting the operands of a binary `==` or `!=`
+  /// expression, or an invocation of `identical`.
+  ///
+  /// [leftOperandInfo] and [rightOperandInfo] should be the values returned by
+  /// [equalityOperand_end].
+  void equalityOperation_end(
+      Expression wholeExpression,
+      EqualityInfo<Variable, Type>? leftOperandInfo,
+      EqualityInfo<Variable, Type>? rightOperandInfo,
+      {bool notEqual = false});
 
   /// Retrieves the [ExpressionInfo] associated with [target], if known.  Will
   /// return `null` if (a) no info is associated with [target], or (b) another
@@ -1106,21 +1141,24 @@
   }
 
   @override
-  void equalityOp_end(Expression wholeExpression, Expression rightOperand,
-      Type rightOperandType,
-      {bool notEqual = false}) {
-    _wrap(
-        'equalityOp_end($wholeExpression, $rightOperand, $rightOperandType, '
-        'notEqual: $notEqual)',
-        () => _wrapped.equalityOp_end(
-            wholeExpression, rightOperand, rightOperandType,
-            notEqual: notEqual));
-  }
+  EqualityInfo<Variable, Type>? equalityOperand_end(
+          Expression operand, Type type) =>
+      _wrap('equalityOperand_end($operand, $type)',
+          () => _wrapped.equalityOperand_end(operand, type),
+          isQuery: true);
 
   @override
-  void equalityOp_rightBegin(Expression leftOperand, Type leftOperandType) {
-    _wrap('equalityOp_rightBegin($leftOperand, $leftOperandType)',
-        () => _wrapped.equalityOp_rightBegin(leftOperand, leftOperandType));
+  void equalityOperation_end(
+      Expression wholeExpression,
+      EqualityInfo<Variable, Type>? leftOperandInfo,
+      EqualityInfo<Variable, Type>? rightOperandInfo,
+      {bool notEqual = false}) {
+    _wrap(
+        'equalityOperation_end($wholeExpression, $leftOperandInfo, '
+        '$rightOperandInfo, notEqual: $notEqual)',
+        () => _wrapped.equalityOperation_end(
+            wholeExpression, leftOperandInfo, rightOperandInfo,
+            notEqual: notEqual));
   }
 
   @override
@@ -3408,26 +3446,6 @@
   _DemotionResult(this.promotedTypes, this.nonPromotionHistory);
 }
 
-/// [_FlowContext] representing an equality comparison using `==` or `!=`.
-class _EqualityOpContext<Variable extends Object, Type extends Object>
-    extends _BranchContext<Variable, Type> {
-  /// The type of the expression on the LHS of `==` or `!=`.
-  final Type _leftOperandType;
-
-  /// If the LHS of `==` or `!=` is a reference, the thing being referred to.
-  /// Otherwise `null`.
-  final ReferenceWithType<Variable, Type>? _leftOperandReference;
-
-  _EqualityOpContext(ExpressionInfo<Variable, Type>? conditionInfo,
-      this._leftOperandType, this._leftOperandReference)
-      : super(conditionInfo);
-
-  @override
-  String toString() =>
-      '_EqualityOpContext(conditionInfo: $_conditionInfo, lhsType: '
-      '$_leftOperandType)';
-}
-
 class _FlowAnalysisImpl<Node extends Object, Statement extends Node,
         Expression extends Object, Variable extends Object, Type extends Object>
     implements FlowAnalysis<Node, Statement, Expression, Variable, Type> {
@@ -3600,22 +3618,30 @@
   }
 
   @override
-  void equalityOp_end(Expression wholeExpression, Expression rightOperand,
-      Type rightOperandType,
+  EqualityInfo<Variable, Type> equalityOperand_end(
+          Expression operand, Type type) =>
+      new EqualityInfo<Variable, Type>._(
+          _getExpressionInfo(operand), type, _getExpressionReference(operand));
+
+  @override
+  void equalityOperation_end(
+      Expression wholeExpression,
+      EqualityInfo<Variable, Type>? leftOperandInfo,
+      EqualityInfo<Variable, Type>? rightOperandInfo,
       {bool notEqual = false}) {
-    _EqualityOpContext<Variable, Type> context =
-        _stack.removeLast() as _EqualityOpContext<Variable, Type>;
-    ExpressionInfo<Variable, Type>? lhsInfo = context._conditionInfo;
+    // Note: leftOperandInfo and rightOperandInfo are nullable in the base class
+    // to account for the fact that legacy type promotion doesn't record
+    // information about legacy operands.  But since we are currently in full
+    // (post null safety) flow analysis logic, we can safely assume that they
+    // are not null.
     ReferenceWithType<Variable, Type>? lhsReference =
-        context._leftOperandReference;
-    Type leftOperandType = context._leftOperandType;
-    ExpressionInfo<Variable, Type>? rhsInfo = _getExpressionInfo(rightOperand);
+        leftOperandInfo!._reference;
     ReferenceWithType<Variable, Type>? rhsReference =
-        _getExpressionReference(rightOperand);
+        rightOperandInfo!._reference;
     TypeClassification leftOperandTypeClassification =
-        typeOperations.classifyType(leftOperandType);
+        typeOperations.classifyType(leftOperandInfo._type);
     TypeClassification rightOperandTypeClassification =
-        typeOperations.classifyType(rightOperandType);
+        typeOperations.classifyType(rightOperandInfo._type);
     if (leftOperandTypeClassification == TypeClassification.nullOrEquivalent &&
         rightOperandTypeClassification == TypeClassification.nullOrEquivalent) {
       booleanLiteral(wholeExpression, !notEqual);
@@ -3629,12 +3655,14 @@
       // but weak mode it might produce an "equal" result.  We don't want flow
       // analysis behavior to depend on mode, so we conservatively assume that
       // either result is possible.
-    } else if (lhsInfo is _NullInfo<Variable, Type> && rhsReference != null) {
+    } else if (leftOperandInfo._expressionInfo is _NullInfo<Variable, Type> &&
+        rhsReference != null) {
       ExpressionInfo<Variable, Type> equalityInfo =
           _current.tryMarkNonNullable(typeOperations, rhsReference);
       _storeExpressionInfo(
           wholeExpression, notEqual ? equalityInfo : equalityInfo.invert());
-    } else if (rhsInfo is _NullInfo<Variable, Type> && lhsReference != null) {
+    } else if (rightOperandInfo._expressionInfo is _NullInfo<Variable, Type> &&
+        lhsReference != null) {
       ExpressionInfo<Variable, Type> equalityInfo =
           _current.tryMarkNonNullable(typeOperations, lhsReference);
       _storeExpressionInfo(
@@ -3643,14 +3671,6 @@
   }
 
   @override
-  void equalityOp_rightBegin(Expression leftOperand, Type leftOperandType) {
-    _stack.add(new _EqualityOpContext<Variable, Type>(
-        _getExpressionInfo(leftOperand),
-        leftOperandType,
-        _getExpressionReference(leftOperand)));
-  }
-
-  @override
   ExpressionInfo<Variable, Type>? expressionInfoForTesting(Expression target) =>
       identical(target, _expressionWithInfo) ? _expressionInfo : null;
 
@@ -4496,12 +4516,16 @@
   void doStatement_end(Expression condition) {}
 
   @override
-  void equalityOp_end(Expression wholeExpression, Expression rightOperand,
-      Type rightOperandType,
-      {bool notEqual = false}) {}
+  EqualityInfo<Variable, Type>? equalityOperand_end(
+          Expression operand, Type type) =>
+      null;
 
   @override
-  void equalityOp_rightBegin(Expression leftOperand, Type leftOperandType) {}
+  void equalityOperation_end(
+      Expression wholeExpression,
+      EqualityInfo<Variable, Type>? leftOperandInfo,
+      EqualityInfo<Variable, Type>? rightOperandInfo,
+      {bool notEqual = false}) {}
 
   @override
   ExpressionInfo<Variable, Type>? expressionInfoForTesting(Expression target) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/scanner/characters.dart b/pkg/_fe_analyzer_shared/lib/src/scanner/characters.dart
index 6e0710a..305d071 100644
--- a/pkg/_fe_analyzer_shared/lib/src/scanner/characters.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/scanner/characters.dart
@@ -132,16 +132,3 @@
   if (hexDigit <= $9) return hexDigit - $0;
   return (hexDigit | ($a ^ $A)) - ($a - 10);
 }
-
-bool isUnicodeScalarValue(int value) {
-  return value < $FIRST_SURROGATE ||
-      (value > $LAST_SURROGATE && value <= $LAST_CODE_POINT);
-}
-
-bool isUtf16LeadSurrogate(int value) {
-  return value >= 0xd800 && value <= 0xdbff;
-}
-
-bool isUtf16TrailSurrogate(int value) {
-  return value >= 0xdc00 && value <= 0xdfff;
-}
diff --git a/pkg/_fe_analyzer_shared/test/mini_ast.dart b/pkg/_fe_analyzer_shared/test/mini_ast.dart
index 0c71378..3a8528c 100644
--- a/pkg/_fe_analyzer_shared/test/mini_ast.dart
+++ b/pkg/_fe_analyzer_shared/test/mini_ast.dart
@@ -1413,14 +1413,17 @@
       flow.logicalBinaryOp_begin();
     }
     var leftType = analyzeExpression(lhs);
+    EqualityInfo<Var, Type>? leftInfo;
     if (isEquals) {
-      flow.equalityOp_rightBegin(lhs, leftType);
+      leftInfo = flow.equalityOperand_end(lhs, leftType);
     } else if (isLogical) {
       flow.logicalBinaryOp_rightBegin(lhs, node, isAnd: isAnd);
     }
     var rightType = analyzeExpression(rhs);
     if (isEquals) {
-      flow.equalityOp_end(node, rhs, rightType, notEqual: isNot);
+      flow.equalityOperation_end(
+          node, leftInfo, flow.equalityOperand_end(rhs, rightType),
+          notEqual: isNot);
     } else if (isLogical) {
       flow.logicalBinaryOp_end(node, rhs, isAnd: isAnd);
     }
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 0279042..2aec83b 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -569,10 +569,11 @@
                   'Invalid overlay change')));
         }
       } else if (change is RemoveContentOverlay) {
-        _pendingFilesToRemoveOverlay[file]?.cancel();
+        _pendingFilesToRemoveOverlay.remove(file)?.cancel();
         _pendingFilesToRemoveOverlay[file] = Timer(
           pendingFilesRemoveOverlayDelay,
           () {
+            _pendingFilesToRemoveOverlay.remove(file);
             resourceProvider.removeOverlay(file);
             _changeFileInDrivers(file);
           },
@@ -583,7 +584,7 @@
         throw AnalysisException('Illegal change type');
       }
 
-      _pendingFilesToRemoveOverlay[file]?.cancel();
+      _pendingFilesToRemoveOverlay.remove(file)?.cancel();
       resourceProvider.setOverlay(
         file,
         content: newContents,
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index 85363b6..38d2b60 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -11,6 +11,8 @@
 import 'package:analysis_server/src/collections.dart';
 import 'package:analysis_server/src/domain_abstract.dart';
 import 'package:analysis_server/src/domains/completion/available_suggestions.dart';
+import 'package:analysis_server/src/handler/legacy/completion_get_suggestion_details.dart';
+import 'package:analysis_server/src/handler/legacy/completion_get_suggestion_details2.dart';
 import 'package:analysis_server/src/plugin/plugin_manager.dart';
 import 'package:analysis_server/src/provisional/completion/completion_core.dart';
 import 'package:analysis_server/src/services/completion/completion_performance.dart';
@@ -22,7 +24,6 @@
 import 'package:analysis_server/src/services/completion/yaml/pubspec_generator.dart';
 import 'package:analysis_server/src/services/completion/yaml/yaml_completion_generator.dart';
 import 'package:analysis_server/src/utilities/progress.dart';
-import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
@@ -30,7 +31,6 @@
 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
-import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
 import 'package:collection/collection.dart';
 
 /// Instances of the class [CompletionDomainHandler] implement a
@@ -43,6 +43,10 @@
   Duration budgetDuration = CompletionBudget.defaultDuration;
 
   /// The completion services that the client is currently subscribed.
+  // TODO(brianwilkerson) This needs to be moved to some location where multiple
+  //  [LegacyHandler]s can access it, and the tests need to be cleaned up so
+  //  that they no longer depend on creating a new [CompletionDomainHandler] to
+  //  clear subscriptions from previous tests.
   final Set<CompletionService> subscriptions = <CompletionService>{};
 
   /// The next completion response id.
@@ -56,10 +60,6 @@
   /// The current request being processed or `null` if none.
   DartCompletionRequest? _currentRequest;
 
-  /// The identifiers of the latest `getSuggestionDetails` request.
-  /// We use it to abort previous requests.
-  int _latestGetSuggestionDetailsId = 0;
-
   /// Initialize a new request handler for the given [server].
   CompletionDomainHandler(AnalysisServer server) : super(server);
 
@@ -134,135 +134,6 @@
     return const YamlCompletionResults.empty();
   }
 
-  /// Process a `completion.getSuggestionDetails` request.
-  void getSuggestionDetails(Request request) async {
-    var params = CompletionGetSuggestionDetailsParams.fromRequest(request);
-
-    var file = params.file;
-    if (server.sendResponseErrorIfInvalidFilePath(request, file)) {
-      return;
-    }
-
-    var libraryId = params.id;
-    var declarationsTracker = server.declarationsTracker;
-    if (declarationsTracker == null) {
-      server.sendResponse(Response.unsupportedFeature(
-          request.id, 'Completion is not enabled.'));
-      return;
-    }
-    var library = declarationsTracker.getLibrary(libraryId);
-    if (library == null) {
-      server.sendResponse(Response.invalidParameter(
-        request,
-        'libraryId',
-        'No such library: $libraryId',
-      ));
-      return;
-    }
-
-    // The label might be `MyEnum.myValue`, but we import only `MyEnum`.
-    var requestedName = params.label;
-    if (requestedName.contains('.')) {
-      requestedName = requestedName.substring(
-        0,
-        requestedName.indexOf('.'),
-      );
-    }
-
-    const timeout = Duration(milliseconds: 1000);
-    var timer = Stopwatch()..start();
-    var id = ++_latestGetSuggestionDetailsId;
-    while (id == _latestGetSuggestionDetailsId && timer.elapsed < timeout) {
-      try {
-        var session = await server.getAnalysisSession(file);
-        if (session == null) {
-          server.sendResponse(Response.fileNotAnalyzed(request, 'libraryId'));
-          return;
-        }
-
-        var completion = params.label;
-        var builder = ChangeBuilder(session: session);
-        await builder.addDartFileEdit(file, (builder) {
-          var result = builder.importLibraryElement(library.uri);
-          if (result.prefix != null) {
-            completion = '${result.prefix}.$completion';
-          }
-        });
-
-        server.sendResponse(
-          CompletionGetSuggestionDetailsResult(
-            completion,
-            change: builder.sourceChange,
-          ).toResponse(request.id),
-        );
-        return;
-      } on InconsistentAnalysisException {
-        // Loop around to try again.
-      }
-    }
-
-    // Timeout or abort, send the empty response.
-    server.sendResponse(
-      CompletionGetSuggestionDetailsResult('').toResponse(request.id),
-    );
-  }
-
-  /// Process a `completion.getSuggestionDetails2` request.
-  void getSuggestionDetails2(Request request) async {
-    var params = CompletionGetSuggestionDetails2Params.fromRequest(request);
-
-    var file = params.file;
-    if (server.sendResponseErrorIfInvalidFilePath(request, file)) {
-      return;
-    }
-
-    var libraryUri = Uri.tryParse(params.libraryUri);
-    if (libraryUri == null) {
-      server.sendResponse(
-        Response.invalidParameter(request, 'libraryUri', 'Cannot parse'),
-      );
-      return;
-    }
-
-    var budget = CompletionBudget(
-      const Duration(milliseconds: 1000),
-    );
-    var id = ++_latestGetSuggestionDetailsId;
-    while (id == _latestGetSuggestionDetailsId && !budget.isEmpty) {
-      try {
-        var session = await server.getAnalysisSession(file);
-        if (session == null) {
-          server.sendResponse(Response.fileNotAnalyzed(request, file));
-          return;
-        }
-
-        var completion = params.completion;
-        var builder = ChangeBuilder(session: session);
-        await builder.addDartFileEdit(file, (builder) {
-          var result = builder.importLibraryElement(libraryUri);
-          if (result.prefix != null) {
-            completion = '${result.prefix}.$completion';
-          }
-        });
-
-        server.sendResponse(
-          CompletionGetSuggestionDetails2Result(
-            completion,
-            builder.sourceChange,
-          ).toResponse(request.id),
-        );
-        return;
-      } on InconsistentAnalysisException {
-        // Loop around to try again.
-      }
-    }
-
-    // Timeout or abort, send the empty response.
-    server.sendResponse(
-      CompletionGetSuggestionDetailsResult('').toResponse(request.id),
-    );
-  }
-
   /// Implement the 'completion.getSuggestions2' request.
   void getSuggestions2(Request request) async {
     var params = CompletionGetSuggestions2Params.fromRequest(request);
@@ -421,10 +292,14 @@
       var requestName = request.method;
 
       if (requestName == COMPLETION_REQUEST_GET_SUGGESTION_DETAILS) {
-        getSuggestionDetails(request);
+        CompletionGetSuggestionDetailsHandler(
+                server, request, cancellationToken)
+            .handle();
         return Response.DELAYED_RESPONSE;
       } else if (requestName == COMPLETION_REQUEST_GET_SUGGESTION_DETAILS2) {
-        getSuggestionDetails2(request);
+        CompletionGetSuggestionDetails2Handler(
+                server, request, cancellationToken)
+            .handle();
         return Response.DELAYED_RESPONSE;
       } else if (requestName == COMPLETION_REQUEST_GET_SUGGESTIONS) {
         processRequest(request);
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart
new file mode 100644
index 0000000..e531347
--- /dev/null
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart
@@ -0,0 +1,93 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analysis_server/protocol/protocol.dart';
+import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
+
+/// The handler for the `completion.getSuggestionDetails` request.
+class CompletionGetSuggestionDetailsHandler extends LegacyHandler {
+  /// The identifiers of the latest `getSuggestionDetails` request.
+  /// We use it to abort previous requests.
+  int _latestGetSuggestionDetailsId = 0;
+
+  /// Initialize a newly created handler to be able to service requests for the
+  /// [server].
+  CompletionGetSuggestionDetailsHandler(AnalysisServer server, Request request,
+      CancellationToken cancellationToken)
+      : super(server, request, cancellationToken);
+
+  @override
+  Future<void> handle() async {
+    var params = CompletionGetSuggestionDetailsParams.fromRequest(request);
+
+    var file = params.file;
+    if (server.sendResponseErrorIfInvalidFilePath(request, file)) {
+      return;
+    }
+
+    var libraryId = params.id;
+    var declarationsTracker = server.declarationsTracker;
+    if (declarationsTracker == null) {
+      sendResponse(Response.unsupportedFeature(
+          request.id, 'Completion is not enabled.'));
+      return;
+    }
+    var library = declarationsTracker.getLibrary(libraryId);
+    if (library == null) {
+      sendResponse(Response.invalidParameter(
+        request,
+        'libraryId',
+        'No such library: $libraryId',
+      ));
+      return;
+    }
+
+    // The label might be `MyEnum.myValue`, but we import only `MyEnum`.
+    var requestedName = params.label;
+    if (requestedName.contains('.')) {
+      requestedName = requestedName.substring(
+        0,
+        requestedName.indexOf('.'),
+      );
+    }
+
+    const timeout = Duration(milliseconds: 1000);
+    var timer = Stopwatch()..start();
+    var id = ++_latestGetSuggestionDetailsId;
+    while (id == _latestGetSuggestionDetailsId && timer.elapsed < timeout) {
+      try {
+        var session = await server.getAnalysisSession(file);
+        if (session == null) {
+          sendResponse(Response.fileNotAnalyzed(request, 'libraryId'));
+          return;
+        }
+
+        var completion = params.label;
+        var builder = ChangeBuilder(session: session);
+        await builder.addDartFileEdit(file, (builder) {
+          var result = builder.importLibraryElement(library.uri);
+          if (result.prefix != null) {
+            completion = '${result.prefix}.$completion';
+          }
+        });
+
+        sendResult(CompletionGetSuggestionDetailsResult(completion,
+            change: builder.sourceChange));
+        return;
+      } on InconsistentAnalysisException {
+        // Loop around to try again.
+      }
+    }
+
+    // Timeout or abort, send the empty response.
+    sendResult(CompletionGetSuggestionDetailsResult(''));
+  }
+}
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart
new file mode 100644
index 0000000..2cdf656
--- /dev/null
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart
@@ -0,0 +1,79 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analysis_server/protocol/protocol.dart';
+import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
+import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
+
+/// The handler for the `completion.getSuggestionDetails2` request.
+class CompletionGetSuggestionDetails2Handler extends LegacyHandler {
+  /// The identifiers of the latest `getSuggestionDetails2` request.
+  /// We use it to abort previous requests.
+  int _latestGetSuggestionDetailsId = 0;
+
+  /// Initialize a newly created handler to be able to service requests for the
+  /// [server].
+  CompletionGetSuggestionDetails2Handler(AnalysisServer server, Request request,
+      CancellationToken cancellationToken)
+      : super(server, request, cancellationToken);
+
+  @override
+  Future<void> handle() async {
+    var params = CompletionGetSuggestionDetails2Params.fromRequest(request);
+
+    var file = params.file;
+    if (server.sendResponseErrorIfInvalidFilePath(request, file)) {
+      return;
+    }
+
+    var libraryUri = Uri.tryParse(params.libraryUri);
+    if (libraryUri == null) {
+      sendResponse(
+        Response.invalidParameter(request, 'libraryUri', 'Cannot parse'),
+      );
+      return;
+    }
+
+    var budget = CompletionBudget(
+      const Duration(milliseconds: 1000),
+    );
+    var id = ++_latestGetSuggestionDetailsId;
+    while (id == _latestGetSuggestionDetailsId && !budget.isEmpty) {
+      try {
+        var session = await server.getAnalysisSession(file);
+        if (session == null) {
+          sendResponse(Response.fileNotAnalyzed(request, file));
+          return;
+        }
+
+        var completion = params.completion;
+        var builder = ChangeBuilder(session: session);
+        await builder.addDartFileEdit(file, (builder) {
+          var result = builder.importLibraryElement(libraryUri);
+          if (result.prefix != null) {
+            completion = '${result.prefix}.$completion';
+          }
+        });
+
+        sendResult(CompletionGetSuggestionDetails2Result(
+          completion,
+          builder.sourceChange,
+        ));
+        return;
+      } on InconsistentAnalysisException {
+        // Loop around to try again.
+      }
+    }
+
+    // Timeout or abort, send the empty response.
+    sendResult(CompletionGetSuggestionDetailsResult(''));
+  }
+}
diff --git a/pkg/analysis_server/lib/src/lsp/mapping.dart b/pkg/analysis_server/lib/src/lsp/mapping.dart
index 8125d9a..fa6a104 100644
--- a/pkg/analysis_server/lib/src/lsp/mapping.dart
+++ b/pkg/analysis_server/lib/src/lsp/mapping.dart
@@ -346,8 +346,9 @@
     // we can assume if an item is callable it's probably being used in a context
     // that can invoke it.
     isInvocation: isCallable,
-    defaultArgumentListString: declaration.defaultArgumentListString,
-    defaultArgumentListTextRanges: declaration.defaultArgumentListTextRanges,
+    requiredArgumentListString: declaration.defaultArgumentListString,
+    requiredArgumentListTextRanges: declaration.defaultArgumentListTextRanges,
+    hasOptionalParameters: declaration.parameterNames?.isNotEmpty ?? false,
     completion: completion,
     selectionOffset: 0,
     selectionLength: 0,
@@ -1179,8 +1180,9 @@
     completeFunctionCalls: completeFunctionCalls,
     isCallable: isCallable,
     isInvocation: isInvocation,
-    defaultArgumentListString: suggestion.defaultArgumentListString,
-    defaultArgumentListTextRanges: suggestion.defaultArgumentListTextRanges,
+    requiredArgumentListString: suggestion.defaultArgumentListString,
+    requiredArgumentListTextRanges: suggestion.defaultArgumentListTextRanges,
+    hasOptionalParameters: suggestion.parameterNames?.isNotEmpty ?? false,
     completion: suggestion.completion,
     selectionOffset: suggestion.selectionOffset,
     selectionLength: suggestion.selectionLength,
@@ -1664,8 +1666,9 @@
   required bool completeFunctionCalls,
   required bool isCallable,
   required bool isInvocation,
-  required String? defaultArgumentListString,
-  required List<int>? defaultArgumentListTextRanges,
+  required String? requiredArgumentListString,
+  required List<int>? requiredArgumentListTextRanges,
+  required bool hasOptionalParameters,
   required String completion,
   required int selectionOffset,
   required int selectionLength,
@@ -1692,13 +1695,16 @@
         isInvocation) {
       insertTextFormat = lsp.InsertTextFormat.Snippet;
       final hasRequiredParameters =
-          (defaultArgumentListTextRanges?.length ?? 0) > 0;
+          requiredArgumentListTextRanges?.isNotEmpty ?? false;
       final functionCallSuffix =
-          hasRequiredParameters && defaultArgumentListString != null
+          hasRequiredParameters && requiredArgumentListString != null
               ? buildSnippetStringWithTabStops(
-                  defaultArgumentListString, defaultArgumentListTextRanges)
-              // No required params still gets a final tab stop in the parens.
-              : SnippetBuilder.finalTabStop;
+                  requiredArgumentListString, requiredArgumentListTextRanges)
+              // Optional params still gets a final tab stop in the parens.
+              : hasOptionalParameters
+                  ? SnippetBuilder.finalTabStop
+                  // And no parameters at all we skip the tabstop in the parens.
+                  : '';
       insertText =
           '${SnippetBuilder.escapeSnippetPlainText(insertText)}($functionCallSuffix)';
     } else if (selectionOffset != 0 &&
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/replaced_by.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/replaced_by.dart
index 6d36d486..961632b 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/replaced_by.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/replaced_by.dart
@@ -65,6 +65,15 @@
           // We shouldn't get here.
           return null;
         }
+      } else if (parent is NamedType) {
+        var grandparent = parent.parent;
+        if (grandparent is ConstructorName &&
+            grandparent.name?.name == components[0]) {
+          // TODO(brianwilkerson) This doesn't correctly handle constructor
+          //  invocations with type arguments. We really need to replace the
+          //  class and constructor names separately.
+          return _Data(range.node(grandparent));
+        }
       } else if (parent is PrefixedIdentifier) {
         if (parent.prefix.staticElement is PrefixElement) {
           // We have a '<prefix>.<topLevel>' pattern so we leave the prefix
diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart
index 776c72d..5c2c45e 100644
--- a/pkg/analysis_server/test/domain_analysis_test.dart
+++ b/pkg/analysis_server/test/domain_analysis_test.dart
@@ -884,6 +884,62 @@
     assertNoErrorsNotification(a_path);
   }
 
+  /// This test ensures that when an `addOverlay` cancels any pending
+  /// `removeOverlay` timer, it also removes it, so that a subsequent watch
+  /// event does not still try to process it.
+  Future<void>
+      test_fileSystem_removeOverlay_addOverlay_changeFile_changeOverlay() async {
+    // Use long delay, so that it does not happen.
+    server.pendingFilesRemoveOverlayDelay = const Duration(seconds: 300);
+
+    newFile2(testFilePath, '');
+
+    // Add an overlay without errors.
+    await handleSuccessfulRequest(
+      AnalysisUpdateContentParams({
+        testFilePathPlatform: AddContentOverlay(''),
+      }).toRequest('0'),
+    );
+
+    await setRoots(included: [workspaceRootPath], excluded: []);
+
+    // The test file (overlay) is analyzed, no errors.
+    await _waitAnalysisComplete();
+    _assertAnalyzedFiles(
+      hasErrors: [],
+      noErrors: [testFilePathPlatform],
+      notAnalyzed: [],
+    );
+
+    // Ask to remove the overlay, still active, start a timer.
+    await handleSuccessfulRequest(
+      AnalysisUpdateContentParams({
+        testFilePathPlatform: RemoveContentOverlay(),
+      }).toRequest('0'),
+    );
+
+    // Re-add an overlay. Should cancel the timer and replace the overlay.
+    await handleSuccessfulRequest(
+      AnalysisUpdateContentParams({
+        testFilePathPlatform: AddContentOverlay(''),
+      }).toRequest('0'),
+    );
+
+    // Change the file to trigger the watcher. Since the request above should
+    // have cancelled (and removed) the timer, this should not do anything
+    // (specifically, it should not remove the new overlay).
+    modifyFile(testFilePath, 'error');
+
+    // The overlay should still be present, so we should be able to change it.
+    await handleSuccessfulRequest(
+      AnalysisUpdateContentParams({
+        testFilePathPlatform: ChangeContentOverlay(
+          [SourceEdit(0, 0, '//')],
+        ),
+      }).toRequest('0'),
+    );
+  }
+
   Future<void> test_setPriorityFiles() async {
     var a = getFile('$workspaceRootPath/foo/lib/a.dart');
     var b = getFile('$workspaceRootPath/foo/lib/b.dart');
diff --git a/pkg/analysis_server/test/lsp/completion_dart_test.dart b/pkg/analysis_server/test/lsp/completion_dart_test.dart
index 6ea5f28..66749c1 100644
--- a/pkg/analysis_server/test/lsp/completion_dart_test.dart
+++ b/pkg/analysis_server/test/lsp/completion_dart_test.dart
@@ -33,7 +33,7 @@
     with CompletionTestMixin {
   Future<void> checkCompleteFunctionCallInsertText(
       String content, String completion,
-      {required String insertText, InsertTextFormat? insertTextFormat}) async {
+      {required String? insertText, InsertTextFormat? insertTextFormat}) async {
     await provideConfig(
       () => initialize(
         textDocumentCapabilities: withCompletionItemSnippetSupport(
@@ -55,7 +55,9 @@
     expect(item.insertText, equals(insertText));
 
     final textEdit = toTextEdit(item.textEdit!);
-    expect(textEdit.newText, equals(item.insertText));
+    // newText in the edit will always be set, so if insertText is null we need
+    // fall back to item.label for the expected value.
+    expect(textEdit.newText, equals(item.insertText ?? item.label));
     expect(textEdit.range, equals(rangeFromMarkers(content)));
   }
 
@@ -380,7 +382,27 @@
         insertText: r'foo(${0:a})',
       );
 
-  Future<void> test_completeFunctionCalls_noRequiredParameters() async {
+  Future<void> test_completeFunctionCalls_noParameters() async {
+    final content = '''
+    void myFunction() {}
+
+    void f() {
+      [[myFu^]]
+    }
+    ''';
+
+    await checkCompleteFunctionCallInsertText(
+      content,
+      'myFunction()',
+      // With no params, we don't put a tab stop inside the parens. This results
+      // in the insertText being the same as the label, which means it will be
+      // set to null so that it falls back without needing to repeat the value.
+      insertText: null,
+      insertTextFormat: InsertTextFormat.Snippet,
+    );
+  }
+
+  Future<void> test_completeFunctionCalls_optionalParameters() async {
     final content = '''
     void myFunction({int a}) {}
 
@@ -389,24 +411,13 @@
     }
     ''';
 
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
+    await checkCompleteFunctionCallInsertText(
+      content,
+      'myFunction(…)',
+      // With optional params, there should still be parens/tab stop inside.
+      insertText: r'myFunction($0)',
+      insertTextFormat: InsertTextFormat.Snippet,
     );
-    await openFile(mainFileUri, withoutMarkers(content));
-    final res = await getCompletion(mainFileUri, positionFromMarker(content));
-    final item = res.singleWhere((c) => c.label == 'myFunction(…)');
-    // With no required params, there should still be parens/tab stop inside.
-    expect(item.insertTextFormat, equals(InsertTextFormat.Snippet));
-    expect(item.insertText, equals(r'myFunction($0)'));
-    final textEdit = toTextEdit(item.textEdit!);
-    expect(textEdit.newText, equals(item.insertText));
-    expect(textEdit.range, equals(rangeFromMarkers(content)));
   }
 
   Future<void> test_completeFunctionCalls_show() async {
diff --git a/pkg/analysis_server/test/src/services/correction/fix/data_driven/flutter_use_case_test.dart b/pkg/analysis_server/test/src/services/correction/fix/data_driven/flutter_use_case_test.dart
index ce50e6b..3795cb8 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/data_driven/flutter_use_case_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/data_driven/flutter_use_case_test.dart
@@ -706,7 +706,6 @@
 ''');
   }
 
-  @failingTest
   Future<void> test_material_FlatButton_deprecated() async {
     setPackageContent('''
 @deprecated
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index 5e1246d..6d8741a 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -111,9 +111,10 @@
     left = node.leftOperand;
 
     var flow = _resolver.flowAnalysis.flow;
+    EqualityInfo<PromotableElement, DartType>? leftInfo;
     var leftExtensionOverride = left is ExtensionOverride;
     if (!leftExtensionOverride) {
-      flow?.equalityOp_rightBegin(left, left.typeOrThrow);
+      leftInfo = flow?.equalityOperand_end(left, left.typeOrThrow);
     }
 
     var right = node.rightOperand;
@@ -122,7 +123,9 @@
     var whyNotPromoted = _resolver.flowAnalysis.flow?.whyNotPromoted(right);
 
     if (!leftExtensionOverride) {
-      flow?.equalityOp_end(node, right, right.typeOrThrow, notEqual: notEqual);
+      flow?.equalityOperation_end(
+          node, leftInfo, flow.equalityOperand_end(right, right.typeOrThrow),
+          notEqual: notEqual);
     }
 
     _resolveUserDefinableElement(
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
index 80295e6..038cc4f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
@@ -170,7 +170,7 @@
     required List<WhyNotPromotedGetter> whyNotPromotedList,
     required DartType? contextType,
   }) {
-    var returnType = MethodInvocationInferrer.forNode(node).resolveInvocation(
+    var returnType = const MethodInvocationInferrer().resolveInvocation(
       resolver: _resolver,
       node: node,
       rawType: rawType,
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
index 01e63e9..c8117fd 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:_fe_analyzer_shared/src/base/errors.dart';
+import 'package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -372,7 +373,11 @@
     resolver.checkUnreachableNode(argumentList);
     var flow = resolver.flowAnalysis.flow;
     var positionalParameterIndex = 0;
-    for (var argument in _iterateArguments(resolver, argumentList)) {
+    List<EqualityInfo<PromotableElement, DartType>?>? identicalInfo =
+        _isIdentical(node) ? [] : null;
+    var arguments = argumentList.arguments;
+    for (int i = 0; i < arguments.length; i++) {
+      var argument = arguments[i];
       ParameterElement? parameter;
       if (argument is NamedExpression) {
         parameter = namedParameters[argument.name.label.name];
@@ -392,10 +397,18 @@
             resolver, node, parameterType, contextType);
       }
       resolver.analyzeExpression(argument, parameterContextType);
+      // In case of rewrites, we need to grab the argument again.
+      argument = arguments[i];
       if (flow != null) {
+        identicalInfo
+            ?.add(flow.equalityOperand_end(argument, argument.typeOrThrow));
         whyNotPromotedList.add(flow.whyNotPromoted(argument));
       }
     }
+    if (identicalInfo != null) {
+      flow?.equalityOperation_end(argumentList.parent as Expression,
+          identicalInfo[0], identicalInfo[1]);
+    }
   }
 
   /// Computes the type context that should be used when evaluating a particular
@@ -409,13 +422,9 @@
   /// Gets the argument list for the invocation.  TODO(paulberry): remove?
   ArgumentListImpl _getArgumentList(Node node);
 
-  /// Iterates through the argument list for the invocation.  Usually this is
-  /// just a simple iteration through the arguments, but in certain cases, some
-  /// flow analysis methods need to be called in between visiting the various
-  /// arguments.
-  Iterable<Expression> _iterateArguments(
-          ResolverVisitor resolver, ArgumentList argumentList) =>
-      argumentList.arguments;
+  /// Determines whether [node] is an invocation of the core function
+  /// `identical` (which needs special flow analysis treatment).
+  bool _isIdentical(Node node) => false;
 
   /// Computes the return type of the method or function represented by the
   /// given type that is being invoked.
@@ -432,23 +441,7 @@
 /// nodes of type [MethodInvocation].
 class MethodInvocationInferrer
     extends InvocationExpressionInferrer<MethodInvocationImpl> {
-  /// Gets the appropriate instance of [MethodInvocation] for the given [node].
-  ///
-  /// This factory takes care of the fact that invocations of `identical` need
-  /// to have special integration with flow analysis.
-  factory MethodInvocationInferrer.forNode(MethodInvocationImpl node) {
-    var invokedMethod = node.methodName.staticElement;
-    if (invokedMethod != null &&
-        invokedMethod.name == 'identical' &&
-        invokedMethod.library!.isDartCore &&
-        node.argumentList.arguments.length == 2) {
-      return const _IdenticalInvocationInferrer._();
-    } else {
-      return const MethodInvocationInferrer._();
-    }
-  }
-
-  const MethodInvocationInferrer._() : super._();
+  const MethodInvocationInferrer() : super._();
 
   @override
   DartType? _computeContextForArgument(
@@ -470,6 +463,15 @@
   }
 
   @override
+  bool _isIdentical(MethodInvocationImpl node) {
+    var invokedMethod = node.methodName.staticElement;
+    return invokedMethod is FunctionElement &&
+        invokedMethod.name == 'identical' &&
+        invokedMethod.library.isDartCore &&
+        node.argumentList.arguments.length == 2;
+  }
+
+  @override
   DartType _refineReturnType(ResolverVisitor resolver,
       MethodInvocationImpl node, DartType returnType) {
     var targetType = node.realTarget?.staticType;
@@ -509,28 +511,3 @@
   ArgumentListImpl _getArgumentList(SuperConstructorInvocationImpl node) =>
       node.argumentList;
 }
-
-/// Specialization of [InvocationInferrer] for performing type inference on AST
-/// nodes of type [MethodInvocation] that resolve to the core function
-/// `identical`.  (Such nodes need to be handled in a special way due to the
-/// interaction between `identical` and flow analysis).
-class _IdenticalInvocationInferrer extends MethodInvocationInferrer {
-  const _IdenticalInvocationInferrer._() : super._();
-
-  @override
-  Iterable<Expression> _iterateArguments(
-      ResolverVisitor resolver, ArgumentList argumentList) sync* {
-    var flow = resolver.flowAnalysis.flow;
-    var arguments = argumentList.arguments;
-    assert(arguments.length == 2);
-    var firstArg = arguments[0];
-    yield firstArg;
-    firstArg = arguments[0]; // In case it was rewritten
-    flow?.equalityOp_rightBegin(firstArg, firstArg.typeOrThrow);
-    var secondArg = arguments[1];
-    yield secondArg;
-    secondArg = arguments[1]; // In case it was rewritten
-    flow?.equalityOp_end(
-        argumentList.parent as Expression, secondArg, secondArg.typeOrThrow);
-  }
-}
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index 724f3c1..776d654 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -327,14 +327,14 @@
   void _resolveArguments_finishInference(
       MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
       {required DartType? contextType}) {
-    var methodInvocationInferrer = MethodInvocationInferrer.forNode(node);
     var rawType = node.methodName.staticType;
-    DartType staticStaticType = methodInvocationInferrer.resolveInvocation(
-        resolver: _resolver,
-        node: node,
-        rawType: rawType is FunctionType ? rawType : null,
-        contextType: contextType,
-        whyNotPromotedList: whyNotPromotedList);
+    DartType staticStaticType = const MethodInvocationInferrer()
+        .resolveInvocation(
+            resolver: _resolver,
+            node: node,
+            rawType: rawType is FunctionType ? rawType : null,
+            contextType: contextType,
+            whyNotPromotedList: whyNotPromotedList);
     _inferenceHelper.recordStaticType(node, staticStaticType,
         contextType: contextType);
   }
@@ -473,7 +473,7 @@
     }
 
     _setExplicitTypeArgumentTypes();
-    MethodInvocationInferrer.forNode(node).resolveInvocation(
+    const MethodInvocationInferrer().resolveInvocation(
         resolver: _resolver,
         node: node,
         rawType: rawType,
@@ -546,7 +546,7 @@
       node.staticInvokeType = _dynamicType;
       node.staticType = NeverTypeImpl.instance;
 
-      MethodInvocationInferrer.forNode(node).resolveInvocation(
+      const MethodInvocationInferrer().resolveInvocation(
           resolver: _resolver,
           node: node,
           rawType: null,
@@ -565,7 +565,7 @@
       node.staticInvokeType = _dynamicType;
       node.staticType = _dynamicType;
 
-      MethodInvocationInferrer.forNode(node).resolveInvocation(
+      const MethodInvocationInferrer().resolveInvocation(
           resolver: _resolver,
           node: node,
           rawType: null,
diff --git a/pkg/compiler/lib/src/ir/visitors.dart b/pkg/compiler/lib/src/ir/visitors.dart
index 8e014ab..b3d182c2 100644
--- a/pkg/compiler/lib/src/ir/visitors.dart
+++ b/pkg/compiler/lib/src/ir/visitors.dart
@@ -45,7 +45,6 @@
   final IrToElementMap elementMap;
   final Map<ir.TypeParameter, DartType> currentFunctionTypeParameters =
       <ir.TypeParameter, DartType>{};
-  bool topLevel = true;
 
   DartTypeConverter(this.elementMap);
 
@@ -62,14 +61,7 @@
     }
   }
 
-  DartType convert(ir.DartType type) {
-    topLevel = true;
-    return type.accept(this);
-  }
-
-  /// Visit a inner type.
   DartType visitType(ir.DartType type) {
-    topLevel = false;
     return type.accept(this);
   }
 
@@ -77,7 +69,6 @@
       visitInterfaceType(node.asInterfaceType).withoutNullability;
 
   List<DartType> visitTypes(List<ir.DartType> types) {
-    topLevel = false;
     return List.generate(
         types.length, (int index) => types[index].accept(this));
   }
diff --git a/pkg/compiler/lib/src/js_model/element_map_impl.dart b/pkg/compiler/lib/src/js_model/element_map_impl.dart
index aac7e7e..accde9d 100644
--- a/pkg/compiler/lib/src/js_model/element_map_impl.dart
+++ b/pkg/compiler/lib/src/js_model/element_map_impl.dart
@@ -847,7 +847,7 @@
   FieldEntity getField(ir.Field node) => getFieldInternal(node);
 
   @override
-  DartType getDartType(ir.DartType type) => _typeConverter.convert(type);
+  DartType getDartType(ir.DartType type) => _typeConverter.visitType(type);
 
   @override
   TypeVariableType getTypeVariableType(ir.TypeParameterType type) =>
@@ -864,7 +864,7 @@
 
   @override
   InterfaceType getInterfaceType(ir.InterfaceType type) =>
-      _typeConverter.convert(type).withoutNullability;
+      _typeConverter.visitType(type).withoutNullability;
 
   @override
   FunctionType getFunctionType(ir.FunctionNode node) {
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index a0a1e69..9ff6f5f 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -505,7 +505,7 @@
 
   /// Returns the [DartType] corresponding to [type].
   @override
-  DartType getDartType(ir.DartType type) => _typeConverter.convert(type);
+  DartType getDartType(ir.DartType type) => _typeConverter.visitType(type);
 
   /// Returns the [TypeVariableType] corresponding to [type].
   TypeVariableType getTypeVariableType(ir.TypeParameterType type) =>
@@ -521,7 +521,7 @@
 
   /// Returns the [InterfaceType] corresponding to [type].
   InterfaceType getInterfaceType(ir.InterfaceType type) =>
-      _typeConverter.convert(type).withoutNullability;
+      _typeConverter.visitType(type).withoutNullability;
 
   /// Returns the [FunctionType] of the [node].
   @override
diff --git a/pkg/dart2wasm/lib/code_generator.dart b/pkg/dart2wasm/lib/code_generator.dart
index 9fe6c33..658a618 100644
--- a/pkg/dart2wasm/lib/code_generator.dart
+++ b/pkg/dart2wasm/lib/code_generator.dart
@@ -1723,8 +1723,20 @@
 
   @override
   w.ValueType visitNullCheck(NullCheck node, w.ValueType expectedType) {
-    // TODO(joshualitt): Check and throw exception
-    return wrap(node.operand, expectedType);
+    w.ValueType operandType =
+        translator.translateType(dartTypeOf(node.operand));
+    w.ValueType nonNullOperandType = operandType.withNullability(false);
+    w.Label nullCheckBlock = b.block(const [], [nonNullOperandType]);
+    wrap(node.operand, operandType);
+
+    // We lower a null check to a br_on_non_null, throwing a [TypeError] in the
+    // null case.
+    b.br_on_non_null(nullCheckBlock);
+    _call(translator.stackTraceCurrent.reference);
+    _call(translator.throwNullCheckError.reference);
+    b.unreachable();
+    b.end();
+    return nonNullOperandType;
   }
 
   void _visitArguments(Arguments node, Reference target, int signatureOffset) {
diff --git a/pkg/dart2wasm/lib/intrinsics.dart b/pkg/dart2wasm/lib/intrinsics.dart
index c1d914d..498580c 100644
--- a/pkg/dart2wasm/lib/intrinsics.dart
+++ b/pkg/dart2wasm/lib/intrinsics.dart
@@ -602,6 +602,16 @@
           b.i32_wrap_i64();
           b.struct_set(translator.objectInfo.struct, FieldIndex.identityHash);
           return codeGen.voidMarker;
+        case "_throwObjectWithStackTrace":
+          Expression object = node.arguments.positional[0];
+          Expression stackTrace = node.arguments.positional[1];
+          w.ValueType objectType = translator.topInfo.nonNullableType;
+          w.ValueType stackTraceType =
+              translator.stackTraceInfo.nonNullableType;
+          codeGen.wrap(object, objectType);
+          codeGen.wrap(stackTrace, stackTraceType);
+          b.throw_(translator.exceptionTag);
+          return codeGen.voidMarker;
       }
     }
 
diff --git a/pkg/dart2wasm/lib/translator.dart b/pkg/dart2wasm/lib/translator.dart
index 8b71467..8fdc1b8 100644
--- a/pkg/dart2wasm/lib/translator.dart
+++ b/pkg/dart2wasm/lib/translator.dart
@@ -90,9 +90,11 @@
   late final Class typedListClass;
   late final Class typedListViewClass;
   late final Class byteDataViewClass;
+  late final Class typeErrorClass;
   late final Procedure stackTraceCurrent;
   late final Procedure stringEquals;
   late final Procedure stringInterpolate;
+  late final Procedure throwNullCheckError;
   late final Procedure mapFactory;
   late final Procedure mapPut;
   late final Procedure immutableMapIndexNullable;
@@ -177,6 +179,7 @@
     stackTraceClass = lookupCore("StackTrace");
     ffiCompoundClass = lookupFfi("_Compound");
     ffiPointerClass = lookupFfi("Pointer");
+    typeErrorClass = lookupCore("_TypeError");
     typedListBaseClass = lookupTypedData("_TypedListBase");
     typedListClass = lookupTypedData("_TypedList");
     typedListViewClass = lookupTypedData("_TypedListView");
@@ -187,6 +190,8 @@
         stringBaseClass.procedures.firstWhere((p) => p.name.text == "==");
     stringInterpolate = stringBaseClass.procedures
         .firstWhere((p) => p.name.text == "_interpolate");
+    throwNullCheckError = typeErrorClass.procedures
+        .firstWhere((p) => p.name.text == "_throwNullCheckError");
     mapFactory = lookupCollection("LinkedHashMap").procedures.firstWhere(
         (p) => p.kind == ProcedureKind.Factory && p.name.text == "_default");
     mapPut = lookupCollection("_CompactLinkedCustomHashMap")
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 0c7c5ae..07ea5fb 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -4120,7 +4120,8 @@
       {required bool isNot}) {
     // ignore: unnecessary_null_comparison
     assert(isNot != null);
-    inferrer.flowAnalysis.equalityOp_rightBegin(left, leftType);
+    EqualityInfo<VariableDeclaration, DartType>? equalityInfo =
+        inferrer.flowAnalysis.equalityOperand_end(left, leftType);
     bool typeNeeded = !inferrer.isTopLevel;
 
     Expression? equals;
@@ -4137,8 +4138,11 @@
       if (isNot) {
         equals = new Not(equals)..fileOffset = fileOffset;
       }
-      inferrer.flowAnalysis.equalityOp_end(
-          equals, rightResult.expression, rightResult.inferredType,
+      inferrer.flowAnalysis.equalityOperation_end(
+          equals,
+          equalityInfo,
+          inferrer.flowAnalysis.equalityOperand_end(
+              rightResult.expression, rightResult.inferredType),
           notEqual: isNot);
       return new ExpressionInferenceResult(
           inferrer.coreTypes.boolRawType(inferrer.libraryBuilder.nonNullable),
@@ -4206,8 +4210,11 @@
       }
     }
 
-    inferrer.flowAnalysis.equalityOp_end(
-        equals, right, rightResult.inferredType,
+    inferrer.flowAnalysis.equalityOperation_end(
+        equals,
+        equalityInfo,
+        inferrer.flowAnalysis
+            .equalityOperand_end(right, rightResult.inferredType),
         notEqual: isNot);
     return new ExpressionInferenceResult(
         equalsTarget.isNever
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 1e4d084..69e3778 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -2377,6 +2377,8 @@
       hoistingEndIndex = 0;
     }
 
+    List<EqualityInfo<VariableDeclaration, DartType>?>? identicalInfo =
+        isIdentical && arguments.positional.length == 2 ? [] : null;
     int positionalIndex = 0;
     int namedIndex = 0;
     for (int evaluationOrderIndex = 0;
@@ -2431,14 +2433,8 @@
           }
           Expression expression =
               _hoist(result.expression, inferredType, hoistedExpressions);
-          if (isIdentical && arguments.positional.length == 2) {
-            if (index == 0) {
-              flowAnalysis.equalityOp_rightBegin(expression, inferredType);
-            } else {
-              flowAnalysis.equalityOp_end(
-                  arguments.parent as Expression, expression, inferredType);
-            }
-          }
+          identicalInfo
+              ?.add(flowAnalysis.equalityOperand_end(expression, inferredType));
           arguments.positional[index] = expression..parent = arguments;
         }
         if (inferenceNeeded || typeChecksNeeded) {
@@ -2480,6 +2476,10 @@
         }
       }
     }
+    if (identicalInfo != null) {
+      flowAnalysis.equalityOperation_end(
+          arguments.parent as Expression, identicalInfo[0], identicalInfo[1]);
+    }
     assert(
         positionalIndex == arguments.positional.length,
         "Expected 'positionalIndex' to be ${arguments.positional.length}, "
diff --git a/pkg/nnbd_migration/lib/src/edge_builder.dart b/pkg/nnbd_migration/lib/src/edge_builder.dart
index bd8a144..013e482 100644
--- a/pkg/nnbd_migration/lib/src/edge_builder.dart
+++ b/pkg/nnbd_migration/lib/src/edge_builder.dart
@@ -522,12 +522,14 @@
     if (operatorType == TokenType.EQ_EQ || operatorType == TokenType.BANG_EQ) {
       var leftType = _dispatch(leftOperand)!;
       _graph.connectDummy(leftType.node, DummyOrigin(source, node));
-      _flowAnalysis!.equalityOp_rightBegin(leftOperand, leftType);
+      var equalityInfo =
+          _flowAnalysis!.equalityOperand_end(leftOperand, leftType);
       var rightType = _dispatch(rightOperand)!;
       _graph.connectDummy(rightType.node, DummyOrigin(source, node));
       bool notEqual = operatorType == TokenType.BANG_EQ;
-      _flowAnalysis!
-          .equalityOp_end(node, rightOperand, rightType, notEqual: notEqual);
+      _flowAnalysis!.equalityOperation_end(node, equalityInfo,
+          _flowAnalysis!.equalityOperand_end(rightOperand, rightType),
+          notEqual: notEqual);
 
       void buildNullConditionInfo(NullLiteral nullLiteral,
           Expression otherOperand, NullabilityNode? otherNode) {
diff --git a/runtime/tests/vm/dart/write_barrier_double_register_clobber_test.dart b/runtime/tests/vm/dart/write_barrier_double_register_clobber_test.dart
new file mode 100644
index 0000000..35810a8
--- /dev/null
+++ b/runtime/tests/vm/dart/write_barrier_double_register_clobber_test.dart
@@ -0,0 +1,81 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// This test attempts to verify that write barrier slow path does not
+// clobber any live values.
+
+import 'dart:_internal' show VMInternalsForTesting;
+
+import 'package:expect/expect.dart';
+
+class Old {
+  var f;
+  Old(this.f);
+}
+
+@pragma('vm:never-inline')
+double crashy(double v, List<Old> oldies) {
+  // This test attempts to create a lot of live values which would live across
+  // write barrier invocation so that when write-barrier calls runtime and
+  // clobbers a register this is detected.
+  var young = Object();
+  var len = oldies.length;
+  var i = 0;
+  var v00 = v + 0.0;
+  var v01 = v + 1.0;
+  var v02 = v + 2.0;
+  var v03 = v + 3.0;
+  var v04 = v + 4.0;
+  var v05 = v + 5.0;
+  var v06 = v + 6.0;
+  var v07 = v + 7.0;
+  var v08 = v + 8.0;
+  var v09 = v + 9.0;
+  var v10 = v + 10.0;
+  var v11 = v + 11.0;
+  var v12 = v + 12.0;
+  var v13 = v + 13.0;
+  var v14 = v + 14.0;
+  var v15 = v + 15.0;
+  var v16 = v + 16.0;
+  var v17 = v + 17.0;
+  var v18 = v + 18.0;
+  var v19 = v + 19.0;
+  while (i < len) {
+    // Eventually this will overflow store buffer and call runtime to acquire
+    // a new block.
+    oldies[i++].f = young;
+  }
+  return v00 +
+      v01 +
+      v02 +
+      v03 +
+      v04 +
+      v05 +
+      v06 +
+      v07 +
+      v08 +
+      v09 +
+      v10 +
+      v11 +
+      v12 +
+      v13 +
+      v14 +
+      v15 +
+      v16 +
+      v17 +
+      v18 +
+      v19;
+}
+
+void main(List<String> args) {
+  final init = args.contains('impossible') ? 1.0 : 0.0;
+  final oldies = List<Old>.generate(100000, (i) => Old(""));
+  VMInternalsForTesting.collectAllGarbage();
+  VMInternalsForTesting.collectAllGarbage();
+  Expect.equals(crashy(init, oldies), 190.0);
+  for (var o in oldies) {
+    Expect.isTrue(o.f is! String);
+  }
+}
diff --git a/runtime/tests/vm/dart/write_barrier_simd_register_clobber_test.dart b/runtime/tests/vm/dart/write_barrier_simd_register_clobber_test.dart
new file mode 100644
index 0000000..9891064
--- /dev/null
+++ b/runtime/tests/vm/dart/write_barrier_simd_register_clobber_test.dart
@@ -0,0 +1,85 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// This test attempts to verify that write barrier slow path does not
+// clobber any live values.
+
+import 'dart:_internal' show VMInternalsForTesting;
+import 'dart:typed_data';
+
+import 'package:expect/expect.dart';
+
+class Old {
+  var f;
+  Old(this.f);
+}
+
+@pragma('vm:never-inline')
+Float64x2 crashy(Float64x2 v, List<Old> oldies) {
+  // This test attempts to create a lot of live values which would live across
+  // write barrier invocation so that when write-barrier calls runtime and
+  // clobbers a register this is detected.
+  var young = Object();
+  var len = oldies.length;
+  var i = 0;
+  var v00 = v + Float64x2(0.0, 0.0);
+  var v01 = v + Float64x2(1.0, 1.0);
+  var v02 = v + Float64x2(2.0, 2.0);
+  var v03 = v + Float64x2(3.0, 3.0);
+  var v04 = v + Float64x2(4.0, 4.0);
+  var v05 = v + Float64x2(5.0, 5.0);
+  var v06 = v + Float64x2(6.0, 6.0);
+  var v07 = v + Float64x2(7.0, 7.0);
+  var v08 = v + Float64x2(8.0, 8.0);
+  var v09 = v + Float64x2(9.0, 9.0);
+  var v10 = v + Float64x2(10.0, 10.0);
+  var v11 = v + Float64x2(11.0, 11.0);
+  var v12 = v + Float64x2(12.0, 12.0);
+  var v13 = v + Float64x2(13.0, 13.0);
+  var v14 = v + Float64x2(14.0, 14.0);
+  var v15 = v + Float64x2(15.0, 15.0);
+  var v16 = v + Float64x2(16.0, 16.0);
+  var v17 = v + Float64x2(17.0, 17.0);
+  var v18 = v + Float64x2(18.0, 18.0);
+  var v19 = v + Float64x2(19.0, 19.0);
+  while (i < len) {
+    // Eventually this will overflow store buffer and call runtime to acquire
+    // a new block.
+    oldies[i++].f = young;
+  }
+  return v00 +
+      v01 +
+      v02 +
+      v03 +
+      v04 +
+      v05 +
+      v06 +
+      v07 +
+      v08 +
+      v09 +
+      v10 +
+      v11 +
+      v12 +
+      v13 +
+      v14 +
+      v15 +
+      v16 +
+      v17 +
+      v18 +
+      v19;
+}
+
+void main(List<String> args) {
+  final init =
+      args.contains('impossible') ? Float64x2(1.0, 1.0) : Float64x2(0.0, 0.0);
+  final oldies = List<Old>.generate(100000, (i) => Old(""));
+  VMInternalsForTesting.collectAllGarbage();
+  VMInternalsForTesting.collectAllGarbage();
+  var r = crashy(init, oldies);
+  Expect.equals(r.x, 190.0);
+  Expect.equals(r.y, 190.0);
+  for (var o in oldies) {
+    Expect.isTrue(o.f is! String);
+  }
+}
diff --git a/runtime/tests/vm/dart_2/write_barrier_double_register_clobber_test.dart b/runtime/tests/vm/dart_2/write_barrier_double_register_clobber_test.dart
new file mode 100644
index 0000000..0c5f68e
--- /dev/null
+++ b/runtime/tests/vm/dart_2/write_barrier_double_register_clobber_test.dart
@@ -0,0 +1,83 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart = 2.9
+
+// This test attempts to verify that write barrier slow path does not
+// clobber any live values.
+
+import 'dart:_internal' show VMInternalsForTesting;
+
+import 'package:expect/expect.dart';
+
+class Old {
+  var f;
+  Old(this.f);
+}
+
+@pragma('vm:never-inline')
+double crashy(double v, List<Old> oldies) {
+  // This test attempts to create a lot of live values which would live across
+  // write barrier invocation so that when write-barrier calls runtime and
+  // clobbers a register this is detected.
+  var young = Object();
+  var len = oldies.length;
+  var i = 0;
+  var v00 = v + 0.0;
+  var v01 = v + 1.0;
+  var v02 = v + 2.0;
+  var v03 = v + 3.0;
+  var v04 = v + 4.0;
+  var v05 = v + 5.0;
+  var v06 = v + 6.0;
+  var v07 = v + 7.0;
+  var v08 = v + 8.0;
+  var v09 = v + 9.0;
+  var v10 = v + 10.0;
+  var v11 = v + 11.0;
+  var v12 = v + 12.0;
+  var v13 = v + 13.0;
+  var v14 = v + 14.0;
+  var v15 = v + 15.0;
+  var v16 = v + 16.0;
+  var v17 = v + 17.0;
+  var v18 = v + 18.0;
+  var v19 = v + 19.0;
+  while (i < len) {
+    // Eventually this will overflow store buffer and call runtime to acquire
+    // a new block.
+    oldies[i++].f = young;
+  }
+  return v00 +
+      v01 +
+      v02 +
+      v03 +
+      v04 +
+      v05 +
+      v06 +
+      v07 +
+      v08 +
+      v09 +
+      v10 +
+      v11 +
+      v12 +
+      v13 +
+      v14 +
+      v15 +
+      v16 +
+      v17 +
+      v18 +
+      v19;
+}
+
+void main(List<String> args) {
+  final init = args.contains('impossible') ? 1.0 : 0.0;
+  final oldies = List<Old>.generate(100000, (i) => Old(""));
+  VMInternalsForTesting.collectAllGarbage();
+  VMInternalsForTesting.collectAllGarbage();
+  Expect.equals(crashy(init, oldies), 190.0);
+  for (var o in oldies) {
+    Expect.isTrue(o.f is! String);
+  }
+}
diff --git a/runtime/tests/vm/dart_2/write_barrier_simd_register_clobber_test.dart b/runtime/tests/vm/dart_2/write_barrier_simd_register_clobber_test.dart
new file mode 100644
index 0000000..a34eb75
--- /dev/null
+++ b/runtime/tests/vm/dart_2/write_barrier_simd_register_clobber_test.dart
@@ -0,0 +1,87 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart = 2.9
+
+// This test attempts to verify that write barrier slow path does not
+// clobber any live values.
+
+import 'dart:_internal' show VMInternalsForTesting;
+import 'dart:typed_data';
+
+import 'package:expect/expect.dart';
+
+class Old {
+  var f;
+  Old(this.f);
+}
+
+@pragma('vm:never-inline')
+Float64x2 crashy(Float64x2 v, List<Old> oldies) {
+  // This test attempts to create a lot of live values which would live across
+  // write barrier invocation so that when write-barrier calls runtime and
+  // clobbers a register this is detected.
+  var young = Object();
+  var len = oldies.length;
+  var i = 0;
+  var v00 = v + Float64x2(0.0, 0.0);
+  var v01 = v + Float64x2(1.0, 1.0);
+  var v02 = v + Float64x2(2.0, 2.0);
+  var v03 = v + Float64x2(3.0, 3.0);
+  var v04 = v + Float64x2(4.0, 4.0);
+  var v05 = v + Float64x2(5.0, 5.0);
+  var v06 = v + Float64x2(6.0, 6.0);
+  var v07 = v + Float64x2(7.0, 7.0);
+  var v08 = v + Float64x2(8.0, 8.0);
+  var v09 = v + Float64x2(9.0, 9.0);
+  var v10 = v + Float64x2(10.0, 10.0);
+  var v11 = v + Float64x2(11.0, 11.0);
+  var v12 = v + Float64x2(12.0, 12.0);
+  var v13 = v + Float64x2(13.0, 13.0);
+  var v14 = v + Float64x2(14.0, 14.0);
+  var v15 = v + Float64x2(15.0, 15.0);
+  var v16 = v + Float64x2(16.0, 16.0);
+  var v17 = v + Float64x2(17.0, 17.0);
+  var v18 = v + Float64x2(18.0, 18.0);
+  var v19 = v + Float64x2(19.0, 19.0);
+  while (i < len) {
+    // Eventually this will overflow store buffer and call runtime to acquire
+    // a new block.
+    oldies[i++].f = young;
+  }
+  return v00 +
+      v01 +
+      v02 +
+      v03 +
+      v04 +
+      v05 +
+      v06 +
+      v07 +
+      v08 +
+      v09 +
+      v10 +
+      v11 +
+      v12 +
+      v13 +
+      v14 +
+      v15 +
+      v16 +
+      v17 +
+      v18 +
+      v19;
+}
+
+void main(List<String> args) {
+  final init =
+      args.contains('impossible') ? Float64x2(1.0, 1.0) : Float64x2(0.0, 0.0);
+  final oldies = List<Old>.generate(100000, (i) => Old(""));
+  VMInternalsForTesting.collectAllGarbage();
+  VMInternalsForTesting.collectAllGarbage();
+  var r = crashy(init, oldies);
+  Expect.equals(r.x, 190.0);
+  Expect.equals(r.y, 190.0);
+  for (var o in oldies) {
+    Expect.isTrue(o.f is! String);
+  }
+}
diff --git a/runtime/vm/compiler/assembler/assembler_arm.cc b/runtime/vm/compiler/assembler/assembler_arm.cc
index 61bdd45..cab9a8e 100644
--- a/runtime/vm/compiler/assembler/assembler_arm.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm.cc
@@ -12,6 +12,7 @@
 #include "vm/compiler/backend/locations.h"
 #include "vm/cpu.h"
 #include "vm/instructions.h"
+#include "vm/tags.h"
 
 // An extra check since we are assuming the existence of /proc/cpuinfo below.
 #if !defined(USING_SIMULATOR) && !defined(__linux__) && !defined(ANDROID) &&   \
@@ -2727,11 +2728,6 @@
   BranchLink(target, ObjectPoolBuilderEntry::kPatchable, entry_kind);
 }
 
-void Assembler::BranchLinkToRuntime() {
-  ldr(IP, Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
-  blx(IP);
-}
-
 void Assembler::BranchLinkWithEquivalence(const Code& target,
                                           const Object& equivalence,
                                           CodeEntryKind entry_kind) {
@@ -3269,63 +3265,104 @@
 #endif
 }
 
-void Assembler::EnterCallRuntimeFrame(intptr_t frame_space) {
-  Comment("EnterCallRuntimeFrame");
-  // Preserve volatile CPU registers and PP.
-  SPILLS_LR_TO_FRAME(
-      EnterFrame(kDartVolatileCpuRegs | (1 << PP) | (1 << FP) | (1 << LR), 0));
-  COMPILE_ASSERT((kDartVolatileCpuRegs & (1 << PP)) == 0);
-
-  // Preserve all volatile FPU registers.
-    DRegister firstv = EvenDRegisterOf(kDartFirstVolatileFpuReg);
-    DRegister lastv = OddDRegisterOf(kDartLastVolatileFpuReg);
-    if ((lastv - firstv + 1) >= 16) {
-      DRegister mid = static_cast<DRegister>(firstv + 16);
-      vstmd(DB_W, SP, mid, lastv - mid + 1);
-      vstmd(DB_W, SP, firstv, 16);
-    } else {
-      vstmd(DB_W, SP, firstv, lastv - firstv + 1);
-    }
-
-  ReserveAlignedFrameSpace(frame_space);
-}
-
-void Assembler::LeaveCallRuntimeFrame() {
-  // SP might have been modified to reserve space for arguments
-  // and ensure proper alignment of the stack frame.
-  // We need to restore it before restoring registers.
-  const intptr_t kPushedFpuRegisterSize =
-      kDartVolatileFpuRegCount * kFpuRegisterSize;
-
-  COMPILE_ASSERT(PP < FP);
-  COMPILE_ASSERT((kDartVolatileCpuRegs & (1 << PP)) == 0);
-  // kVolatileCpuRegCount +1 for PP, -1 because even though LR is volatile,
-  // it is pushed ahead of FP.
-  const intptr_t kPushedRegistersSize =
-      kDartVolatileCpuRegCount * target::kWordSize + kPushedFpuRegisterSize;
-  AddImmediate(SP, FP, -kPushedRegistersSize);
-
-  // Restore all volatile FPU registers.
-    DRegister firstv = EvenDRegisterOf(kDartFirstVolatileFpuReg);
-    DRegister lastv = OddDRegisterOf(kDartLastVolatileFpuReg);
-    if ((lastv - firstv + 1) >= 16) {
-      DRegister mid = static_cast<DRegister>(firstv + 16);
-      vldmd(IA_W, SP, firstv, 16);
-      vldmd(IA_W, SP, mid, lastv - mid + 1);
-    } else {
-      vldmd(IA_W, SP, firstv, lastv - firstv + 1);
-    }
-
-  // Restore volatile CPU registers.
-  RESTORES_LR_FROM_FRAME(
-      LeaveFrame(kDartVolatileCpuRegs | (1 << PP) | (1 << FP) | (1 << LR)));
-}
-
 void Assembler::CallRuntime(const RuntimeEntry& entry,
                             intptr_t argument_count) {
-  entry.Call(this, argument_count);
+  ASSERT(!entry.is_leaf());
+  // Argument count is not checked here, but in the runtime entry for a more
+  // informative error message.
+  LoadFromOffset(R9, THR, entry.OffsetFromThread());
+  LoadImmediate(R4, argument_count);
+  ldr(IP, Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
+  blx(IP);
 }
 
+// For use by LR related macros (e.g. CLOBBERS_LR).
+#undef __
+#define __ assembler_->
+
+LeafRuntimeScope::LeafRuntimeScope(Assembler* assembler,
+                                   intptr_t frame_size,
+                                   bool preserve_registers)
+    : assembler_(assembler), preserve_registers_(preserve_registers) {
+  __ Comment("EnterCallRuntimeFrame");
+  if (preserve_registers) {
+    // Preserve volatile CPU registers and PP.
+    SPILLS_LR_TO_FRAME(__ EnterFrame(
+        kDartVolatileCpuRegs | (1 << PP) | (1 << FP) | (1 << LR), 0));
+    COMPILE_ASSERT((kDartVolatileCpuRegs & (1 << PP)) == 0);
+
+    // Preserve all volatile FPU registers.
+    DRegister firstv = EvenDRegisterOf(kDartFirstVolatileFpuReg);
+    DRegister lastv = OddDRegisterOf(kDartLastVolatileFpuReg);
+    if ((lastv - firstv + 1) >= 16) {
+      DRegister mid = static_cast<DRegister>(firstv + 16);
+      __ vstmd(DB_W, SP, mid, lastv - mid + 1);
+      __ vstmd(DB_W, SP, firstv, 16);
+    } else {
+      __ vstmd(DB_W, SP, firstv, lastv - firstv + 1);
+    }
+  } else {
+    SPILLS_LR_TO_FRAME(__ EnterFrame((1 << FP) | (1 << LR), 0));
+    // These registers must always be preserved.
+    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
+    COMPILE_ASSERT(IsCalleeSavedRegister(PP));
+    COMPILE_ASSERT(IsCalleeSavedRegister(CODE_REG));
+  }
+
+  __ ReserveAlignedFrameSpace(frame_size);
+}
+
+void LeafRuntimeScope::Call(const RuntimeEntry& entry,
+                            intptr_t argument_count) {
+  ASSERT(argument_count == entry.argument_count());
+  __ LoadFromOffset(TMP, THR, entry.OffsetFromThread());
+  __ str(TMP,
+         compiler::Address(THR, compiler::target::Thread::vm_tag_offset()));
+  __ blx(TMP);
+  __ LoadImmediate(TMP, VMTag::kDartTagId);
+  __ str(TMP,
+         compiler::Address(THR, compiler::target::Thread::vm_tag_offset()));
+}
+
+LeafRuntimeScope::~LeafRuntimeScope() {
+  if (preserve_registers_) {
+    // SP might have been modified to reserve space for arguments
+    // and ensure proper alignment of the stack frame.
+    // We need to restore it before restoring registers.
+    const intptr_t kPushedFpuRegisterSize =
+        kDartVolatileFpuRegCount * kFpuRegisterSize;
+
+    COMPILE_ASSERT(PP < FP);
+    COMPILE_ASSERT((kDartVolatileCpuRegs & (1 << PP)) == 0);
+    // kVolatileCpuRegCount +1 for PP, -1 because even though LR is volatile,
+    // it is pushed ahead of FP.
+    const intptr_t kPushedRegistersSize =
+        kDartVolatileCpuRegCount * target::kWordSize + kPushedFpuRegisterSize;
+    __ AddImmediate(SP, FP, -kPushedRegistersSize);
+
+    // Restore all volatile FPU registers.
+    DRegister firstv = EvenDRegisterOf(kDartFirstVolatileFpuReg);
+    DRegister lastv = OddDRegisterOf(kDartLastVolatileFpuReg);
+    if ((lastv - firstv + 1) >= 16) {
+      DRegister mid = static_cast<DRegister>(firstv + 16);
+      __ vldmd(IA_W, SP, firstv, 16);
+      __ vldmd(IA_W, SP, mid, lastv - mid + 1);
+    } else {
+      __ vldmd(IA_W, SP, firstv, lastv - firstv + 1);
+    }
+
+    // Restore volatile CPU registers.
+    RESTORES_LR_FROM_FRAME(__ LeaveFrame(kDartVolatileCpuRegs | (1 << PP) |
+                                         (1 << FP) | (1 << LR)));
+  } else {
+    RESTORES_LR_FROM_FRAME(__ LeaveFrame((1 << FP) | (1 << LR)));
+  }
+}
+
+// For use by LR related macros (e.g. CLOBBERS_LR).
+#undef __
+#define __ this->
+
 void Assembler::EnterDartFrame(intptr_t frame_size, bool load_pool_pointer) {
   ASSERT(!constant_pool_allowed());
 
diff --git a/runtime/vm/compiler/assembler/assembler_arm.h b/runtime/vm/compiler/assembler/assembler_arm.h
index 78bb68e..877820a 100644
--- a/runtime/vm/compiler/assembler/assembler_arm.h
+++ b/runtime/vm/compiler/assembler/assembler_arm.h
@@ -776,7 +776,6 @@
                   ObjectPoolBuilderEntry::Patchability patchable =
                       ObjectPoolBuilderEntry::kNotPatchable,
                   CodeEntryKind entry_kind = CodeEntryKind::kNormal);
-  void BranchLinkToRuntime();
 
   // Branch and link to an entry address. Call sequence can be patched.
   void BranchLinkPatchable(const Code& code,
@@ -1259,12 +1258,7 @@
   // Requires a scratch register in addition to the assembler temporary.
   void EmitEntryFrameVerification(Register scratch);
 
-  // Create a frame for calling into runtime that preserves all volatile
-  // registers.  Frame's SP is guaranteed to be correctly aligned and
-  // frame_space bytes are reserved under it.
-  void EnterCallRuntimeFrame(intptr_t frame_space);
-  void LeaveCallRuntimeFrame();
-
+  // For non-leaf runtime calls. For leaf runtime calls, use LeafRuntimeScope,
   void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count);
 
   // Set up a Dart frame on entry with a frame pointer and PC information to
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.cc b/runtime/vm/compiler/assembler/assembler_arm64.cc
index 0f08859..580bd40 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64.cc
@@ -12,6 +12,7 @@
 #include "vm/cpu.h"
 #include "vm/instructions.h"
 #include "vm/simulator.h"
+#include "vm/tags.h"
 
 namespace dart {
 
@@ -255,17 +256,15 @@
 
 #if defined(USING_THREAD_SANITIZER)
 void Assembler::TsanLoadAcquire(Register addr) {
-  EnterCallRuntimeFrame(/*frame_size=*/0, /*is_leaf=*/true);
-  ASSERT(kTsanLoadAcquireRuntimeEntry.is_leaf());
-  CallRuntime(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
-  LeaveCallRuntimeFrame(/*is_leaf=*/true);
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+  MoveRegister(R0, addr);
+  rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
 }
 
 void Assembler::TsanStoreRelease(Register addr) {
-  EnterCallRuntimeFrame(/*frame_size=*/0, /*is_leaf=*/true);
-  ASSERT(kTsanStoreReleaseRuntimeEntry.is_leaf());
-  CallRuntime(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
-  LeaveCallRuntimeFrame(/*is_leaf=*/true);
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+  MoveRegister(R0, addr);
+  rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
 }
 #endif
 
@@ -706,10 +705,6 @@
   Call(FieldAddress(CODE_REG, target::Code::entry_point_offset(entry_kind)));
 }
 
-void Assembler::BranchLinkToRuntime() {
-  Call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
-}
-
 void Assembler::BranchLinkWithEquivalence(const Code& target,
                                           const Object& equivalence,
                                           CodeEntryKind entry_kind) {
@@ -1820,110 +1815,83 @@
   StoreToOffset(state, THR, target::Thread::exit_through_ffi_offset());
 }
 
-void Assembler::EnterCallRuntimeFrame(intptr_t frame_size, bool is_leaf) {
-  Comment("EnterCallRuntimeFrame");
-  EnterFrame(0);
-  if (!FLAG_precompiled_mode) {
-    TagAndPushPPAndPcMarker();  // Save PP and PC marker.
-  }
-
-  // Store fpu registers with the lowest register number at the lowest
-  // address.
-  for (int i = kNumberOfVRegisters - 1; i >= 0; i--) {
-    if ((i >= kAbiFirstPreservedFpuReg) && (i <= kAbiLastPreservedFpuReg)) {
-      // TODO(zra): When SIMD is added, we must also preserve the top
-      // 64-bits of the callee-saved registers.
-      continue;
-    }
-    // TODO(zra): Save the whole V register.
-    VRegister reg = static_cast<VRegister>(i);
-    PushDouble(reg);
-  }
-
-  for (int i = kDartFirstVolatileCpuReg; i <= kDartLastVolatileCpuReg; i++) {
-    const Register reg = static_cast<Register>(i);
-    Push(reg);
-  }
-
-  if (!is_leaf) {  // Leaf calling sequence aligns the stack itself.
-    ReserveAlignedFrameSpace(frame_size);
-  } else {
-    PushPair(kCallLeafRuntimeCalleeSaveScratch1,
-             kCallLeafRuntimeCalleeSaveScratch2);
-  }
-}
-
-void Assembler::LeaveCallRuntimeFrame(bool is_leaf) {
-  // SP might have been modified to reserve space for arguments
-  // and ensure proper alignment of the stack frame.
-  // We need to restore it before restoring registers.
-  const intptr_t fixed_frame_words_without_pc_and_fp =
-      target::frame_layout.dart_fixed_frame_size - 2;
-  const intptr_t kPushedRegistersSize =
-      kDartVolatileFpuRegCount * sizeof(double) +
-      (kDartVolatileCpuRegCount + (is_leaf ? 2 : 0) +
-       fixed_frame_words_without_pc_and_fp) *
-          target::kWordSize;
-  AddImmediate(SP, FP, -kPushedRegistersSize);
-  if (is_leaf) {
-    PopPair(kCallLeafRuntimeCalleeSaveScratch1,
-            kCallLeafRuntimeCalleeSaveScratch2);
-  }
-  for (int i = kDartLastVolatileCpuReg; i >= kDartFirstVolatileCpuReg; i--) {
-    const Register reg = static_cast<Register>(i);
-    Pop(reg);
-  }
-
-  for (int i = 0; i < kNumberOfVRegisters; i++) {
-    if ((i >= kAbiFirstPreservedFpuReg) && (i <= kAbiLastPreservedFpuReg)) {
-      // TODO(zra): When SIMD is added, we must also restore the top
-      // 64-bits of the callee-saved registers.
-      continue;
-    }
-    // TODO(zra): Restore the whole V register.
-    VRegister reg = static_cast<VRegister>(i);
-    PopDouble(reg);
-  }
-
-  LeaveStubFrame();
-}
-
 void Assembler::CallRuntime(const RuntimeEntry& entry,
                             intptr_t argument_count) {
-  entry.Call(this, argument_count);
+  ASSERT(!entry.is_leaf());
+  // Argument count is not checked here, but in the runtime entry for a more
+  // informative error message.
+  ldr(R5, compiler::Address(THR, entry.OffsetFromThread()));
+  LoadImmediate(R4, argument_count);
+  Call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
 }
 
-void Assembler::CallRuntimeScope::Call(intptr_t argument_count) {
-  assembler_->CallRuntime(entry_, argument_count);
-}
+// FPU: Only the bottom 64-bits of v8-v15 are preserved by the caller. The upper
+// bits might be in use by Dart, so we save the whole register.
+static const RegisterSet kRuntimeCallSavedRegisters(kDartVolatileCpuRegs,
+                                                    kAllFpuRegistersList);
 
-Assembler::CallRuntimeScope::~CallRuntimeScope() {
-  if (preserve_registers_) {
-    assembler_->LeaveCallRuntimeFrame(entry_.is_leaf());
-    if (restore_code_reg_) {
-      assembler_->Pop(CODE_REG);
-    }
+#undef __
+#define __ assembler_->
+
+LeafRuntimeScope::LeafRuntimeScope(Assembler* assembler,
+                                   intptr_t frame_size,
+                                   bool preserve_registers)
+    : assembler_(assembler), preserve_registers_(preserve_registers) {
+  __ Comment("EnterCallRuntimeFrame");
+  __ EnterFrame(0);
+
+  if (preserve_registers) {
+    __ PushRegisters(kRuntimeCallSavedRegisters);
+  } else {
+    // These registers must always be preserved.
+    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
+    COMPILE_ASSERT(IsCalleeSavedRegister(PP));
+    COMPILE_ASSERT(IsCalleeSavedRegister(CODE_REG));
+    COMPILE_ASSERT(IsCalleeSavedRegister(NULL_REG));
+    COMPILE_ASSERT(IsCalleeSavedRegister(HEAP_BITS));
+    COMPILE_ASSERT(IsCalleeSavedRegister(DISPATCH_TABLE_REG));
   }
+
+  __ ReserveAlignedFrameSpace(frame_size);
 }
 
-Assembler::CallRuntimeScope::CallRuntimeScope(Assembler* assembler,
-                                              const RuntimeEntry& entry,
-                                              intptr_t frame_size,
-                                              bool preserve_registers,
-                                              const Address* caller)
-    : assembler_(assembler),
-      entry_(entry),
-      preserve_registers_(preserve_registers),
-      restore_code_reg_(caller != nullptr) {
-  if (preserve_registers_) {
-    if (caller != nullptr) {
-      assembler_->Push(CODE_REG);
-      assembler_->ldr(CODE_REG, *caller);
-    }
-    assembler_->EnterCallRuntimeFrame(frame_size, entry.is_leaf());
-  }
+void LeafRuntimeScope::Call(const RuntimeEntry& entry,
+                            intptr_t argument_count) {
+  ASSERT(argument_count == entry.argument_count());
+  // Since we are entering C++ code, we must restore the C stack pointer from
+  // the stack limit to an aligned value nearer to the top of the stack.
+  // We cache the stack limit in callee-saved registers, then align and call,
+  // restoring CSP and SP on return from the call.
+  // This sequence may occur in an intrinsic, so don't use registers an
+  // intrinsic must preserve.
+  __ mov(CSP, SP);
+  __ ldr(TMP, compiler::Address(THR, entry.OffsetFromThread()));
+  __ str(TMP, compiler::Address(THR, target::Thread::vm_tag_offset()));
+  __ blr(TMP);
+  __ LoadImmediate(TMP, VMTag::kDartTagId);
+  __ str(TMP, compiler::Address(THR, target::Thread::vm_tag_offset()));
+  __ SetupCSPFromThread(THR);
 }
 
+LeafRuntimeScope::~LeafRuntimeScope() {
+  if (preserve_registers_) {
+    // SP might have been modified to reserve space for arguments
+    // and ensure proper alignment of the stack frame.
+    // We need to restore it before restoring registers.
+    const intptr_t kPushedRegistersSize =
+        kRuntimeCallSavedRegisters.CpuRegisterCount() * target::kWordSize +
+        kRuntimeCallSavedRegisters.FpuRegisterCount() * kFpuRegisterSize;
+    __ AddImmediate(SP, FP, -kPushedRegistersSize);
+    __ PopRegisters(kRuntimeCallSavedRegisters);
+  }
+
+  __ LeaveFrame();
+}
+
+// For use by LR related macros (e.g. CLOBBERS_LR).
+#undef __
+#define __ this->
+
 void Assembler::EnterStubFrame() {
   EnterDartFrame(0);
 }
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.h b/runtime/vm/compiler/assembler/assembler_arm64.h
index 812ff3f..b5ed07b 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.h
+++ b/runtime/vm/compiler/assembler/assembler_arm64.h
@@ -1752,7 +1752,6 @@
                            CodeEntryKind entry_kind = CodeEntryKind::kNormal) {
     BranchLink(code, ObjectPoolBuilderEntry::kPatchable, entry_kind);
   }
-  void BranchLinkToRuntime();
 
   // Emit a call that shares its object pool entries with other calls
   // that have the same equivalence marker.
@@ -2101,51 +2100,9 @@
   void EnterOsrFrame(intptr_t extra_size, Register new_pp = kNoRegister);
   void LeaveDartFrame(RestorePP restore_pp = kRestoreCallerPP);
 
+  // For non-leaf runtime calls. For leaf runtime calls, use LeafRuntimeScope,
   void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count);
 
-  // Helper method for performing runtime calls from callers requiring manual
-  // register preservation is required (e.g. outside IL instructions marked
-  // as calling).
-  class CallRuntimeScope : public ValueObject {
-   public:
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     bool preserve_registers = true)
-        : CallRuntimeScope(assembler,
-                           entry,
-                           frame_size,
-                           preserve_registers,
-                           /*caller=*/nullptr) {}
-
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     Address caller,
-                     bool preserve_registers = true)
-        : CallRuntimeScope(assembler,
-                           entry,
-                           frame_size,
-                           preserve_registers,
-                           &caller) {}
-
-    void Call(intptr_t argument_count);
-
-    ~CallRuntimeScope();
-
-   private:
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     bool preserve_registers,
-                     const Address* caller);
-
-    Assembler* const assembler_;
-    const RuntimeEntry& entry_;
-    const bool preserve_registers_;
-    const bool restore_code_reg_;
-  };
-
   // Set up a stub frame so that the stack traversal code can easily identify
   // a stub frame.
   void EnterStubFrame();
@@ -2956,11 +2913,6 @@
                              CanBeSmi can_be_smi,
                              BarrierFilterMode barrier_filter_mode);
 
-  // Note: leaf call sequence uses some abi callee save registers as scratch
-  // so they should be manually preserved.
-  void EnterCallRuntimeFrame(intptr_t frame_size, bool is_leaf);
-  void LeaveCallRuntimeFrame(bool is_leaf);
-
   friend class dart::FlowGraphCompiler;
   std::function<void(Register reg)> generate_invoke_write_barrier_wrapper_;
   std::function<void()> generate_invoke_array_write_barrier_;
diff --git a/runtime/vm/compiler/assembler/assembler_base.h b/runtime/vm/compiler/assembler/assembler_base.h
index 85259a3..7faf6fd 100644
--- a/runtime/vm/compiler/assembler/assembler_base.h
+++ b/runtime/vm/compiler/assembler/assembler_base.h
@@ -866,6 +866,35 @@
   ObjectPoolBuilder* object_pool_builder_;
 };
 
+// For leaf runtime calls. For non-leaf runtime calls, use
+// Assembler::CallRuntime.
+class LeafRuntimeScope : public ValueObject {
+ public:
+  // Enters a frame, saves registers, and aligns the stack according to the C
+  // ABI.
+  //
+  // If [preserve_registers] is false, only registers normally preserved at a
+  // Dart call will be preserved (SP, FP, THR, PP, CODE_REG, RA). Suitable for
+  // use in IL instructions marked with LocationSummary::kCall.
+  // If [preserve registers] is true, all registers allocatable by Dart (roughly
+  // everything but TMP, TMP2) will be preserved. Suitable for non-call IL
+  // instructions like the write barrier.
+  LeafRuntimeScope(Assembler* assembler,
+                   intptr_t frame_size,
+                   bool preserve_registers);
+
+  // Restores registers and leaves the frame.
+  ~LeafRuntimeScope();
+
+  // Sets the current tag, calls the runtime function, and restores the current
+  // tag.
+  void Call(const RuntimeEntry& entry, intptr_t argument_count);
+
+ private:
+  Assembler* const assembler_;
+  const bool preserve_registers_;
+};
+
 }  // namespace compiler
 
 }  // namespace dart
diff --git a/runtime/vm/compiler/assembler/assembler_ia32.cc b/runtime/vm/compiler/assembler/assembler_ia32.cc
index 69c197c..a6d5523 100644
--- a/runtime/vm/compiler/assembler/assembler_ia32.cc
+++ b/runtime/vm/compiler/assembler/assembler_ia32.cc
@@ -11,6 +11,7 @@
 #include "vm/compiler/assembler/assembler.h"
 #include "vm/cpu.h"
 #include "vm/instructions.h"
+#include "vm/tags.h"
 
 namespace dart {
 
@@ -2446,59 +2447,86 @@
 // save it.
 static const intptr_t kNumberOfVolatileXmmRegisters = kNumberOfXmmRegisters - 1;
 
-void Assembler::EnterCallRuntimeFrame(intptr_t frame_space) {
-  Comment("EnterCallRuntimeFrame");
-  EnterFrame(0);
-
-  // Preserve volatile CPU registers.
-  for (intptr_t i = 0; i < kNumberOfVolatileCpuRegisters; i++) {
-    pushl(volatile_cpu_registers[i]);
-  }
-
-  // Preserve all XMM registers except XMM0
-  subl(ESP, Immediate((kNumberOfXmmRegisters - 1) * kFpuRegisterSize));
-  // Store XMM registers with the lowest register number at the lowest
-  // address.
-  intptr_t offset = 0;
-  for (intptr_t reg_idx = 1; reg_idx < kNumberOfXmmRegisters; ++reg_idx) {
-    XmmRegister xmm_reg = static_cast<XmmRegister>(reg_idx);
-    movups(Address(ESP, offset), xmm_reg);
-    offset += kFpuRegisterSize;
-  }
-
-  ReserveAlignedFrameSpace(frame_space);
-}
-
-void Assembler::LeaveCallRuntimeFrame() {
-  // ESP might have been modified to reserve space for arguments
-  // and ensure proper alignment of the stack frame.
-  // We need to restore it before restoring registers.
-  const intptr_t kPushedRegistersSize =
-      kNumberOfVolatileCpuRegisters * target::kWordSize +
-      kNumberOfVolatileXmmRegisters * kFpuRegisterSize;
-  leal(ESP, Address(EBP, -kPushedRegistersSize));
-
-  // Restore all XMM registers except XMM0
-  // XMM registers have the lowest register number at the lowest address.
-  intptr_t offset = 0;
-  for (intptr_t reg_idx = 1; reg_idx < kNumberOfXmmRegisters; ++reg_idx) {
-    XmmRegister xmm_reg = static_cast<XmmRegister>(reg_idx);
-    movups(xmm_reg, Address(ESP, offset));
-    offset += kFpuRegisterSize;
-  }
-  addl(ESP, Immediate(offset));
-
-  // Restore volatile CPU registers.
-  for (intptr_t i = kNumberOfVolatileCpuRegisters - 1; i >= 0; i--) {
-    popl(volatile_cpu_registers[i]);
-  }
-
-  leave();
-}
-
 void Assembler::CallRuntime(const RuntimeEntry& entry,
                             intptr_t argument_count) {
-  entry.Call(this, argument_count);
+  ASSERT(!entry.is_leaf());
+  // Argument count is not checked here, but in the runtime entry for a more
+  // informative error message.
+  movl(ECX, compiler::Address(THR, entry.OffsetFromThread()));
+  movl(EDX, compiler::Immediate(argument_count));
+  call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
+}
+
+#define __ assembler_->
+
+LeafRuntimeScope::LeafRuntimeScope(Assembler* assembler,
+                                   intptr_t frame_size,
+                                   bool preserve_registers)
+    : assembler_(assembler), preserve_registers_(preserve_registers) {
+  __ Comment("EnterCallRuntimeFrame");
+  __ EnterFrame(0);
+
+  if (preserve_registers_) {
+    // Preserve volatile CPU registers.
+    for (intptr_t i = 0; i < kNumberOfVolatileCpuRegisters; i++) {
+      __ pushl(volatile_cpu_registers[i]);
+    }
+
+    // Preserve all XMM registers except XMM0
+    __ subl(ESP, Immediate((kNumberOfXmmRegisters - 1) * kFpuRegisterSize));
+    // Store XMM registers with the lowest register number at the lowest
+    // address.
+    intptr_t offset = 0;
+    for (intptr_t reg_idx = 1; reg_idx < kNumberOfXmmRegisters; ++reg_idx) {
+      XmmRegister xmm_reg = static_cast<XmmRegister>(reg_idx);
+      __ movups(Address(ESP, offset), xmm_reg);
+      offset += kFpuRegisterSize;
+    }
+  } else {
+    // These registers must always be preserved.
+    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
+  }
+
+  __ ReserveAlignedFrameSpace(frame_size);
+}
+
+void LeafRuntimeScope::Call(const RuntimeEntry& entry,
+                            intptr_t argument_count) {
+  ASSERT(argument_count == entry.argument_count());
+  __ movl(EAX, compiler::Address(THR, entry.OffsetFromThread()));
+  __ movl(compiler::Assembler::VMTagAddress(), EAX);
+  __ call(EAX);
+  __ movl(compiler::Assembler::VMTagAddress(),
+          compiler::Immediate(VMTag::kDartTagId));
+}
+
+LeafRuntimeScope::~LeafRuntimeScope() {
+  if (preserve_registers_) {
+    // ESP might have been modified to reserve space for arguments
+    // and ensure proper alignment of the stack frame.
+    // We need to restore it before restoring registers.
+    const intptr_t kPushedRegistersSize =
+        kNumberOfVolatileCpuRegisters * target::kWordSize +
+        kNumberOfVolatileXmmRegisters * kFpuRegisterSize;
+    __ leal(ESP, Address(EBP, -kPushedRegistersSize));
+
+    // Restore all XMM registers except XMM0
+    // XMM registers have the lowest register number at the lowest address.
+    intptr_t offset = 0;
+    for (intptr_t reg_idx = 1; reg_idx < kNumberOfXmmRegisters; ++reg_idx) {
+      XmmRegister xmm_reg = static_cast<XmmRegister>(reg_idx);
+      __ movups(xmm_reg, Address(ESP, offset));
+      offset += kFpuRegisterSize;
+    }
+    __ addl(ESP, Immediate(offset));
+
+    // Restore volatile CPU registers.
+    for (intptr_t i = kNumberOfVolatileCpuRegisters - 1; i >= 0; i--) {
+      __ popl(volatile_cpu_registers[i]);
+    }
+  }
+
+  __ leave();
 }
 
 void Assembler::Call(const Code& target,
@@ -2517,10 +2545,6 @@
       kHeapObjectTag));
 }
 
-void Assembler::CallToRuntime() {
-  call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
-}
-
 void Assembler::Jmp(const Code& target) {
   const ExternalLabel label(target::Code::EntryPointOf(target));
   jmp(&label);
diff --git a/runtime/vm/compiler/assembler/assembler_ia32.h b/runtime/vm/compiler/assembler/assembler_ia32.h
index 69207d5..f059fb2 100644
--- a/runtime/vm/compiler/assembler/assembler_ia32.h
+++ b/runtime/vm/compiler/assembler/assembler_ia32.h
@@ -825,18 +825,12 @@
   void EnterFullSafepoint(Register scratch);
   void ExitFullSafepoint(Register scratch, bool ignore_unwind_in_progress);
 
-  // Create a frame for calling into runtime that preserves all volatile
-  // registers.  Frame's RSP is guaranteed to be correctly aligned and
-  // frame_space bytes are reserved under it.
-  void EnterCallRuntimeFrame(intptr_t frame_space);
-  void LeaveCallRuntimeFrame();
-
+  // For non-leaf runtime calls. For leaf runtime calls, use LeafRuntimeScope,
   void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count);
 
   void Call(const Code& code,
             bool movable_target = false,
             CodeEntryKind entry_kind = CodeEntryKind::kNormal);
-  void CallToRuntime();
   // Will not clobber any registers and can therefore be called with 5 live
   // registers.
   void CallVmStub(const Code& code);
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.cc b/runtime/vm/compiler/assembler/assembler_riscv.cc
index 7ff6002..04e3b77 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.cc
+++ b/runtime/vm/compiler/assembler/assembler_riscv.cc
@@ -12,6 +12,7 @@
 #include "vm/cpu.h"
 #include "vm/instructions.h"
 #include "vm/simulator.h"
+#include "vm/tags.h"
 
 namespace dart {
 
@@ -2323,10 +2324,14 @@
 
 #if defined(USING_THREAD_SANITIZER)
 void Assembler::TsanLoadAcquire(Register addr) {
-  UNIMPLEMENTED();
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+  MoveRegister(A0, addr);
+  rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
 }
 void Assembler::TsanStoreRelease(Register addr) {
-  UNIMPLEMENTED();
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+  MoveRegister(A0, addr);
+  rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
 }
 #endif
 
@@ -2674,10 +2679,6 @@
   Call(FieldAddress(CODE_REG, target::Code::entry_point_offset(entry_kind)));
 }
 
-void Assembler::JumpAndLinkToRuntime() {
-  Call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
-}
-
 void Assembler::JumpAndLinkWithEquivalence(const Code& target,
                                            const Object& equivalence,
                                            CodeEntryKind entry_kind) {
@@ -3721,9 +3722,80 @@
 
 void Assembler::CallRuntime(const RuntimeEntry& entry,
                             intptr_t argument_count) {
-  entry.Call(this, argument_count);
+  ASSERT(!entry.is_leaf());
+  // Argument count is not checked here, but in the runtime entry for a more
+  // informative error message.
+  lx(T5, compiler::Address(THR, entry.OffsetFromThread()));
+  li(T4, argument_count);
+  Call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
 }
 
+static const RegisterSet kRuntimeCallSavedRegisters(kDartVolatileCpuRegs,
+                                                    kAbiVolatileFpuRegs);
+
+#define __ assembler_->
+
+LeafRuntimeScope::LeafRuntimeScope(Assembler* assembler,
+                                   intptr_t frame_size,
+                                   bool preserve_registers)
+    : assembler_(assembler), preserve_registers_(preserve_registers) {
+  // N.B. The ordering here is important. We must never write beyond SP or
+  // it can be clobbered by a signal handler.
+  __ subi(SP, SP, 4 * target::kWordSize);
+  __ sx(RA, Address(SP, 3 * target::kWordSize));
+  __ sx(FP, Address(SP, 2 * target::kWordSize));
+  __ sx(CODE_REG, Address(SP, 1 * target::kWordSize));
+  __ sx(PP, Address(SP, 0 * target::kWordSize));
+  __ addi(FP, SP, 4 * target::kWordSize);
+
+  if (preserve_registers) {
+    __ PushRegisters(kRuntimeCallSavedRegisters);
+  } else {
+    // Or no reason to save above.
+    COMPILE_ASSERT(!IsAbiPreservedRegister(CODE_REG));
+    COMPILE_ASSERT(!IsAbiPreservedRegister(PP));
+    // Or would need to save above.
+    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
+    COMPILE_ASSERT(IsCalleeSavedRegister(NULL_REG));
+    COMPILE_ASSERT(IsCalleeSavedRegister(WRITE_BARRIER_MASK));
+    COMPILE_ASSERT(IsCalleeSavedRegister(DISPATCH_TABLE_REG));
+  }
+
+  __ ReserveAlignedFrameSpace(frame_size);
+}
+
+void LeafRuntimeScope::Call(const RuntimeEntry& entry,
+                            intptr_t argument_count) {
+  ASSERT(argument_count == entry.argument_count());
+  __ lx(TMP2, compiler::Address(THR, entry.OffsetFromThread()));
+  __ sx(TMP2, compiler::Address(THR, target::Thread::vm_tag_offset()));
+  __ jalr(TMP2);
+  __ LoadImmediate(TMP2, VMTag::kDartTagId);
+  __ sx(TMP2, compiler::Address(THR, target::Thread::vm_tag_offset()));
+}
+
+LeafRuntimeScope::~LeafRuntimeScope() {
+  if (preserve_registers_) {
+    const intptr_t kSavedRegistersSize =
+        kRuntimeCallSavedRegisters.CpuRegisterCount() * target::kWordSize +
+        kRuntimeCallSavedRegisters.FpuRegisterCount() * kFpuRegisterSize +
+        4 * target::kWordSize;
+
+    __ subi(SP, FP, kSavedRegistersSize);
+
+    __ PopRegisters(kRuntimeCallSavedRegisters);
+  }
+
+  __ subi(SP, FP, 4 * target::kWordSize);
+  __ lx(PP, Address(SP, 0 * target::kWordSize));
+  __ lx(CODE_REG, Address(SP, 1 * target::kWordSize));
+  __ lx(FP, Address(SP, 2 * target::kWordSize));
+  __ lx(RA, Address(SP, 3 * target::kWordSize));
+  __ addi(SP, SP, 4 * target::kWordSize);
+}
+
+#undef __
+
 void Assembler::EnterCFrame(intptr_t frame_space) {
   // N.B. The ordering here is important. We must never read beyond SP or
   // it may have already been clobbered by a signal handler.
@@ -4166,81 +4238,6 @@
   LoadImmediate(dst, target::ToRawSmi(object));
 }
 
-static const RegisterSet kRuntimeCallSavedRegisters(
-    kAbiVolatileCpuRegs | (1 << CALLEE_SAVED_TEMP) | (1 << CALLEE_SAVED_TEMP2),
-    kAbiVolatileFpuRegs);
-
-// Note: leaf call sequence uses some abi callee save registers as scratch
-// so they should be manually preserved.
-void Assembler::EnterCallRuntimeFrame(intptr_t frame_size, bool is_leaf) {
-  // N.B. The ordering here is important. We must never write beyond SP or
-  // it can be clobbered by a signal handler.
-  if (FLAG_precompiled_mode) {
-    subi(SP, SP, 2 * target::kWordSize + frame_size);
-    sx(RA, Address(SP, 1 * target::kWordSize + frame_size));
-    sx(FP, Address(SP, 0 * target::kWordSize + frame_size));
-    addi(FP, SP, 2 * target::kWordSize + frame_size);
-  } else {
-    subi(SP, SP, 4 * target::kWordSize + frame_size);
-    sx(RA, Address(SP, 3 * target::kWordSize + frame_size));
-    sx(FP, Address(SP, 2 * target::kWordSize + frame_size));
-    sx(CODE_REG, Address(SP, 1 * target::kWordSize + frame_size));
-    addi(PP, PP, kHeapObjectTag);
-    sx(PP, Address(SP, 0 * target::kWordSize + frame_size));
-    addi(FP, SP, 4 * target::kWordSize + frame_size);
-  }
-
-  PushRegisters(kRuntimeCallSavedRegisters);
-
-  if (!is_leaf) {  // Leaf calling sequence aligns the stack itself.
-    ReserveAlignedFrameSpace(0);
-  }
-}
-
-void Assembler::LeaveCallRuntimeFrame(bool is_leaf) {
-  const intptr_t kPushedRegistersSize =
-      kRuntimeCallSavedRegisters.CpuRegisterCount() * target::kWordSize +
-      kRuntimeCallSavedRegisters.FpuRegisterCount() * kFpuRegisterSize +
-      (target::frame_layout.dart_fixed_frame_size * target::kWordSize);
-
-  subi(SP, FP, kPushedRegistersSize);
-
-  PopRegisters(kRuntimeCallSavedRegisters);
-
-  LeaveStubFrame();
-}
-
-void Assembler::CallRuntimeScope::Call(intptr_t argument_count) {
-  assembler_->CallRuntime(entry_, argument_count);
-}
-
-Assembler::CallRuntimeScope::~CallRuntimeScope() {
-  if (preserve_registers_) {
-    assembler_->LeaveCallRuntimeFrame(entry_.is_leaf());
-    if (restore_code_reg_) {
-      assembler_->PopRegister(CODE_REG);
-    }
-  }
-}
-
-Assembler::CallRuntimeScope::CallRuntimeScope(Assembler* assembler,
-                                              const RuntimeEntry& entry,
-                                              intptr_t frame_size,
-                                              bool preserve_registers,
-                                              const Address* caller)
-    : assembler_(assembler),
-      entry_(entry),
-      preserve_registers_(preserve_registers),
-      restore_code_reg_(caller != nullptr) {
-  if (preserve_registers_) {
-    if (caller != nullptr) {
-      assembler_->PushRegister(CODE_REG);
-      assembler_->lx(CODE_REG, *caller);
-    }
-    assembler_->EnterCallRuntimeFrame(frame_size, entry.is_leaf());
-  }
-}
-
 void Assembler::AddImmediateBranchOverflow(Register rd,
                                            Register rs1,
                                            intx_t imm,
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.h b/runtime/vm/compiler/assembler/assembler_riscv.h
index c96fa8b..af0af5c 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.h
+++ b/runtime/vm/compiler/assembler/assembler_riscv.h
@@ -916,7 +916,6 @@
                             CodeEntryKind entry_kind = CodeEntryKind::kNormal) {
     JumpAndLink(code, ObjectPoolBuilderEntry::kPatchable, entry_kind);
   }
-  void JumpAndLinkToRuntime();
 
   // Emit a call that shares its object pool entries with other calls
   // that have the same equivalence marker.
@@ -1218,51 +1217,9 @@
   void EnterOsrFrame(intptr_t extra_size, Register new_pp = kNoRegister);
   void LeaveDartFrame(RestorePP restore_pp = kRestoreCallerPP);
 
+  // For non-leaf runtime calls. For leaf runtime calls, use LeafRuntimeScope,
   void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count);
 
-  // Helper method for performing runtime calls from callers requiring manual
-  // register preservation is required (e.g. outside IL instructions marked
-  // as calling).
-  class CallRuntimeScope : public ValueObject {
-   public:
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     bool preserve_registers = true)
-        : CallRuntimeScope(assembler,
-                           entry,
-                           frame_size,
-                           preserve_registers,
-                           /*caller=*/nullptr) {}
-
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     Address caller,
-                     bool preserve_registers = true)
-        : CallRuntimeScope(assembler,
-                           entry,
-                           frame_size,
-                           preserve_registers,
-                           &caller) {}
-
-    void Call(intptr_t argument_count);
-
-    ~CallRuntimeScope();
-
-   private:
-    CallRuntimeScope(Assembler* assembler,
-                     const RuntimeEntry& entry,
-                     intptr_t frame_size,
-                     bool preserve_registers,
-                     const Address* caller);
-
-    Assembler* const assembler_;
-    const RuntimeEntry& entry_;
-    const bool preserve_registers_;
-    const bool restore_code_reg_;
-  };
-
   // Set up a stub frame so that the stack traversal code can easily identify
   // a stub frame.
   void EnterStubFrame() { EnterDartFrame(0); }
@@ -1438,11 +1395,6 @@
                              CanBeSmi can_be_smi,
                              BarrierFilterMode barrier_filter_mode);
 
-  // Note: leaf call sequence uses some abi callee save registers as scratch
-  // so they should be manually preserved.
-  void EnterCallRuntimeFrame(intptr_t frame_size, bool is_leaf);
-  void LeaveCallRuntimeFrame(bool is_leaf);
-
   friend class dart::FlowGraphCompiler;
   std::function<void(Register reg)> generate_invoke_write_barrier_wrapper_;
   std::function<void()> generate_invoke_array_write_barrier_;
diff --git a/runtime/vm/compiler/assembler/assembler_x64.cc b/runtime/vm/compiler/assembler/assembler_x64.cc
index befd618..14f4bad 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64.cc
@@ -11,6 +11,7 @@
 #include "vm/compiler/assembler/assembler.h"
 #include "vm/compiler/backend/locations.h"
 #include "vm/instructions.h"
+#include "vm/tags.h"
 
 namespace dart {
 
@@ -87,10 +88,6 @@
   call(FieldAddress(CODE_REG, target::Code::entry_point_offset()));
 }
 
-void Assembler::CallToRuntime() {
-  call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
-}
-
 void Assembler::pushq(Register reg) {
   AssemblerBuffer::EnsureCapacity ensured(&buffer_);
   EmitRegisterREX(reg, REX_NONE);
@@ -1882,42 +1879,6 @@
     CallingConventions::kVolatileCpuRegisters,
     CallingConventions::kVolatileXmmRegisters);
 
-void Assembler::EnterCallRuntimeFrame(intptr_t frame_space) {
-  Comment("EnterCallRuntimeFrame");
-  EnterFrame(0);
-  if (!FLAG_precompiled_mode) {
-    pushq(CODE_REG);
-    pushq(PP);
-  }
-
-  // TODO(vegorov): avoid saving FpuTMP, it is used only as scratch.
-  PushRegisters(kVolatileRegisterSet);
-
-  ReserveAlignedFrameSpace(frame_space);
-}
-
-void Assembler::LeaveCallRuntimeFrame() {
-  // RSP might have been modified to reserve space for arguments
-  // and ensure proper alignment of the stack frame.
-  // We need to restore it before restoring registers.
-  const intptr_t kPushedCpuRegistersCount =
-      RegisterSet::RegisterCount(CallingConventions::kVolatileCpuRegisters);
-  const intptr_t kPushedXmmRegistersCount =
-      RegisterSet::RegisterCount(CallingConventions::kVolatileXmmRegisters);
-  const intptr_t kPushedRegistersSize =
-      kPushedCpuRegistersCount * target::kWordSize +
-      kPushedXmmRegistersCount * kFpuRegisterSize +
-      (target::frame_layout.dart_fixed_frame_size - 2) *
-          target::kWordSize;  // From EnterStubFrame (excluding PC / FP)
-
-  leaq(RSP, Address(RBP, -kPushedRegistersSize));
-
-  // TODO(vegorov): avoid saving FpuTMP, it is used only as scratch.
-  PopRegisters(kVolatileRegisterSet);
-
-  LeaveStubFrame();
-}
-
 void Assembler::CallCFunction(Register reg, bool restore_rsp) {
   // Reserve shadow space for outgoing arguments.
   if (CallingConventions::kShadowSpaceBytes != 0) {
@@ -1943,24 +1904,86 @@
 
 void Assembler::CallRuntime(const RuntimeEntry& entry,
                             intptr_t argument_count) {
-  entry.Call(this, argument_count);
+  ASSERT(!entry.is_leaf());
+  // Argument count is not checked here, but in the runtime entry for a more
+  // informative error message.
+  movq(RBX, compiler::Address(THR, entry.OffsetFromThread()));
+  LoadImmediate(R10, compiler::Immediate(argument_count));
+  call(Address(THR, target::Thread::call_to_runtime_entry_point_offset()));
+}
+
+#define __ assembler_->
+
+LeafRuntimeScope::LeafRuntimeScope(Assembler* assembler,
+                                   intptr_t frame_size,
+                                   bool preserve_registers)
+    : assembler_(assembler), preserve_registers_(preserve_registers) {
+  __ Comment("EnterCallRuntimeFrame");
+  __ EnterFrame(0);
+
+  if (preserve_registers_) {
+    // TODO(vegorov): avoid saving FpuTMP, it is used only as scratch.
+    __ PushRegisters(kVolatileRegisterSet);
+  } else {
+    // These registers must always be preserved.
+    ASSERT(IsCalleeSavedRegister(THR));
+    ASSERT(IsCalleeSavedRegister(PP));
+    ASSERT(IsCalleeSavedRegister(CODE_REG));
+  }
+
+  __ ReserveAlignedFrameSpace(frame_size);
+}
+
+void LeafRuntimeScope::Call(const RuntimeEntry& entry,
+                            intptr_t argument_count) {
+  ASSERT(entry.is_leaf());
+  ASSERT(entry.argument_count() == argument_count);
+  COMPILE_ASSERT(CallingConventions::kVolatileCpuRegisters & (1 << RAX));
+  __ movq(RAX, compiler::Address(THR, entry.OffsetFromThread()));
+  __ movq(compiler::Assembler::VMTagAddress(), RAX);
+  __ CallCFunction(RAX);
+  __ movq(compiler::Assembler::VMTagAddress(),
+          compiler::Immediate(VMTag::kDartTagId));
+}
+
+LeafRuntimeScope::~LeafRuntimeScope() {
+  if (preserve_registers_) {
+    // RSP might have been modified to reserve space for arguments
+    // and ensure proper alignment of the stack frame.
+    // We need to restore it before restoring registers.
+    const intptr_t kPushedCpuRegistersCount =
+        RegisterSet::RegisterCount(CallingConventions::kVolatileCpuRegisters);
+    const intptr_t kPushedXmmRegistersCount =
+        RegisterSet::RegisterCount(CallingConventions::kVolatileXmmRegisters);
+    const intptr_t kPushedRegistersSize =
+        kPushedCpuRegistersCount * target::kWordSize +
+        kPushedXmmRegistersCount * kFpuRegisterSize;
+
+    __ leaq(RSP, Address(RBP, -kPushedRegistersSize));
+
+    // TODO(vegorov): avoid saving FpuTMP, it is used only as scratch.
+    __ PopRegisters(kVolatileRegisterSet);
+  } else {
+    const intptr_t kPushedRegistersSize =
+        (target::frame_layout.dart_fixed_frame_size - 2) *
+        target::kWordSize;  // From EnterStubFrame (excluding PC / FP)
+    __ leaq(RSP, Address(RBP, -kPushedRegistersSize));
+  }
+
+  __ LeaveFrame();
 }
 
 #if defined(USING_THREAD_SANITIZER)
 void Assembler::TsanLoadAcquire(Address addr) {
-  PushRegisters(kVolatileRegisterSet);
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
   leaq(CallingConventions::kArg1Reg, addr);
-  ASSERT(kTsanLoadAcquireRuntimeEntry.is_leaf());
-  CallRuntime(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
-  PopRegisters(kVolatileRegisterSet);
+  rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
 }
 
 void Assembler::TsanStoreRelease(Address addr) {
-  PushRegisters(kVolatileRegisterSet);
+  LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
   leaq(CallingConventions::kArg1Reg, addr);
-  ASSERT(kTsanStoreReleaseRuntimeEntry.is_leaf());
-  CallRuntime(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
-  PopRegisters(kVolatileRegisterSet);
+  rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
 }
 #endif
 
diff --git a/runtime/vm/compiler/assembler/assembler_x64.h b/runtime/vm/compiler/assembler/assembler_x64.h
index 753ef20b..653e97f 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.h
+++ b/runtime/vm/compiler/assembler/assembler_x64.h
@@ -772,7 +772,6 @@
   void CallPatchable(const Code& code,
                      CodeEntryKind entry_kind = CodeEntryKind::kNormal);
   void Call(const Code& stub_entry);
-  void CallToRuntime();
 
   // Emit a call that shares its object pool entries with other calls
   // that have the same equivalence marker.
@@ -880,12 +879,7 @@
   // Clobbers RAX.
   void EmitEntryFrameVerification();
 
-  // Create a frame for calling into runtime that preserves all volatile
-  // registers.  Frame's RSP is guaranteed to be correctly aligned and
-  // frame_space bytes are reserved under it.
-  void EnterCallRuntimeFrame(intptr_t frame_space);
-  void LeaveCallRuntimeFrame();
-
+  // For non-leaf runtime calls. For leaf runtime calls, use LeafRuntimeScope,
   void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count);
 
   // Call runtime function. Reserves shadow space on the stack before calling
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc
index 637569c..411d58b 100644
--- a/runtime/vm/compiler/backend/il_arm.cc
+++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -5664,9 +5664,11 @@
 }
 
 void CaseInsensitiveCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
-  // Call the function.
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
+  // Call the function. Parameters are already in their correct spots.
+  rt.Call(TargetFunction(), TargetFunction().argument_count());
 }
 
 LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
@@ -6116,15 +6118,20 @@
   __ vmovd(D1, D2);
   if (TargetCPUFeatures::hardfp_supported()) {
     ASSERT(instr->TargetFunction().is_leaf());  // No deopt info needed.
-    __ CallRuntime(instr->TargetFunction(), kInputCount);
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    rt.Call(instr->TargetFunction(), kInputCount);
   } else {
     // If the ABI is not "hardfp", then we have to move the double arguments
     // to the integer registers, and take the results from the integer
     // registers.
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
     __ vmovrrd(R0, R1, D0);
     __ vmovrrd(R2, R3, D1);
-    ASSERT(instr->TargetFunction().is_leaf());  // No deopt info needed.
-    __ CallRuntime(instr->TargetFunction(), kInputCount);
+    rt.Call(instr->TargetFunction(), kInputCount);
     __ vmovdrr(D0, R0, R1);
     __ vmovdrr(D1, R2, R3);
   }
@@ -6142,16 +6149,20 @@
     __ vmovd(D1, D2);
   }
   if (TargetCPUFeatures::hardfp_supported()) {
-    ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-    __ CallRuntime(TargetFunction(), InputCount());
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    rt.Call(TargetFunction(), TargetFunction().argument_count());
   } else {
     // If the ABI is not "hardfp", then we have to move the double arguments
     // to the integer registers, and take the results from the integer
     // registers.
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
     __ vmovrrd(R0, R1, D0);
     __ vmovrrd(R2, R3, D1);
-    ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-    __ CallRuntime(TargetFunction(), InputCount());
+    rt.Call(TargetFunction(), TargetFunction().argument_count());
     __ vmovdrr(D0, R0, R1);
     __ vmovdrr(D1, R2, R3);
   }
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index db2aa45..410cb0e 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -4708,9 +4708,11 @@
 }
 
 void CaseInsensitiveCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
-  // Call the function.
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
+  // Call the function. Parameters are already in their correct spots.
+  rt.Call(TargetFunction(), TargetFunction().argument_count());
 }
 
 LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
@@ -5163,9 +5165,15 @@
 
   __ Bind(&do_pow);
   __ fmovdd(base, saved_base);  // Restore base.
-
-  ASSERT(instr->TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(instr->TargetFunction(), kInputCount);
+  {
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    ASSERT(base == V0);
+    ASSERT(exp == V1);
+    rt.Call(instr->TargetFunction(), kInputCount);
+    ASSERT(result == V0);
+  }
   __ Bind(&skip_call);
 }
 
@@ -5174,8 +5182,16 @@
     InvokeDoublePow(compiler, this);
     return;
   }
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), InputCount());
+
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
+  ASSERT(locs()->in(0).fpu_reg() == V0);
+  if (InputCount() == 2) {
+    ASSERT(locs()->in(1).fpu_reg() == V1);
+  }
+  rt.Call(TargetFunction(), InputCount());
+  ASSERT(locs()->out(0).fpu_reg() == V0);
 }
 
 LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone,
diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc
index b410840..ce4c368 100644
--- a/runtime/vm/compiler/backend/il_ia32.cc
+++ b/runtime/vm/compiler/backend/il_ia32.cc
@@ -4804,23 +4804,14 @@
 }
 
 void CaseInsensitiveCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
-  // Save ESP. EDI is chosen because it is callee saved so we do not need to
-  // back it up before calling into the runtime.
-  static const Register kSavedSPReg = EDI;
-  __ movl(kSavedSPReg, ESP);
-  __ ReserveAlignedFrameSpace(kWordSize * TargetFunction().argument_count());
-
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/4 * compiler::target::kWordSize,
+                                /*preserve_registers=*/false);
   __ movl(compiler::Address(ESP, +0 * kWordSize), locs()->in(0).reg());
   __ movl(compiler::Address(ESP, +1 * kWordSize), locs()->in(1).reg());
   __ movl(compiler::Address(ESP, +2 * kWordSize), locs()->in(2).reg());
   __ movl(compiler::Address(ESP, +3 * kWordSize), locs()->in(3).reg());
-
-  // Call the function.
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
-
-  // Restore ESP and pop the old value off the stack.
-  __ movl(ESP, kSavedSPReg);
+  rt.Call(TargetFunction(), 4);
 }
 
 LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
@@ -5281,18 +5272,17 @@
   __ jmp(&skip_call);
 
   __ Bind(&do_pow);
-  // Save ESP.
-  __ movl(locs->temp(InvokeMathCFunctionInstr::kSavedSpTempIndex).reg(), ESP);
-  __ ReserveAlignedFrameSpace(kDoubleSize * kInputCount);
-  for (intptr_t i = 0; i < kInputCount; i++) {
-    __ movsd(compiler::Address(ESP, kDoubleSize * i), locs->in(i).fpu_reg());
+  {
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/kDoubleSize * kInputCount,
+                                  /*preserve_registers=*/false);
+    for (intptr_t i = 0; i < kInputCount; i++) {
+      __ movsd(compiler::Address(ESP, kDoubleSize * i), locs->in(i).fpu_reg());
+    }
+    rt.Call(instr->TargetFunction(), kInputCount);
+    __ fstpl(compiler::Address(ESP, 0));
+    __ movsd(locs->out(0).fpu_reg(), compiler::Address(ESP, 0));
   }
-  ASSERT(instr->TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(instr->TargetFunction(), kInputCount);
-  __ fstpl(compiler::Address(ESP, 0));
-  __ movsd(locs->out(0).fpu_reg(), compiler::Address(ESP, 0));
-  // Restore ESP.
-  __ movl(ESP, locs->temp(InvokeMathCFunctionInstr::kSavedSpTempIndex).reg());
   __ Bind(&skip_call);
 }
 
@@ -5301,19 +5291,19 @@
     InvokeDoublePow(compiler, this);
     return;
   }
-  // Save ESP.
-  __ movl(locs()->temp(kSavedSpTempIndex).reg(), ESP);
-  __ ReserveAlignedFrameSpace(kDoubleSize * InputCount());
-  for (intptr_t i = 0; i < InputCount(); i++) {
-    __ movsd(compiler::Address(ESP, kDoubleSize * i), locs()->in(i).fpu_reg());
-  }
 
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), InputCount());
-  __ fstpl(compiler::Address(ESP, 0));
-  __ movsd(locs()->out(0).fpu_reg(), compiler::Address(ESP, 0));
-  // Restore ESP.
-  __ movl(ESP, locs()->temp(kSavedSpTempIndex).reg());
+  {
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/kDoubleSize * InputCount(),
+                                  /*preserve_registers=*/false);
+    for (intptr_t i = 0; i < InputCount(); i++) {
+      __ movsd(compiler::Address(ESP, kDoubleSize * i),
+               locs()->in(i).fpu_reg());
+    }
+    rt.Call(TargetFunction(), InputCount());
+    __ fstpl(compiler::Address(ESP, 0));
+    __ movsd(locs()->out(0).fpu_reg(), compiler::Address(ESP, 0));
+  }
 }
 
 LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone,
diff --git a/runtime/vm/compiler/backend/il_riscv.cc b/runtime/vm/compiler/backend/il_riscv.cc
index d4e8b39..a73d757 100644
--- a/runtime/vm/compiler/backend/il_riscv.cc
+++ b/runtime/vm/compiler/backend/il_riscv.cc
@@ -4903,6 +4903,9 @@
     UNIMPLEMENTED();
   }
 
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
   if (locs()->in(3).IsRegister()) {
     __ mv(A3, locs()->in(3).reg());
   } else if (locs()->in(3).IsStackSlot()) {
@@ -4910,10 +4913,7 @@
   } else {
     UNIMPLEMENTED();
   }
-
-  // Call the function.
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
+  rt.Call(TargetFunction(), TargetFunction().argument_count());
 }
 
 LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
@@ -5235,8 +5235,15 @@
     UNIMPLEMENTED();
   }
 
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), InputCount());
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
+  ASSERT(locs()->in(0).fpu_reg() == FA0);
+  if (InputCount() == 2) {
+    ASSERT(locs()->in(1).fpu_reg() == FA1);
+  }
+  rt.Call(TargetFunction(), InputCount());
+  ASSERT(locs()->out(0).fpu_reg() == FA0);
 
   // TODO(riscv): Special case pow?
 }
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index 831b5e9..33b66ee 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -5031,18 +5031,11 @@
 }
 
 void CaseInsensitiveCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
-  // Save RSP. R13 is chosen because it is callee saved so we do not need to
-  // back it up before calling into the runtime.
-  static const Register kSavedSPReg = R13;
-  __ movq(kSavedSPReg, RSP);
-  __ ReserveAlignedFrameSpace(0);
-
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
   // Call the function. Parameters are already in their correct spots.
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
-
-  // Restore RSP.
-  __ movq(RSP, kSavedSPReg);
+  rt.Call(TargetFunction(), TargetFunction().argument_count());
 }
 
 LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Zone* zone,
@@ -5524,18 +5517,15 @@
   __ jmp(&skip_call);
 
   __ Bind(&do_pow);
-
-  // Save RSP.
-  __ movq(locs->temp(InvokeMathCFunctionInstr::kSavedSpTempIndex).reg(), RSP);
-  __ ReserveAlignedFrameSpace(0);
-  __ movaps(XMM0, locs->in(0).fpu_reg());
-  ASSERT(locs->in(1).fpu_reg() == XMM1);
-
-  ASSERT(instr->TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(instr->TargetFunction(), kInputCount);
-  __ movaps(locs->out(0).fpu_reg(), XMM0);
-  // Restore RSP.
-  __ movq(RSP, locs->temp(InvokeMathCFunctionInstr::kSavedSpTempIndex).reg());
+  {
+    compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    __ movaps(XMM0, locs->in(0).fpu_reg());
+    ASSERT(locs->in(1).fpu_reg() == XMM1);
+    rt.Call(instr->TargetFunction(), kInputCount);
+    __ movaps(locs->out(0).fpu_reg(), XMM0);
+  }
   __ Bind(&skip_call);
 }
 
@@ -5545,21 +5535,15 @@
     return;
   }
 
+  compiler::LeafRuntimeScope rt(compiler->assembler(),
+                                /*frame_size=*/0,
+                                /*preserve_registers=*/false);
   ASSERT(locs()->in(0).fpu_reg() == XMM0);
   if (InputCount() == 2) {
     ASSERT(locs()->in(1).fpu_reg() == XMM1);
   }
-
-  // Save RSP.
-  __ movq(locs()->temp(kSavedSpTempIndex).reg(), RSP);
-  __ ReserveAlignedFrameSpace(0);
-
-  ASSERT(TargetFunction().is_leaf());  // No deopt info needed.
-  __ CallRuntime(TargetFunction(), InputCount());
+  rt.Call(TargetFunction(), InputCount());
   ASSERT(locs()->out(0).fpu_reg() == XMM0);
-
-  // Restore RSP.
-  __ movq(RSP, locs()->temp(kSavedSpTempIndex).reg());
 }
 
 LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone,
diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc
index 9cc619d..7d7866b 100644
--- a/runtime/vm/compiler/runtime_api.cc
+++ b/runtime/vm/compiler/runtime_api.cc
@@ -320,6 +320,10 @@
   return runtime_entry_->is_leaf();
 }
 
+intptr_t RuntimeEntry::argument_count() const {
+  return runtime_entry_->argument_count();
+}
+
 namespace target {
 
 const word kOldPageSize = dart::kOldPageSize;
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index f502d99..5295836 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -211,10 +211,6 @@
 uword SymbolsPredefinedAddress();
 #endif
 
-typedef void (*RuntimeEntryCallInternal)(const dart::RuntimeEntry*,
-                                         Assembler*,
-                                         intptr_t);
-
 const Code& StubCodeAllocateArray();
 const Code& StubCodeSubtype3TestCache();
 const Code& StubCodeSubtype7TestCache();
@@ -223,43 +219,17 @@
  public:
   virtual ~RuntimeEntry() {}
 
-  void Call(Assembler* assembler, intptr_t argument_count) const {
-    ASSERT(call_ != NULL);
-    ASSERT(runtime_entry_ != NULL);
-
-    // We call a manually set function pointer which points to the
-    // implementation of call for the subclass. We do this instead of just
-    // defining Call in this class as a pure virtual method and providing an
-    // implementation in the subclass as RuntimeEntry objects are declared as
-    // globals which causes problems on Windows.
-    //
-    // When exit() is called on Windows, global objects start to be destroyed.
-    // As part of an object's destruction, the vtable is reset to that of the
-    // base class. Since some threads may still be running and accessing these
-    // now destroyed globals, an invocation to dart::RuntimeEntry::Call would
-    // instead invoke dart::compiler::RuntimeEntry::Call. If
-    // dart::compiler::RuntimeEntry::Call were a pure virtual method, _purecall
-    // would be invoked to handle the invalid call and attempt to call exit(),
-    // causing the process to hang on a lock.
-    //
-    // By removing the need to rely on a potentially invalid vtable at exit,
-    // we should be able to avoid hanging or crashing the process at shutdown,
-    // even as global objects start to be destroyed. See issue #35855.
-    call_(runtime_entry_, assembler, argument_count);
-  }
-
   word OffsetFromThread() const;
 
   bool is_leaf() const;
+  intptr_t argument_count() const;
 
  protected:
-  RuntimeEntry(const dart::RuntimeEntry* runtime_entry,
-               RuntimeEntryCallInternal call)
-      : runtime_entry_(runtime_entry), call_(call) {}
+  explicit RuntimeEntry(const dart::RuntimeEntry* runtime_entry)
+      : runtime_entry_(runtime_entry) {}
 
  private:
   const dart::RuntimeEntry* runtime_entry_;
-  RuntimeEntryCallInternal call_;
 };
 
 #define DECLARE_RUNTIME_ENTRY(name)                                            \
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 6f1d535..06ff2b0 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -243,158 +243,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    760;
+    752;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    764;
+    756;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 792;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 800;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 824;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 816;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 804;
+    Thread_double_truncate_round_supported_offset = 796;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    780;
+    772;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    768;
+    760;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    796;
+    788;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 828;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 820;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 772;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 764;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 776;
+    Thread_saved_shadow_call_stack_offset = 768;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    784;
+    776;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -406,20 +404,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 788;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 780;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 792;
-static constexpr dart::compiler::target::word Thread_random_offset = 808;
+    Thread_callback_stack_return_offset = 784;
+static constexpr dart::compiler::target::word Thread_random_offset = 800;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 816;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 808;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -492,7 +488,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        728, 732, 736, 740, 744, -1, 748, -1, 752, 756, -1, -1, -1, -1, -1, -1};
+        720, 724, 728, 732, 736, -1, 740, -1, 744, 748, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -815,160 +811,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1520;
+    1504;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1528;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1640;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1624;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1608;
+    Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1560;
+    1544;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1536;
+    1520;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1544;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1528;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1552;
+    Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1568;
+    1552;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -980,21 +974,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word Thread_random_offset = 1616;
+    Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1624;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1608;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1069,8 +1061,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -1390,158 +1382,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    728;
+    720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    732;
+    724;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 768;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 792;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 784;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 772;
+    Thread_double_truncate_round_supported_offset = 764;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    748;
+    740;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    736;
+    728;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    764;
+    756;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 796;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 788;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 740;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 732;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 744;
+    Thread_saved_shadow_call_stack_offset = 736;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -1553,20 +1543,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 756;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 748;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 760;
-static constexpr dart::compiler::target::word Thread_random_offset = 776;
+    Thread_callback_stack_return_offset = 752;
+static constexpr dart::compiler::target::word Thread_random_offset = 768;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 784;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 776;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1959,160 +1947,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1704;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1688;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1672;
+    Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1608;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1616;
+    Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -2124,21 +2110,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word Thread_random_offset = 1680;
+    Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1688;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1672;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2213,9 +2197,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -2536,160 +2520,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1520;
+    1504;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1528;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1640;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1624;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1608;
+    Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1560;
+    1544;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1536;
+    1520;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1544;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1528;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1552;
+    Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1568;
+    1552;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -2701,21 +2683,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word Thread_random_offset = 1616;
+    Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1624;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1608;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2790,8 +2770,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -3112,160 +3092,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1704;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1688;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1672;
+    Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1608;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1616;
+    Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -3277,21 +3255,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word Thread_random_offset = 1680;
+    Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1688;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1672;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3366,9 +3342,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -3688,158 +3664,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    800;
+    792;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    804;
+    796;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 832;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 840;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 864;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 856;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 844;
+    Thread_double_truncate_round_supported_offset = 836;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    820;
+    812;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    808;
+    800;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    836;
+    828;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 868;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 860;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 812;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 804;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 816;
+    Thread_saved_shadow_call_stack_offset = 808;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -3851,20 +3825,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 828;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 820;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 832;
-static constexpr dart::compiler::target::word Thread_random_offset = 848;
+    Thread_callback_stack_return_offset = 824;
+static constexpr dart::compiler::target::word Thread_random_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 856;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3937,9 +3909,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 728, 732, 736, -1,  -1,  740,
-        744, 748, -1, -1, -1, 752, 756, 760, 764, 768, 772,
-        776, 780, -1, -1, -1, -1,  784, 788, 792, 796};
+        -1,  -1,  -1, -1, -1, 720, 724, 728, -1,  -1,  732,
+        736, 740, -1, -1, -1, 744, 748, 752, 756, 760, 764,
+        768, 772, -1, -1, -1, -1,  776, 780, 784, 788};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -4262,160 +4234,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1696;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1680;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1664;
+    Thread_double_truncate_round_supported_offset = 1648;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1616;
+    1600;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1600;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1608;
+    Thread_saved_shadow_call_stack_offset = 1592;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -4427,21 +4397,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1640;
-static constexpr dart::compiler::target::word Thread_random_offset = 1672;
+    Thread_callback_stack_return_offset = 1624;
+static constexpr dart::compiler::target::word Thread_random_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1680;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1664;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -4516,9 +4484,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1432, 1440, 1448, -1,   -1,   1456,
-        1464, 1472, -1, -1, -1, 1480, 1488, 1496, 1504, 1512, 1520,
-        1528, 1536, -1, -1, -1, -1,   1544, 1552, 1560, 1568};
+        -1,   -1,   -1, -1, -1, 1416, 1424, 1432, -1,   -1,   1440,
+        1448, 1456, -1, -1, -1, 1464, 1472, 1480, 1488, 1496, 1504,
+        1512, 1520, -1, -1, -1, -1,   1528, 1536, 1544, 1552};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -4834,158 +4802,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    760;
+    752;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    764;
+    756;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 792;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 800;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 824;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 816;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 804;
+    Thread_double_truncate_round_supported_offset = 796;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    780;
+    772;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    768;
+    760;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    796;
+    788;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 828;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 820;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 772;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 764;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 776;
+    Thread_saved_shadow_call_stack_offset = 768;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    784;
+    776;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -4997,20 +4963,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 788;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 780;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 792;
-static constexpr dart::compiler::target::word Thread_random_offset = 808;
+    Thread_callback_stack_return_offset = 784;
+static constexpr dart::compiler::target::word Thread_random_offset = 800;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 816;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 808;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5083,7 +5047,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        728, 732, 736, 740, 744, -1, 748, -1, 752, 756, -1, -1, -1, -1, -1, -1};
+        720, 724, 728, 732, 736, -1, 740, -1, 744, 748, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -5400,160 +5364,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1520;
+    1504;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1528;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1640;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1624;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1608;
+    Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1560;
+    1544;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1536;
+    1520;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1544;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1528;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1552;
+    Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1568;
+    1552;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -5565,21 +5527,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word Thread_random_offset = 1616;
+    Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1624;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1608;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5654,8 +5614,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -5969,158 +5929,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    728;
+    720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    732;
+    724;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 768;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 792;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 784;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 772;
+    Thread_double_truncate_round_supported_offset = 764;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    748;
+    740;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    736;
+    728;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    764;
+    756;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 796;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 788;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 740;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 732;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 744;
+    Thread_saved_shadow_call_stack_offset = 736;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -6132,20 +6090,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 756;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 748;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 760;
-static constexpr dart::compiler::target::word Thread_random_offset = 776;
+    Thread_callback_stack_return_offset = 752;
+static constexpr dart::compiler::target::word Thread_random_offset = 768;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 784;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 776;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6532,160 +6488,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1704;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1688;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1672;
+    Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1608;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1616;
+    Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -6697,21 +6651,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word Thread_random_offset = 1680;
+    Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1688;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1672;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6786,9 +6738,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -7103,160 +7055,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1520;
+    1504;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1528;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1640;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1624;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1608;
+    Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1560;
+    1544;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1536;
+    1520;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1544;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1528;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1552;
+    Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1568;
+    1552;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -7268,21 +7218,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word Thread_random_offset = 1616;
+    Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1624;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1608;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7357,8 +7305,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -7673,160 +7621,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1704;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1688;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1672;
+    Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1608;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1616;
+    Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -7838,21 +7784,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word Thread_random_offset = 1680;
+    Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1688;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1672;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7927,9 +7871,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -8243,158 +8187,156 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 384;
+    Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    800;
+    792;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    804;
+    796;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 276;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 292;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 296;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 300;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 832;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 840;
-static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 280;
+    Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 864;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 856;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 844;
+    Thread_double_truncate_round_supported_offset = 836;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    320;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    312;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    324;
+    316;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    364;
+    356;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 360;
+    Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    820;
+    812;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 268;
+    Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 328;
+    Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 376;
+    Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 372;
+    Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    368;
+    360;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 380;
+    Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    808;
+    800;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    836;
+    828;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 868;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 860;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 312;
+    Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 316;
+    Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 812;
+    Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 804;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 816;
+    Thread_saved_shadow_call_stack_offset = 808;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 336;
+    Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
@@ -8406,20 +8348,18 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 272;
+    Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 828;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 820;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 832;
-static constexpr dart::compiler::target::word Thread_random_offset = 848;
+    Thread_callback_stack_return_offset = 824;
+static constexpr dart::compiler::target::word Thread_random_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 332;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 856;
+    Thread_jump_to_frame_entry_point_offset = 324;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8492,9 +8432,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 728, 732, 736, -1,  -1,  740,
-        744, 748, -1, -1, -1, 752, 756, 760, 764, 768, 772,
-        776, 780, -1, -1, -1, -1,  784, 788, 792, 796};
+        -1,  -1,  -1, -1, -1, 720, 724, 728, -1,  -1,  732,
+        736, 740, -1, -1, -1, 744, 748, 752, 756, 760, 764,
+        768, 772, -1, -1, -1, -1,  776, 780, 784, 788};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -8811,160 +8751,158 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 744;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1584;
+    1568;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 232;
+    Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 368;
+    Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 376;
+    Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 384;
+    Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 264;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1696;
+    Thread_call_to_runtime_stub_offset = 248;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1680;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1664;
+    Thread_double_truncate_round_supported_offset = 1648;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+    600;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    608;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    448;
+    432;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    704;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 696;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 488;
+    Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1616;
+    1600;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 496;
+    Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 248;
+    Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 240;
+    Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 728;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 720;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    712;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 736;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1592;
+    1576;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 256;
+    Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 456;
+    Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 464;
+    Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 480;
+    Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 408;
+    Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 680;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1600;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1608;
+    Thread_saved_shadow_call_stack_offset = 1592;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 472;
+    Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 648;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
@@ -8976,21 +8914,19 @@
 static constexpr dart::compiler::target::word
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1640;
-static constexpr dart::compiler::target::word Thread_random_offset = 1672;
+    Thread_callback_stack_return_offset = 1624;
+static constexpr dart::compiler::target::word Thread_random_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 640;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1680;
+    Thread_jump_to_frame_entry_point_offset = 624;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1664;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9065,9 +9001,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1432, 1440, 1448, -1,   -1,   1456,
-        1464, 1472, -1, -1, -1, 1480, 1488, 1496, 1504, 1512, 1520,
-        1528, 1536, -1, -1, -1, -1,   1544, 1552, 1560, 1568};
+        -1,   -1,   -1, -1, -1, 1416, 1424, 1432, -1,   -1,   1440,
+        1448, 1456, -1, -1, -1, 1464, 1472, 1480, 1488, 1496, 1504,
+        1512, 1520, -1, -1, -1, -1,   1528, 1536, 1544, 1552};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -9418,152 +9354,150 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 384;
+    AOT_Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 760;
+    AOT_Thread_active_exception_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 764;
+    AOT_Thread_active_stacktrace_offset = 756;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 276;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 292;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 296;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 300;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    800;
+    792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 280;
+    AOT_Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 804;
+    AOT_Thread_double_truncate_round_supported_offset = 796;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 324;
+    AOT_Thread_deoptimize_entry_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 364;
+    AOT_Thread_double_abs_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 360;
+    AOT_Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 780;
+    AOT_Thread_execution_state_offset = 772;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 268;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 328;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 376;
+    AOT_Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 372;
+    AOT_Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 368;
+    AOT_Thread_float_not_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 380;
+    AOT_Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 768;
+    AOT_Thread_global_object_pool_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 796;
+    AOT_Thread_exit_through_ffi_offset = 788;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 312;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 316;
+    AOT_Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 772;
+    AOT_Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 764;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 776;
+    AOT_Thread_saved_shadow_call_stack_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 784;
+    AOT_Thread_safepoint_state_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 336;
+    AOT_Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -9571,13 +9505,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
@@ -9591,21 +9525,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 272;
+    AOT_Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    788;
+    780;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 808;
+    AOT_Thread_callback_stack_return_offset = 784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 332;
+    AOT_Thread_jump_to_frame_entry_point_offset = 324;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    816;
+    808;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -9692,7 +9624,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        728, 732, 736, 740, 744, -1, 748, -1, 752, 756, -1, -1, -1, -1, -1, -1};
+        720, 724, 728, 732, 736, -1, 740, -1, 744, 748, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -10055,153 +9987,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1520;
+    AOT_Thread_active_exception_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1528;
+    AOT_Thread_active_stacktrace_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1608;
+    AOT_Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1560;
+    AOT_Thread_execution_state_offset = 1544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1536;
+    AOT_Thread_global_object_pool_offset = 1520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1592;
+    AOT_Thread_exit_through_ffi_offset = 1576;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1544;
+    1528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1552;
+    AOT_Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1568;
+    AOT_Thread_safepoint_state_offset = 1552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -10209,13 +10139,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -10229,21 +10159,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1616;
+    AOT_Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -10331,8 +10259,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -10698,153 +10626,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1584;
+    AOT_Thread_active_exception_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1592;
+    AOT_Thread_active_stacktrace_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1672;
+    AOT_Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1624;
+    AOT_Thread_execution_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1600;
+    AOT_Thread_global_object_pool_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1656;
+    AOT_Thread_exit_through_ffi_offset = 1640;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1608;
+    1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1616;
+    AOT_Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1632;
+    AOT_Thread_safepoint_state_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -10852,13 +10778,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -10872,21 +10798,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1680;
+    AOT_Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -10974,9 +10898,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -11338,153 +11262,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1520;
+    AOT_Thread_active_exception_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1528;
+    AOT_Thread_active_stacktrace_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1608;
+    AOT_Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1560;
+    AOT_Thread_execution_state_offset = 1544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1536;
+    AOT_Thread_global_object_pool_offset = 1520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1592;
+    AOT_Thread_exit_through_ffi_offset = 1576;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1544;
+    1528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1552;
+    AOT_Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1568;
+    AOT_Thread_safepoint_state_offset = 1552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -11492,13 +11414,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -11512,21 +11434,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1616;
+    AOT_Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -11614,8 +11534,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -11977,153 +11897,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1584;
+    AOT_Thread_active_exception_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1592;
+    AOT_Thread_active_stacktrace_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1672;
+    AOT_Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1624;
+    AOT_Thread_execution_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1600;
+    AOT_Thread_global_object_pool_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1656;
+    AOT_Thread_exit_through_ffi_offset = 1640;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1608;
+    1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1616;
+    AOT_Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1632;
+    AOT_Thread_safepoint_state_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -12131,13 +12049,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -12151,21 +12069,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1680;
+    AOT_Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -12253,9 +12169,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -12617,152 +12533,150 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 384;
+    AOT_Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 800;
+    AOT_Thread_active_exception_offset = 792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 804;
+    AOT_Thread_active_stacktrace_offset = 796;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 276;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 292;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 296;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 300;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 280;
+    AOT_Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    864;
+    856;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 844;
+    AOT_Thread_double_truncate_round_supported_offset = 836;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 324;
+    AOT_Thread_deoptimize_entry_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 364;
+    AOT_Thread_double_abs_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 360;
+    AOT_Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 820;
+    AOT_Thread_execution_state_offset = 812;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 268;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 328;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 376;
+    AOT_Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 372;
+    AOT_Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 368;
+    AOT_Thread_float_not_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 380;
+    AOT_Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 808;
+    AOT_Thread_global_object_pool_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 836;
+    AOT_Thread_exit_through_ffi_offset = 828;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    868;
+    860;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 312;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 316;
+    AOT_Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 812;
+    AOT_Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 804;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 816;
+    AOT_Thread_saved_shadow_call_stack_offset = 808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 824;
+    AOT_Thread_safepoint_state_offset = 816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 336;
+    AOT_Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -12770,13 +12684,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
@@ -12790,21 +12704,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 272;
+    AOT_Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 832;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 848;
+    AOT_Thread_callback_stack_return_offset = 824;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 332;
+    AOT_Thread_jump_to_frame_entry_point_offset = 324;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    856;
+    848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -12891,9 +12803,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 728, 732, 736, -1,  -1,  740,
-        744, 748, -1, -1, -1, 752, 756, 760, 764, 768, 772,
-        776, 780, -1, -1, -1, -1,  784, 788, 792, 796};
+        -1,  -1,  -1, -1, -1, 720, 724, 728, -1,  -1,  732,
+        736, 740, -1, -1, -1, 744, 748, 752, 756, 760, 764,
+        768, 772, -1, -1, -1, -1,  776, 780, 784, 788};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -13256,153 +13168,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1576;
+    AOT_Thread_active_exception_offset = 1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1584;
+    AOT_Thread_active_stacktrace_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1664;
+    AOT_Thread_double_truncate_round_supported_offset = 1648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1616;
+    AOT_Thread_execution_state_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1592;
+    AOT_Thread_global_object_pool_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1648;
+    AOT_Thread_exit_through_ffi_offset = 1632;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1608;
+    AOT_Thread_saved_shadow_call_stack_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1624;
+    AOT_Thread_safepoint_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -13410,13 +13320,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -13430,21 +13340,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1640;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1672;
+    AOT_Thread_callback_stack_return_offset = 1624;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -13532,9 +13440,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1432, 1440, 1448, -1,   -1,   1456,
-        1464, 1472, -1, -1, -1, 1480, 1488, 1496, 1504, 1512, 1520,
-        1528, 1536, -1, -1, -1, -1,   1544, 1552, 1560, 1568};
+        -1,   -1,   -1, -1, -1, 1416, 1424, 1432, -1,   -1,   1440,
+        1448, 1456, -1, -1, -1, 1464, 1472, 1480, 1488, 1496, 1504,
+        1512, 1520, -1, -1, -1, -1,   1528, 1536, 1544, 1552};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -13891,152 +13799,150 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 384;
+    AOT_Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 760;
+    AOT_Thread_active_exception_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 764;
+    AOT_Thread_active_stacktrace_offset = 756;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 276;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 292;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 296;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 300;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    800;
+    792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 280;
+    AOT_Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 804;
+    AOT_Thread_double_truncate_round_supported_offset = 796;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 324;
+    AOT_Thread_deoptimize_entry_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 364;
+    AOT_Thread_double_abs_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 360;
+    AOT_Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 780;
+    AOT_Thread_execution_state_offset = 772;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 268;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 328;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 376;
+    AOT_Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 372;
+    AOT_Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 368;
+    AOT_Thread_float_not_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 380;
+    AOT_Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 768;
+    AOT_Thread_global_object_pool_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 796;
+    AOT_Thread_exit_through_ffi_offset = 788;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 312;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 316;
+    AOT_Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 772;
+    AOT_Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 764;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 776;
+    AOT_Thread_saved_shadow_call_stack_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 784;
+    AOT_Thread_safepoint_state_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 336;
+    AOT_Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -14044,13 +13950,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
@@ -14064,21 +13970,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 272;
+    AOT_Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    788;
+    780;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 808;
+    AOT_Thread_callback_stack_return_offset = 784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 332;
+    AOT_Thread_jump_to_frame_entry_point_offset = 324;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    816;
+    808;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -14165,7 +14069,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        728, 732, 736, 740, 744, -1, 748, -1, 752, 756, -1, -1, -1, -1, -1, -1};
+        720, 724, 728, 732, 736, -1, 740, -1, 744, 748, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -14521,153 +14425,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1520;
+    AOT_Thread_active_exception_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1528;
+    AOT_Thread_active_stacktrace_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1608;
+    AOT_Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1560;
+    AOT_Thread_execution_state_offset = 1544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1536;
+    AOT_Thread_global_object_pool_offset = 1520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1592;
+    AOT_Thread_exit_through_ffi_offset = 1576;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1544;
+    1528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1552;
+    AOT_Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1568;
+    AOT_Thread_safepoint_state_offset = 1552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -14675,13 +14577,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -14695,21 +14597,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1616;
+    AOT_Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -14797,8 +14697,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -15157,153 +15057,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1584;
+    AOT_Thread_active_exception_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1592;
+    AOT_Thread_active_stacktrace_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1672;
+    AOT_Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1624;
+    AOT_Thread_execution_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1600;
+    AOT_Thread_global_object_pool_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1656;
+    AOT_Thread_exit_through_ffi_offset = 1640;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1608;
+    1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1616;
+    AOT_Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1632;
+    AOT_Thread_safepoint_state_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -15311,13 +15209,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -15331,21 +15229,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1680;
+    AOT_Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -15433,9 +15329,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -15790,153 +15686,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1520;
+    AOT_Thread_active_exception_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1528;
+    AOT_Thread_active_stacktrace_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1608;
+    AOT_Thread_double_truncate_round_supported_offset = 1592;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1560;
+    AOT_Thread_execution_state_offset = 1544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1536;
+    AOT_Thread_global_object_pool_offset = 1520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1592;
+    AOT_Thread_exit_through_ffi_offset = 1576;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1648;
+    1632;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1544;
+    1528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1552;
+    AOT_Thread_saved_shadow_call_stack_offset = 1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1568;
+    AOT_Thread_safepoint_state_offset = 1552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -15944,13 +15838,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -15964,21 +15858,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1576;
+    1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1584;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1616;
+    AOT_Thread_callback_stack_return_offset = 1568;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1624;
+    1608;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -16066,8 +15958,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, -1,   -1,   1464, 1472,
-        1480, 1488, 1496, -1,   1504, 1512, -1,   -1};
+        1416, 1424, 1432, 1440, -1,   -1,   1448, 1456,
+        1464, 1472, 1480, -1,   1488, 1496, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -16422,153 +16314,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1584;
+    AOT_Thread_active_exception_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1592;
+    AOT_Thread_active_stacktrace_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1664;
+    1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1672;
+    AOT_Thread_double_truncate_round_supported_offset = 1656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1624;
+    AOT_Thread_execution_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1600;
+    AOT_Thread_global_object_pool_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1656;
+    AOT_Thread_exit_through_ffi_offset = 1640;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1608;
+    1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1616;
+    AOT_Thread_saved_shadow_call_stack_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1632;
+    AOT_Thread_safepoint_state_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -16576,13 +16466,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -16596,21 +16486,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1640;
+    1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1648;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1680;
+    AOT_Thread_callback_stack_return_offset = 1632;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -16698,9 +16586,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1512,
-        1520, 1528, 1536, 1544, -1,   -1,   -1,   -1,   1552, 1560, -1,
-        -1,   1568, 1576, 1584, -1,   -1,   -1,   -1,   -1,   -1};
+        1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1496,
+        1504, 1512, 1520, 1528, -1,   -1,   -1,   -1,   1536, 1544, -1,
+        -1,   1552, 1560, 1568, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -17055,152 +16943,150 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 384;
+    AOT_Thread_AllocateArray_entry_point_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 800;
+    AOT_Thread_active_exception_offset = 792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 804;
+    AOT_Thread_active_stacktrace_offset = 796;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 276;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 288;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_object_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 292;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 296;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 300;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 348;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 280;
+    AOT_Thread_call_to_runtime_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    864;
+    856;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 844;
+    AOT_Thread_double_truncate_round_supported_offset = 836;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 324;
+    AOT_Thread_deoptimize_entry_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 364;
+    AOT_Thread_double_abs_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 360;
+    AOT_Thread_double_negate_address_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 820;
+    AOT_Thread_execution_state_offset = 812;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 264;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 268;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 328;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 376;
+    AOT_Thread_float_absolute_address_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 372;
+    AOT_Thread_float_negate_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 368;
+    AOT_Thread_float_not_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 380;
+    AOT_Thread_float_zerow_address_offset = 372;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 808;
+    AOT_Thread_global_object_pool_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 836;
+    AOT_Thread_exit_through_ffi_offset = 828;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    868;
+    860;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 312;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 316;
+    AOT_Thread_switchable_call_miss_entry_offset = 308;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 344;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 352;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 812;
+    AOT_Thread_predefined_symbols_address_offset = 344;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 804;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 816;
+    AOT_Thread_saved_shadow_call_stack_offset = 808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 824;
+    AOT_Thread_safepoint_state_offset = 816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 336;
+    AOT_Thread_slow_type_test_entry_point_offset = 328;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -17208,13 +17094,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
@@ -17228,21 +17114,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 272;
+    AOT_Thread_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 832;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 848;
+    AOT_Thread_callback_stack_return_offset = 824;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 332;
+    AOT_Thread_jump_to_frame_entry_point_offset = 324;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    856;
+    848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -17329,9 +17213,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 728, 732, 736, -1,  -1,  740,
-        744, 748, -1, -1, -1, 752, 756, 760, 764, 768, 772,
-        776, 780, -1, -1, -1, -1,  784, 788, 792, 796};
+        -1,  -1,  -1, -1, -1, 720, 724, 728, -1,  -1,  732,
+        736, 740, -1, -1, -1, 744, 748, 752, 756, 760, 764,
+        768, 772, -1, -1, -1, -1,  776, 780, 784, 788};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -17687,153 +17571,151 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 744;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1576;
+    AOT_Thread_active_exception_offset = 1560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1584;
+    AOT_Thread_active_stacktrace_offset = 1568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 232;
+    AOT_Thread_array_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_object_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 368;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
-static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 384;
+    AOT_Thread_allocate_object_slow_stub_offset = 368;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1656;
+    1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 672;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 264;
+    AOT_Thread_call_to_runtime_stub_offset = 248;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1664;
+    AOT_Thread_double_truncate_round_supported_offset = 1648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    600;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    440;
+    424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 448;
+    AOT_Thread_deoptimize_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 704;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 696;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 488;
+    AOT_Thread_enter_safepoint_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1616;
+    AOT_Thread_execution_state_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 496;
+    AOT_Thread_exit_safepoint_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 504;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 248;
+    AOT_Thread_fix_allocation_stub_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 240;
+    AOT_Thread_fix_callers_target_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 728;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 720;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 712;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 736;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1592;
+    AOT_Thread_global_object_pool_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 256;
+    AOT_Thread_invoke_dart_code_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1648;
+    AOT_Thread_exit_through_ffi_offset = 1632;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1704;
+    1688;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 464;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 408;
+    AOT_Thread_switchable_call_miss_stub_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 264;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        272;
+        256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 680;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1600;
+    1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1608;
+    AOT_Thread_saved_shadow_call_stack_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1624;
+    AOT_Thread_safepoint_state_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 472;
+    AOT_Thread_slow_type_test_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 648;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -17841,13 +17723,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 376;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
@@ -17861,21 +17743,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 504;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1632;
+    1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1640;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1672;
+    AOT_Thread_callback_stack_return_offset = 1624;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 640;
+    AOT_Thread_jump_to_frame_entry_point_offset = 624;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -17963,9 +17843,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1432, 1440, 1448, -1,   -1,   1456,
-        1464, 1472, -1, -1, -1, 1480, 1488, 1496, 1504, 1512, 1520,
-        1528, 1536, -1, -1, -1, -1,   1544, 1552, 1560, 1568};
+        -1,   -1,   -1, -1, -1, 1416, 1424, 1432, -1,   -1,   1440,
+        1448, 1456, -1, -1, -1, 1464, 1472, 1480, 1488, 1496, 1504,
+        1512, 1520, -1, -1, -1, -1,   1528, 1536, 1544, 1552};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index cbd470c..09f12cf 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -191,7 +191,6 @@
   FIELD(Thread, AllocateArray_entry_point_offset)                              \
   FIELD(Thread, active_exception_offset)                                       \
   FIELD(Thread, active_stacktrace_offset)                                      \
-  FIELD(Thread, array_write_barrier_code_offset)                               \
   FIELD(Thread, array_write_barrier_entry_point_offset)                        \
   FIELD(Thread, allocate_mint_with_fpu_regs_entry_point_offset)                \
   FIELD(Thread, allocate_mint_with_fpu_regs_stub_offset)                       \
@@ -279,7 +278,6 @@
   FIELD(Thread, unboxed_int64_runtime_arg_offset)                              \
   FIELD(Thread, unboxed_double_runtime_arg_offset)                             \
   FIELD(Thread, vm_tag_offset)                                                 \
-  FIELD(Thread, write_barrier_code_offset)                                     \
   FIELD(Thread, write_barrier_entry_point_offset)                              \
   FIELD(Thread, write_barrier_mask_offset)                                     \
   FIELD(Thread, heap_base_offset)                                              \
diff --git a/runtime/vm/compiler/stub_code_compiler_arm.cc b/runtime/vm/compiler/stub_code_compiler_arm.cc
index 2bb3db2..dda5901 100644
--- a/runtime/vm/compiler/stub_code_compiler_arm.cc
+++ b/runtime/vm/compiler/stub_code_compiler_arm.cc
@@ -43,16 +43,13 @@
   __ tst(R0, Operand(1 << target::ObjectAlignment::kNewObjectBitPosition));
   __ BranchIf(NOT_ZERO, &done);
 
-  if (preserve_registers) {
-    __ EnterCallRuntimeFrame(0);
-  } else {
-    __ ReserveAlignedFrameSpace(0);
-  }
-  // [R0] already contains first argument.
-  __ mov(R1, Operand(THR));
-  __ CallRuntime(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
-  if (preserve_registers) {
-    __ LeaveCallRuntimeFrame();
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    // [R0] already contains first argument.
+    __ mov(R1, Operand(THR));
+    rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
   }
 
   __ Bind(&done);
@@ -841,13 +838,17 @@
       __ vstmd(DB_W, SP, D0, kNumberOfDRegisters);
     }
 
-  __ mov(R0, Operand(SP));  // Pass address of saved registers block.
-  bool is_lazy =
-      (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
-  __ mov(R1, Operand(is_lazy ? 1 : 0));
-  __ ReserveAlignedFrameSpace(0);
-  __ CallRuntime(kDeoptimizeCopyFrameRuntimeEntry, 2);
-  // Result (R0) is stack-size (FP - SP) in bytes.
+    {
+      __ mov(R0, Operand(SP));  // Pass address of saved registers block.
+      LeafRuntimeScope rt(assembler,
+                          /*frame_size=*/0,
+                          /*preserve_registers=*/false);
+      bool is_lazy =
+          (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
+      __ mov(R1, Operand(is_lazy ? 1 : 0));
+      rt.Call(kDeoptimizeCopyFrameRuntimeEntry, 2);
+      // Result (R0) is stack-size (FP - SP) in bytes.
+    }
 
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into R1 temporarily.
@@ -865,15 +866,19 @@
   // DeoptimizeFillFrame expects a Dart frame, i.e. EnterDartFrame(0), but there
   // is no need to set the correct PC marker or load PP, since they get patched.
   __ EnterStubFrame();
-  __ mov(R0, Operand(FP));  // Get last FP address.
   if (kind == kLazyDeoptFromReturn) {
     __ Push(R1);  // Preserve result as first local.
   } else if (kind == kLazyDeoptFromThrow) {
     __ Push(R1);  // Preserve exception as first local.
     __ Push(R2);  // Preserve stacktrace as second local.
   }
-  __ ReserveAlignedFrameSpace(0);
-  __ CallRuntime(kDeoptimizeFillFrameRuntimeEntry, 1);  // Pass last FP in R0.
+  {
+    __ mov(R0, Operand(FP));  // Get last FP address.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    rt.Call(kDeoptimizeFillFrameRuntimeEntry, 1);
+  }
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into R1.
     __ ldr(R1, Address(FP, target::frame_layout.first_local_from_fp *
@@ -1559,7 +1564,6 @@
 COMPILE_ASSERT(kWriteBarrierValueReg == R0);
 COMPILE_ASSERT(kWriteBarrierSlotReg == R9);
 static void GenerateWriteBarrierStubHelper(Assembler* assembler,
-                                           Address stub_code,
                                            bool cards) {
   Label add_to_mark_stack, remember_card, lost_race;
   __ tst(R0, Operand(1 << target::ObjectAlignment::kNewObjectBitPosition));
@@ -1618,16 +1622,12 @@
 
   // Handle overflow: Call the runtime leaf function.
   __ Bind(&overflow);
-  // Setup frame, push callee-saved registers.
-
-  __ Push(CODE_REG);
-  __ ldr(CODE_REG, stub_code);
-  __ EnterCallRuntimeFrame(0 * target::kWordSize);
-  __ mov(R0, Operand(THR));
-  __ CallRuntime(kStoreBufferBlockProcessRuntimeEntry, 1);
-  // Restore callee-saved registers, tear down frame.
-  __ LeaveCallRuntimeFrame();
-  __ Pop(CODE_REG);
+  {
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                        /*preserve_registers=*/true);
+    __ mov(R0, Operand(THR));
+    rt.Call(kStoreBufferBlockProcessRuntimeEntry, 1);
+  }
   __ Ret();
 
   __ Bind(&add_to_mark_stack);
@@ -1659,13 +1659,12 @@
   __ Ret();
 
   __ Bind(&marking_overflow);
-  __ Push(CODE_REG);
-  __ ldr(CODE_REG, stub_code);
-  __ EnterCallRuntimeFrame(0 * target::kWordSize);
-  __ mov(R0, Operand(THR));
-  __ CallRuntime(kMarkingStackBlockProcessRuntimeEntry, 1);
-  __ LeaveCallRuntimeFrame();
-  __ Pop(CODE_REG);
+  {
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                        /*preserve_registers=*/true);
+    __ mov(R0, Operand(THR));
+    rt.Call(kMarkingStackBlockProcessRuntimeEntry, 1);
+  }
   __ Ret();
 
   __ Bind(&lost_race);
@@ -1698,32 +1697,23 @@
 
     // Card table not yet allocated.
     __ Bind(&remember_card_slow);
-    __ Push(CODE_REG);
-    __ Push(R0);
-    __ Push(R1);
-    __ ldr(CODE_REG, stub_code);
-    __ mov(R0, Operand(R1));  // Arg0 = Object
-    __ mov(R1, Operand(R9));  // Arg1 = Slot
-    __ EnterCallRuntimeFrame(0);
-    __ CallRuntime(kRememberCardRuntimeEntry, 2);
-    __ LeaveCallRuntimeFrame();
-    __ Pop(R1);
-    __ Pop(R0);
-    __ Pop(CODE_REG);
+    {
+      LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                          /*preserve_registers=*/true);
+      __ mov(R0, Operand(R1));  // Arg0 = Object
+      __ mov(R1, Operand(R9));  // Arg1 = Slot
+      rt.Call(kRememberCardRuntimeEntry, 2);
+    }
     __ Ret();
   }
 }
 
 void StubCodeCompiler::GenerateWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler, Address(THR, target::Thread::write_barrier_code_offset()),
-      false);
+  GenerateWriteBarrierStubHelper(assembler, false);
 }
 
 void StubCodeCompiler::GenerateArrayWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler,
-      Address(THR, target::Thread::array_write_barrier_code_offset()), true);
+  GenerateWriteBarrierStubHelper(assembler, true);
 }
 
 static void GenerateAllocateObjectHelper(Assembler* assembler,
diff --git a/runtime/vm/compiler/stub_code_compiler_arm64.cc b/runtime/vm/compiler/stub_code_compiler_arm64.cc
index 13a3f8f..ed64ffd 100644
--- a/runtime/vm/compiler/stub_code_compiler_arm64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_arm64.cc
@@ -42,11 +42,11 @@
   __ tbnz(&done, R0, target::ObjectAlignment::kNewObjectBitPosition);
 
   {
-    Assembler::CallRuntimeScope scope(
-        assembler, kEnsureRememberedAndMarkingDeferredRuntimeEntry,
-        /*frame_size=*/0, /*preserve_registers=*/preserve_registers);
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0, preserve_registers);
+    // R0 already loaded.
     __ mov(R1, THR);
-    scope.Call(/*argument_count=*/2);
+    rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry,
+            /*argument_count=*/2);
   }
 
   __ Bind(&done);
@@ -977,13 +977,17 @@
     __ PushQuad(vreg);
   }
 
-  __ mov(R0, SP);  // Pass address of saved registers block.
-  bool is_lazy =
-      (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
-  __ LoadImmediate(R1, is_lazy ? 1 : 0);
-  __ ReserveAlignedFrameSpace(0);
-  __ CallRuntime(kDeoptimizeCopyFrameRuntimeEntry, 2);
-  // Result (R0) is stack-size (FP - SP) in bytes.
+  {
+    __ mov(R0, SP);  // Pass address of saved registers block.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    bool is_lazy =
+        (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
+    __ LoadImmediate(R1, is_lazy ? 1 : 0);
+    rt.Call(kDeoptimizeCopyFrameRuntimeEntry, 2);
+    // Result (R0) is stack-size (FP - SP) in bytes.
+  }
 
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into R1 temporarily.
@@ -1010,9 +1014,13 @@
     __ Push(R1);  // Preserve exception as first local.
     __ Push(R2);  // Preserve stacktrace as second local.
   }
-  __ ReserveAlignedFrameSpace(0);
-  __ mov(R0, FP);  // Pass last FP as parameter in R0.
-  __ CallRuntime(kDeoptimizeFillFrameRuntimeEntry, 1);
+  {
+    __ mov(R0, FP);  // Pass last FP as parameter in R0.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    rt.Call(kDeoptimizeFillFrameRuntimeEntry, 1);
+  }
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into R1.
     __ LoadFromOffset(
@@ -1737,7 +1745,6 @@
 COMPILE_ASSERT(kWriteBarrierValueReg == R0);
 COMPILE_ASSERT(kWriteBarrierSlotReg == R25);
 static void GenerateWriteBarrierStubHelper(Assembler* assembler,
-                                           Address stub_code,
                                            bool cards) {
   Label add_to_mark_stack, remember_card, lost_race;
   __ tbz(&add_to_mark_stack, R0,
@@ -1800,11 +1807,11 @@
   // Handle overflow: Call the runtime leaf function.
   __ Bind(&overflow);
   {
-    Assembler::CallRuntimeScope scope(assembler,
-                                      kStoreBufferBlockProcessRuntimeEntry,
-                                      /*frame_size=*/0, stub_code);
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/true);
     __ mov(R0, THR);
-    scope.Call(/*argument_count=*/1);
+    rt.Call(kStoreBufferBlockProcessRuntimeEntry, /*argument_count=*/1);
   }
   __ ret();
 
@@ -1842,11 +1849,11 @@
 
   __ Bind(&marking_overflow);
   {
-    Assembler::CallRuntimeScope scope(assembler,
-                                      kMarkingStackBlockProcessRuntimeEntry,
-                                      /*frame_size=*/0, stub_code);
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/true);
     __ mov(R0, THR);
-    scope.Call(/*argument_count=*/1);
+    rt.Call(kMarkingStackBlockProcessRuntimeEntry, /*argument_count=*/1);
   }
   __ ret();
 
@@ -1882,26 +1889,23 @@
     // Card table not yet allocated.
     __ Bind(&remember_card_slow);
     {
-      Assembler::CallRuntimeScope scope(assembler, kRememberCardRuntimeEntry,
-                                        /*frame_size=*/0, stub_code);
+      LeafRuntimeScope rt(assembler,
+                          /*frame_size=*/0,
+                          /*preserve_registers=*/true);
       __ mov(R0, R1);   // Arg0 = Object
       __ mov(R1, R25);  // Arg1 = Slot
-      scope.Call(/*argument_count=*/2);
+      rt.Call(kRememberCardRuntimeEntry, /*argument_count=*/2);
     }
     __ ret();
   }
 }
 
 void StubCodeCompiler::GenerateWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler, Address(THR, target::Thread::write_barrier_code_offset()),
-      false);
+  GenerateWriteBarrierStubHelper(assembler, false);
 }
 
 void StubCodeCompiler::GenerateArrayWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler,
-      Address(THR, target::Thread::array_write_barrier_code_offset()), true);
+  GenerateWriteBarrierStubHelper(assembler, true);
 }
 
 static void GenerateAllocateObjectHelper(Assembler* assembler,
diff --git a/runtime/vm/compiler/stub_code_compiler_ia32.cc b/runtime/vm/compiler/stub_code_compiler_ia32.cc
index 569c246..a40060d 100644
--- a/runtime/vm/compiler/stub_code_compiler_ia32.cc
+++ b/runtime/vm/compiler/stub_code_compiler_ia32.cc
@@ -41,16 +41,13 @@
   __ testl(EAX, Immediate(1 << target::ObjectAlignment::kNewObjectBitPosition));
   __ BranchIf(NOT_ZERO, &done);
 
-  if (preserve_registers) {
-    __ EnterCallRuntimeFrame(2 * target::kWordSize);
-  } else {
-    __ ReserveAlignedFrameSpace(2 * target::kWordSize);
-  }
-  __ movl(Address(ESP, 1 * target::kWordSize), THR);
-  __ movl(Address(ESP, 0 * target::kWordSize), EAX);
-  __ CallRuntime(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
-  if (preserve_registers) {
-    __ LeaveCallRuntimeFrame();
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/2 * target::kWordSize,
+                        preserve_registers);
+    __ movl(Address(ESP, 1 * target::kWordSize), THR);
+    __ movl(Address(ESP, 0 * target::kWordSize), EAX);
+    rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
   }
 
   __ Bind(&done);
@@ -651,15 +648,19 @@
     offset += kFpuRegisterSize;
   }
 
-  __ movl(ECX, ESP);  // Preserve saved registers block.
-  __ ReserveAlignedFrameSpace(2 * target::kWordSize);
-  __ movl(Address(ESP, 0 * target::kWordSize),
-          ECX);  // Start of register block.
-  bool is_lazy =
-      (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
-  __ movl(Address(ESP, 1 * target::kWordSize), Immediate(is_lazy ? 1 : 0));
-  __ CallRuntime(kDeoptimizeCopyFrameRuntimeEntry, 2);
-  // Result (EAX) is stack-size (FP - SP) in bytes.
+  {
+    __ movl(ECX, ESP);  // Preserve saved registers block.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/2 * target::kWordSize,
+                        /*preserve_registers=*/false);
+    bool is_lazy =
+        (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
+    __ movl(Address(ESP, 0 * target::kWordSize),
+            ECX);  // Start of register block.
+    __ movl(Address(ESP, 1 * target::kWordSize), Immediate(is_lazy ? 1 : 0));
+    rt.Call(kDeoptimizeCopyFrameRuntimeEntry, 2);
+    // Result (EAX) is stack-size (FP - SP) in bytes.
+  }
 
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into EBX temporarily.
@@ -686,9 +687,13 @@
     __ pushl(EBX);  // Preserve exception as first local.
     __ pushl(ECX);  // Preserve stacktrace as first local.
   }
-  __ ReserveAlignedFrameSpace(1 * target::kWordSize);
-  __ movl(Address(ESP, 0), EBP);  // Pass last FP as parameter on stack.
-  __ CallRuntime(kDeoptimizeFillFrameRuntimeEntry, 1);
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/1 * target::kWordSize,
+                        /*preserve_registers=*/false);
+    __ movl(Address(ESP, 0), EBP);  // Pass last FP as parameter on stack.
+    rt.Call(kDeoptimizeFillFrameRuntimeEntry, 1);
+  }
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into EBX.
     __ movl(EBX, Address(EBP, target::frame_layout.first_local_from_fp *
@@ -1324,7 +1329,6 @@
 COMPILE_ASSERT(kWriteBarrierValueReg == kNoRegister);
 COMPILE_ASSERT(kWriteBarrierSlotReg == EDI);
 static void GenerateWriteBarrierStubHelper(Assembler* assembler,
-                                           Address stub_code,
                                            bool cards) {
   Label remember_card;
 
@@ -1406,13 +1410,13 @@
 
   // Handle overflow: Call the runtime leaf function.
   __ Bind(&overflow);
-  // Setup frame, push callee-saved registers.
-
-  __ EnterCallRuntimeFrame(1 * target::kWordSize);
-  __ movl(Address(ESP, 0), THR);  // Push the thread as the only argument.
-  __ CallRuntime(kStoreBufferBlockProcessRuntimeEntry, 1);
-  // Restore callee-saved registers, tear down frame.
-  __ LeaveCallRuntimeFrame();
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/1 * target::kWordSize,
+                        /*preserve_registers=*/true);
+    __ movl(Address(ESP, 0), THR);  // Push the thread as the only argument.
+    rt.Call(kStoreBufferBlockProcessRuntimeEntry, 1);
+  }
   __ ret();
 
   __ Bind(&lost_race);
@@ -1444,11 +1448,15 @@
 
     // Card table not yet allocated.
     __ Bind(&remember_card_slow);
-    __ EnterCallRuntimeFrame(2 * target::kWordSize);
-    __ movl(Address(ESP, 0 * target::kWordSize), EDX);  // Object
-    __ movl(Address(ESP, 1 * target::kWordSize), EDI);  // Slot
-    __ CallRuntime(kRememberCardRuntimeEntry, 2);
-    __ LeaveCallRuntimeFrame();
+
+    {
+      LeafRuntimeScope rt(assembler,
+                          /*frame_size=*/2 * target::kWordSize,
+                          /*preserve_registers=*/true);
+      __ movl(Address(ESP, 0 * target::kWordSize), EDX);  // Object
+      __ movl(Address(ESP, 1 * target::kWordSize), EDI);  // Slot
+      rt.Call(kRememberCardRuntimeEntry, 2);
+    }
     __ popl(ECX);
     __ popl(EAX);
     __ ret();
@@ -1456,15 +1464,11 @@
 }
 
 void StubCodeCompiler::GenerateWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler, Address(THR, target::Thread::write_barrier_code_offset()),
-      false);
+  GenerateWriteBarrierStubHelper(assembler, false);
 }
 
 void StubCodeCompiler::GenerateArrayWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler,
-      Address(THR, target::Thread::array_write_barrier_code_offset()), true);
+  GenerateWriteBarrierStubHelper(assembler, true);
 }
 
 void StubCodeCompiler::GenerateAllocateObjectStub(Assembler* assembler) {
diff --git a/runtime/vm/compiler/stub_code_compiler_riscv.cc b/runtime/vm/compiler/stub_code_compiler_riscv.cc
index 934a2b4..20f878b 100644
--- a/runtime/vm/compiler/stub_code_compiler_riscv.cc
+++ b/runtime/vm/compiler/stub_code_compiler_riscv.cc
@@ -43,11 +43,11 @@
   __ bnez(TMP2, &done);
 
   {
-    Assembler::CallRuntimeScope scope(
-        assembler, kEnsureRememberedAndMarkingDeferredRuntimeEntry,
-        /*frame_size=*/0, /*preserve_registers=*/preserve_registers);
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0, preserve_registers);
+    // A0 already loaded.
     __ mv(A1, THR);
-    scope.Call(/*argument_count=*/2);
+    rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry,
+            /*argument_count=*/2);
   }
 
   __ Bind(&done);
@@ -894,13 +894,17 @@
     __ fsd(freg, Address(SP, i * kFpuRegisterSize));
   }
 
-  __ mv(A0, SP);  // Pass address of saved registers block.
-  bool is_lazy =
-      (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
-  __ li(A1, is_lazy ? 1 : 0);
-  __ ReserveAlignedFrameSpace(0);
-  __ CallRuntime(kDeoptimizeCopyFrameRuntimeEntry, 2);
-  // Result (A0) is stack-size (FP - SP) in bytes.
+  {
+    __ mv(A0, SP);  // Pass address of saved registers block.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    bool is_lazy =
+        (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
+    __ li(A1, is_lazy ? 1 : 0);
+    rt.Call(kDeoptimizeCopyFrameRuntimeEntry, 2);
+    // Result (A0) is stack-size (FP - SP) in bytes.
+  }
 
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into T1 temporarily.
@@ -927,9 +931,13 @@
     __ PushRegister(T1);  // Preserve exception as first local.
     __ PushRegister(T2);  // Preserve stacktrace as second local.
   }
-  __ ReserveAlignedFrameSpace(0);
-  __ mv(A0, FP);  // Pass last FP as parameter in R0.
-  __ CallRuntime(kDeoptimizeFillFrameRuntimeEntry, 1);
+  {
+    __ mv(A0, FP);  // Pass last FP as parameter in R0.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    rt.Call(kDeoptimizeFillFrameRuntimeEntry, 1);
+  }
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into T1.
     __ LoadFromOffset(
@@ -1640,7 +1648,6 @@
 COMPILE_ASSERT(kWriteBarrierValueReg == A1);
 COMPILE_ASSERT(kWriteBarrierSlotReg == A6);
 static void GenerateWriteBarrierStubHelper(Assembler* assembler,
-                                           Address stub_code,
                                            bool cards) {
   Label add_to_mark_stack, remember_card, lost_race;
   __ andi(TMP2, A1, 1 << target::ObjectAlignment::kNewObjectBitPosition);
@@ -1716,11 +1723,10 @@
   __ lx(T2, Address(SP, 2 * target::kWordSize));
   __ addi(SP, SP, 3 * target::kWordSize);
   {
-    Assembler::CallRuntimeScope scope(assembler,
-                                      kStoreBufferBlockProcessRuntimeEntry,
-                                      /*frame_size=*/0, stub_code);
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                        /*preserve_registers=*/true);
     __ mv(A0, THR);
-    scope.Call(/*argument_count=*/1);
+    rt.Call(kStoreBufferBlockProcessRuntimeEntry, /*argument_count=*/1);
   }
   __ ret();
 
@@ -1770,11 +1776,10 @@
   __ lx(T2, Address(SP, 2 * target::kWordSize));
   __ addi(SP, SP, 3 * target::kWordSize);
   {
-    Assembler::CallRuntimeScope scope(assembler,
-                                      kMarkingStackBlockProcessRuntimeEntry,
-                                      /*frame_size=*/0, stub_code);
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                        /*preserve_registers=*/true);
     __ mv(A0, THR);
-    scope.Call(/*argument_count=*/1);
+    rt.Call(kMarkingStackBlockProcessRuntimeEntry, /*argument_count=*/1);
   }
   __ ret();
 
@@ -1809,26 +1814,22 @@
     // Card table not yet allocated.
     __ Bind(&remember_card_slow);
     {
-      Assembler::CallRuntimeScope scope(assembler, kRememberCardRuntimeEntry,
-                                        /*frame_size=*/0, stub_code);
+      LeafRuntimeScope rt(assembler, /*frame_size=*/0,
+                          /*preserve_registers=*/true);
       __ mv(A0, A0);  // Arg0 = Object
       __ mv(A1, A6);  // Arg1 = Slot
-      scope.Call(/*argument_count=*/2);
+      rt.Call(kRememberCardRuntimeEntry, /*argument_count=*/2);
     }
     __ ret();
   }
 }
 
 void StubCodeCompiler::GenerateWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler, Address(THR, target::Thread::write_barrier_code_offset()),
-      false);
+  GenerateWriteBarrierStubHelper(assembler, false);
 }
 
 void StubCodeCompiler::GenerateArrayWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler,
-      Address(THR, target::Thread::array_write_barrier_code_offset()), true);
+  GenerateWriteBarrierStubHelper(assembler, true);
 }
 
 static void GenerateAllocateObjectHelper(Assembler* assembler,
diff --git a/runtime/vm/compiler/stub_code_compiler_x64.cc b/runtime/vm/compiler/stub_code_compiler_x64.cc
index 308de1d..998fac5 100644
--- a/runtime/vm/compiler/stub_code_compiler_x64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_x64.cc
@@ -45,16 +45,11 @@
   __ testq(RAX, Immediate(1 << target::ObjectAlignment::kNewObjectBitPosition));
   __ BranchIf(NOT_ZERO, &done);
 
-  if (preserve_registers) {
-    __ EnterCallRuntimeFrame(0);
-  } else {
-    __ ReserveAlignedFrameSpace(0);
-  }
-  __ movq(CallingConventions::kArg1Reg, RAX);
-  __ movq(CallingConventions::kArg2Reg, THR);
-  __ CallRuntime(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
-  if (preserve_registers) {
-    __ LeaveCallRuntimeFrame();
+  {
+    LeafRuntimeScope rt(assembler, /*frame_size=*/0, preserve_registers);
+    __ movq(CallingConventions::kArg1Reg, RAX);
+    __ movq(CallingConventions::kArg2Reg, THR);
+    rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
   }
 
   __ Bind(&done);
@@ -982,14 +977,18 @@
     offset += kFpuRegisterSize;
   }
 
-  // Pass address of saved registers block.
-  __ movq(CallingConventions::kArg1Reg, RSP);
-  bool is_lazy =
-      (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
-  __ movq(CallingConventions::kArg2Reg, Immediate(is_lazy ? 1 : 0));
-  __ ReserveAlignedFrameSpace(0);  // Ensure stack is aligned before the call.
-  __ CallRuntime(kDeoptimizeCopyFrameRuntimeEntry, 2);
-  // Result (RAX) is stack-size (FP - SP) in bytes.
+  {
+    // Pass address of saved registers block.
+    __ movq(CallingConventions::kArg1Reg, RSP);
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    bool is_lazy =
+        (kind == kLazyDeoptFromReturn) || (kind == kLazyDeoptFromThrow);
+    __ movq(CallingConventions::kArg2Reg, Immediate(is_lazy ? 1 : 0));
+    rt.Call(kDeoptimizeCopyFrameRuntimeEntry, 2);
+    // Result (RAX) is stack-size (FP - SP) in bytes.
+  }
 
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into RBX temporarily.
@@ -1021,10 +1020,13 @@
     __ pushq(RBX);  // Preserve exception as first local.
     __ pushq(RDX);  // Preserve stacktrace as second local.
   }
-  __ ReserveAlignedFrameSpace(0);
-  // Pass last FP as a parameter.
-  __ movq(CallingConventions::kArg1Reg, RBP);
-  __ CallRuntime(kDeoptimizeFillFrameRuntimeEntry, 1);
+  {
+    __ movq(CallingConventions::kArg1Reg, RBP);  // Pass last FP as a parameter.
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/false);
+    rt.Call(kDeoptimizeFillFrameRuntimeEntry, 1);
+  }
   if (kind == kLazyDeoptFromReturn) {
     // Restore result into RBX.
     __ movq(RBX, Address(RBP, target::frame_layout.first_local_from_fp *
@@ -1771,7 +1773,6 @@
 COMPILE_ASSERT(kWriteBarrierValueReg == RAX);
 COMPILE_ASSERT(kWriteBarrierSlotReg == R13);
 static void GenerateWriteBarrierStubHelper(Assembler* assembler,
-                                           Address stub_code,
                                            bool cards) {
   Label add_to_mark_stack, remember_card, lost_race;
   __ testq(RAX, Immediate(1 << target::ObjectAlignment::kNewObjectBitPosition));
@@ -1833,14 +1834,13 @@
 
   // Handle overflow: Call the runtime leaf function.
   __ Bind(&overflow);
-  // Setup frame, push callee-saved registers.
-  __ pushq(CODE_REG);
-  __ movq(CODE_REG, stub_code);
-  __ EnterCallRuntimeFrame(0);
-  __ movq(CallingConventions::kArg1Reg, THR);
-  __ CallRuntime(kStoreBufferBlockProcessRuntimeEntry, 1);
-  __ LeaveCallRuntimeFrame();
-  __ popq(CODE_REG);
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/true);
+    __ movq(CallingConventions::kArg1Reg, THR);
+    rt.Call(kStoreBufferBlockProcessRuntimeEntry, 1);
+  }
   __ ret();
 
   __ Bind(&add_to_mark_stack);
@@ -1875,13 +1875,13 @@
   __ ret();
 
   __ Bind(&marking_overflow);
-  __ pushq(CODE_REG);
-  __ movq(CODE_REG, stub_code);
-  __ EnterCallRuntimeFrame(0);
-  __ movq(CallingConventions::kArg1Reg, THR);
-  __ CallRuntime(kMarkingStackBlockProcessRuntimeEntry, 1);
-  __ LeaveCallRuntimeFrame();
-  __ popq(CODE_REG);
+  {
+    LeafRuntimeScope rt(assembler,
+                        /*frame_size=*/0,
+                        /*preserve_registers=*/true);
+    __ movq(CallingConventions::kArg1Reg, THR);
+    rt.Call(kMarkingStackBlockProcessRuntimeEntry, 1);
+  }
   __ ret();
 
   __ Bind(&lost_race);
@@ -1911,28 +1911,24 @@
 
     // Card table not yet allocated.
     __ Bind(&remember_card_slow);
-    __ pushq(CODE_REG);
-    __ movq(CODE_REG, stub_code);
-    __ EnterCallRuntimeFrame(0);
-    __ movq(CallingConventions::kArg1Reg, RDX);
-    __ movq(CallingConventions::kArg2Reg, R13);
-    __ CallRuntime(kRememberCardRuntimeEntry, 2);
-    __ LeaveCallRuntimeFrame();
-    __ popq(CODE_REG);
+    {
+      LeafRuntimeScope rt(assembler,
+                          /*frame_size=*/0,
+                          /*preserve_registers=*/true);
+      __ movq(CallingConventions::kArg1Reg, RDX);
+      __ movq(CallingConventions::kArg2Reg, R13);
+      rt.Call(kRememberCardRuntimeEntry, 2);
+    }
     __ ret();
   }
 }
 
 void StubCodeCompiler::GenerateWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler, Address(THR, target::Thread::write_barrier_code_offset()),
-      false);
+  GenerateWriteBarrierStubHelper(assembler, false);
 }
 
 void StubCodeCompiler::GenerateArrayWriteBarrierStub(Assembler* assembler) {
-  GenerateWriteBarrierStubHelper(
-      assembler,
-      Address(THR, target::Thread::array_write_barrier_code_offset()), true);
+  GenerateWriteBarrierStubHelper(assembler, true);
 }
 
 static void GenerateAllocateObjectHelper(Assembler* assembler,
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index 0d96c71..a7f00d9 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -380,6 +380,7 @@
 // List of registers used in load/store multiple.
 typedef uint32_t RegList;
 const RegList kAllCpuRegistersList = 0xFFFFFFFF;
+const RegList kAllFpuRegistersList = 0xFFFFFFFF;
 
 // See "Procedure Call Standard for the ARM 64-bit Architecture", document
 // number "ARM IHI 0055B", May 22 2013.
@@ -429,16 +430,6 @@
 const int kDartVolatileCpuRegCount = 15;
 const int kDartVolatileFpuRegCount = 24;
 
-// Two callee save scratch registers used by leaf runtime call sequence.
-const Register kCallLeafRuntimeCalleeSaveScratch1 = R20;
-const Register kCallLeafRuntimeCalleeSaveScratch2 = R25;
-static_assert((R(kCallLeafRuntimeCalleeSaveScratch1) & kAbiPreservedCpuRegs) !=
-                  0,
-              "Need callee save scratch register for leaf runtime calls.");
-static_assert((R(kCallLeafRuntimeCalleeSaveScratch2) & kAbiPreservedCpuRegs) !=
-                  0,
-              "Need callee save scratch register for leaf runtime calls.");
-
 constexpr int kStoreBufferWrapperSize = 32;
 
 class CallingConventions {
diff --git a/runtime/vm/constants_riscv.h b/runtime/vm/constants_riscv.h
index df9658f..ea4bc12 100644
--- a/runtime/vm/constants_riscv.h
+++ b/runtime/vm/constants_riscv.h
@@ -425,16 +425,6 @@
 constexpr intptr_t kReservedFpuRegisters = 0;
 constexpr intptr_t kNumberOfReservedFpuRegisters = 0;
 
-// Two callee save scratch registers used by leaf runtime call sequence.
-constexpr Register kCallLeafRuntimeCalleeSaveScratch1 = CALLEE_SAVED_TEMP;
-constexpr Register kCallLeafRuntimeCalleeSaveScratch2 = CALLEE_SAVED_TEMP2;
-static_assert((R(kCallLeafRuntimeCalleeSaveScratch1) & kAbiPreservedCpuRegs) !=
-                  0,
-              "Need callee save scratch register for leaf runtime calls.");
-static_assert((R(kCallLeafRuntimeCalleeSaveScratch2) & kAbiPreservedCpuRegs) !=
-                  0,
-              "Need callee save scratch register for leaf runtime calls.");
-
 constexpr int kStoreBufferWrapperSize = 26;
 
 class CallingConventions {
diff --git a/runtime/vm/dart_api_impl.h b/runtime/vm/dart_api_impl.h
index bb5eda5..d38bf58 100644
--- a/runtime/vm/dart_api_impl.h
+++ b/runtime/vm/dart_api_impl.h
@@ -129,7 +129,7 @@
 #define API_TIMELINE_BEGIN_END(thread)                                         \
   do {                                                                         \
   } while (false)
-#endif  // !PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 class Api : AllStatic {
  public:
diff --git a/runtime/vm/elf.cc b/runtime/vm/elf.cc
index 004c18c..bceb26e 100644
--- a/runtime/vm/elf.cc
+++ b/runtime/vm/elf.cc
@@ -1433,14 +1433,14 @@
       // Caller FP at FP+kSavedCallerPcSlotFromFp*kWordSize,
       // where FP is CFA - kCallerSpSlotFromFp*kWordSize.
       COMPILE_ASSERT((kSavedCallerFpSlotFromFp - kCallerSpSlotFromFp) <= 0);
-      cfa_offset(DWARF_FP,
-                 (kSavedCallerFpSlotFromFp - kCallerSpSlotFromFp) * kWordSize);
+      cfa_offset(DWARF_FP, (kSavedCallerFpSlotFromFp - kCallerSpSlotFromFp) *
+                               compiler::target::kWordSize);
 
       // Caller LR at FP+kSavedCallerPcSlotFromFp*kWordSize,
       // where FP is CFA - kCallerSpSlotFromFp*kWordSize
       COMPILE_ASSERT((kSavedCallerPcSlotFromFp - kCallerSpSlotFromFp) <= 0);
-      cfa_offset(DWARF_RA,
-                 (kSavedCallerPcSlotFromFp - kCallerSpSlotFromFp) * kWordSize);
+      cfa_offset(DWARF_RA, (kSavedCallerPcSlotFromFp - kCallerSpSlotFromFp) *
+                               compiler::target::kWordSize);
     });
   }
 
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 668b201..683dd4d 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -35,7 +35,6 @@
 #include "vm/raw_object.h"
 #include "vm/report.h"
 #include "vm/static_type_exactness_state.h"
-#include "vm/tags.h"
 #include "vm/thread.h"
 #include "vm/token_position.h"
 
diff --git a/runtime/vm/os_thread.h b/runtime/vm/os_thread.h
index 5df7fb2..e125847 100644
--- a/runtime/vm/os_thread.h
+++ b/runtime/vm/os_thread.h
@@ -253,7 +253,7 @@
   static void Cleanup();
 #ifdef SUPPORT_TIMELINE
   static ThreadId GetCurrentThreadTraceId();
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
   static OSThread* GetOSThreadFromThread(ThreadState* thread);
   static void AddThreadToListLocked(OSThread* thread);
   static void RemoveThreadFromList(OSThread* thread);
diff --git a/runtime/vm/os_thread_absl.cc b/runtime/vm/os_thread_absl.cc
index 15d6c33..e5887c3 100644
--- a/runtime/vm/os_thread_absl.cc
+++ b/runtime/vm/os_thread_absl.cc
@@ -219,9 +219,15 @@
 
 #ifdef SUPPORT_TIMELINE
 ThreadId OSThread::GetCurrentThreadTraceId() {
+#if defined(DART_HOST_OS_ANDROID)
+  return GetCurrentThreadId();
+#elif defined(DART_HOST_OS_LINUX)
   return syscall(__NR_gettid);
+#elif defined(DART_HOST_OS_MACOS)
+  return ThreadIdFromIntPtr(pthread_mach_thread_np(pthread_self()));
+#endif
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/os_thread_android.cc b/runtime/vm/os_thread_android.cc
index a9a1413..a55dd95 100644
--- a/runtime/vm/os_thread_android.cc
+++ b/runtime/vm/os_thread_android.cc
@@ -215,7 +215,7 @@
 ThreadId OSThread::GetCurrentThreadTraceId() {
   return GetCurrentThreadId();
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/os_thread_fuchsia.cc b/runtime/vm/os_thread_fuchsia.cc
index 3cf8193..5e47b4e 100644
--- a/runtime/vm/os_thread_fuchsia.cc
+++ b/runtime/vm/os_thread_fuchsia.cc
@@ -170,7 +170,7 @@
 ThreadId OSThread::GetCurrentThreadTraceId() {
   return pthread_self();
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/os_thread_linux.cc b/runtime/vm/os_thread_linux.cc
index ea44790..8c6368b 100644
--- a/runtime/vm/os_thread_linux.cc
+++ b/runtime/vm/os_thread_linux.cc
@@ -216,7 +216,7 @@
 ThreadId OSThread::GetCurrentThreadTraceId() {
   return syscall(__NR_gettid);
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/os_thread_macos.cc b/runtime/vm/os_thread_macos.cc
index cbbc226..7931ee7 100644
--- a/runtime/vm/os_thread_macos.cc
+++ b/runtime/vm/os_thread_macos.cc
@@ -194,7 +194,7 @@
 ThreadId OSThread::GetCurrentThreadTraceId() {
   return ThreadIdFromIntPtr(pthread_mach_thread_np(pthread_self()));
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/os_thread_win.cc b/runtime/vm/os_thread_win.cc
index 49eda86..98c95ed 100644
--- a/runtime/vm/os_thread_win.cc
+++ b/runtime/vm/os_thread_win.cc
@@ -133,7 +133,7 @@
 ThreadId OSThread::GetCurrentThreadTraceId() {
   return ::GetCurrentThreadId();
 }
-#endif  // PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 ThreadJoinId OSThread::GetCurrentThreadJoinId(OSThread* thread) {
   ASSERT(thread != NULL);
diff --git a/runtime/vm/runtime_entry.h b/runtime/vm/runtime_entry.h
index 99b6a76..db9f1f0 100644
--- a/runtime/vm/runtime_entry.h
+++ b/runtime/vm/runtime_entry.h
@@ -38,7 +38,7 @@
                bool can_lazy_deopt)
       :
 #if !defined(DART_PRECOMPILED_RUNTIME)
-        compiler::RuntimeEntry(this, &CallInternal),
+        compiler::RuntimeEntry(this),
 #endif
         name_(name),
         function_(function),
@@ -56,15 +56,6 @@
   bool can_lazy_deopt() const { return can_lazy_deopt_; }
   uword GetEntryPoint() const;
 
-  // Generate code to call the runtime entry.
-  NOT_IN_PRECOMPILED(void Call(compiler::Assembler* assembler,
-                               intptr_t argument_count) const);
-
- protected:
-  NOT_IN_PRECOMPILED(static void CallInternal(const RuntimeEntry* runtime_entry,
-                                              compiler::Assembler* assembler,
-                                              intptr_t argument_count));
-
  private:
   const char* const name_;
   const RuntimeFunction function_;
diff --git a/runtime/vm/runtime_entry_arm.cc b/runtime/vm/runtime_entry_arm.cc
index e08ebbd..9941586 100644
--- a/runtime/vm/runtime_entry_arm.cc
+++ b/runtime/vm/runtime_entry_arm.cc
@@ -39,41 +39,6 @@
   return entry;
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
-// Generate code to call into the stub which will call the runtime
-// function. Input for the stub is as follows:
-//   SP : points to the arguments and return value array.
-//   R9 : address of the runtime function to call.
-//   R4 : number of arguments to the call.
-void RuntimeEntry::CallInternal(const RuntimeEntry* runtime_entry,
-                                compiler::Assembler* assembler,
-                                intptr_t argument_count) {
-  if (runtime_entry->is_leaf()) {
-    ASSERT(argument_count == runtime_entry->argument_count());
-    __ LoadFromOffset(
-        TMP, THR, compiler::target::Thread::OffsetFromThread(runtime_entry));
-    __ str(TMP,
-           compiler::Address(THR, compiler::target::Thread::vm_tag_offset()));
-    __ blx(TMP);
-    __ LoadImmediate(TMP, VMTag::kDartTagId);
-    __ str(TMP,
-           compiler::Address(THR, compiler::target::Thread::vm_tag_offset()));
-    // These registers must be preserved by runtime functions, otherwise
-    // we'd need to restore them here.
-    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
-    COMPILE_ASSERT(IsCalleeSavedRegister(PP));
-    COMPILE_ASSERT(IsCalleeSavedRegister(CODE_REG));
-  } else {
-    // Argument count is not checked here, but in the runtime entry for a more
-    // informative error message.
-    __ LoadFromOffset(
-        R9, THR, compiler::target::Thread::OffsetFromThread(runtime_entry));
-    __ LoadImmediate(R4, argument_count);
-    __ BranchLinkToRuntime();
-  }
-}
-#endif  // !defined(DART_PRECOMPILED_RUNTIME)
-
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_ARM
diff --git a/runtime/vm/runtime_entry_arm64.cc b/runtime/vm/runtime_entry_arm64.cc
index 05efb72..0a596d8 100644
--- a/runtime/vm/runtime_entry_arm64.cc
+++ b/runtime/vm/runtime_entry_arm64.cc
@@ -39,58 +39,6 @@
   return entry;
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
-// Generate code to call into the stub which will call the runtime
-// function. Input for the stub is as follows:
-//   SP : points to the arguments and return value array.
-//   R5 : address of the runtime function to call.
-//   R4 : number of arguments to the call.
-void RuntimeEntry::CallInternal(const RuntimeEntry* runtime_entry,
-                                compiler::Assembler* assembler,
-                                intptr_t argument_count) {
-  if (runtime_entry->is_leaf()) {
-    ASSERT(argument_count == runtime_entry->argument_count());
-    // Since we are entering C++ code, we must restore the C stack pointer from
-    // the stack limit to an aligned value nearer to the top of the stack.
-    // We cache the Dart stack pointer and the stack limit in callee-saved
-    // registers, then align and call, restoring CSP and SP on return from the
-    // call.
-    // This sequence may occur in an intrinsic, so don't use registers an
-    // intrinsic must preserve.
-    COMPILE_ASSERT(kCallLeafRuntimeCalleeSaveScratch1 != CODE_REG);
-    COMPILE_ASSERT(kCallLeafRuntimeCalleeSaveScratch2 != CODE_REG);
-    COMPILE_ASSERT(kCallLeafRuntimeCalleeSaveScratch1 != ARGS_DESC_REG);
-    COMPILE_ASSERT(kCallLeafRuntimeCalleeSaveScratch2 != ARGS_DESC_REG);
-    __ mov(kCallLeafRuntimeCalleeSaveScratch1, CSP);
-    __ mov(kCallLeafRuntimeCalleeSaveScratch2, SP);
-    __ ReserveAlignedFrameSpace(0);
-    __ mov(CSP, SP);
-    __ ldr(TMP,
-           compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ str(TMP, compiler::Address(THR, Thread::vm_tag_offset()));
-    __ blr(TMP);
-    __ LoadImmediate(TMP, VMTag::kDartTagId);
-    __ str(TMP, compiler::Address(THR, Thread::vm_tag_offset()));
-    __ mov(SP, kCallLeafRuntimeCalleeSaveScratch2);
-    __ mov(CSP, kCallLeafRuntimeCalleeSaveScratch1);
-    // These registers must be preserved by runtime functions, otherwise
-    // we'd need to restore them here.
-    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
-    COMPILE_ASSERT(IsCalleeSavedRegister(PP));
-    COMPILE_ASSERT(IsCalleeSavedRegister(CODE_REG));
-    COMPILE_ASSERT(IsCalleeSavedRegister(NULL_REG));
-    COMPILE_ASSERT(IsCalleeSavedRegister(HEAP_BITS));
-    COMPILE_ASSERT(IsCalleeSavedRegister(DISPATCH_TABLE_REG));
-  } else {
-    // Argument count is not checked here, but in the runtime entry for a more
-    // informative error message.
-    __ ldr(R5, compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ LoadImmediate(R4, argument_count);
-    __ BranchLinkToRuntime();
-  }
-}
-#endif  // !defined(DART_PRECOMPILED_RUNTIME)
-
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_ARM64
diff --git a/runtime/vm/runtime_entry_ia32.cc b/runtime/vm/runtime_entry_ia32.cc
index bbf92c5..2656ff4 100644
--- a/runtime/vm/runtime_entry_ia32.cc
+++ b/runtime/vm/runtime_entry_ia32.cc
@@ -18,38 +18,6 @@
   return reinterpret_cast<uword>(function());
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
-// Generate code to call into the stub which will call the runtime
-// function. Input for the stub is as follows:
-// For regular runtime calls -
-//   ESP : points to the arguments and return value array.
-//   ECX : address of the runtime function to call.
-//   EDX : number of arguments to the call as Smi.
-// For leaf calls the caller is responsible to setup the arguments
-// and look for return values based on the C calling convention.
-void RuntimeEntry::CallInternal(const RuntimeEntry* runtime_entry,
-                                compiler::Assembler* assembler,
-                                intptr_t argument_count) {
-  if (runtime_entry->is_leaf()) {
-    ASSERT(argument_count == runtime_entry->argument_count());
-    __ movl(EAX, compiler::Immediate(runtime_entry->GetEntryPoint()));
-    __ movl(compiler::Assembler::VMTagAddress(), EAX);
-    __ call(EAX);
-    __ movl(compiler::Assembler::VMTagAddress(),
-            compiler::Immediate(VMTag::kDartTagId));
-    // These registers must be preserved by runtime functions, otherwise
-    // we'd need to restore them here.
-    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
-  } else {
-    // Argument count is not checked here, but in the runtime entry for a more
-    // informative error message.
-    __ movl(ECX, compiler::Immediate(runtime_entry->GetEntryPoint()));
-    __ movl(EDX, compiler::Immediate(argument_count));
-    __ CallToRuntime();
-  }
-}
-#endif  // !defined(DART_PRECOMPILED_RUNTIME)
-
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_IA32
diff --git a/runtime/vm/runtime_entry_riscv.cc b/runtime/vm/runtime_entry_riscv.cc
index 3987176..8a03273 100644
--- a/runtime/vm/runtime_entry_riscv.cc
+++ b/runtime/vm/runtime_entry_riscv.cc
@@ -39,47 +39,6 @@
   return entry;
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
-// Generate code to call into the stub which will call the runtime
-// function. Input for the stub is as follows:
-//   SP : points to the arguments and return value array.
-//   T5 : address of the runtime function to call.
-//   T4 : number of arguments to the call.
-void RuntimeEntry::CallInternal(const RuntimeEntry* runtime_entry,
-                                compiler::Assembler* assembler,
-                                intptr_t argument_count) {
-  if (runtime_entry->is_leaf()) {
-    ASSERT(argument_count == runtime_entry->argument_count());
-    COMPILE_ASSERT(!IsAbiPreservedRegister(PP));
-    // PP is a C volatile register.
-    // SP will be aligned to the C stack alignment.
-    __ mv(CALLEE_SAVED_TEMP, PP);
-    __ mv(CALLEE_SAVED_TEMP2, SP);
-    __ lx(TMP2,
-          compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ sx(TMP2, compiler::Address(THR, Thread::vm_tag_offset()));
-    __ ReserveAlignedFrameSpace(0);
-    __ jalr(TMP2);
-    __ LoadImmediate(TMP2, VMTag::kDartTagId);
-    __ sx(TMP2, compiler::Address(THR, Thread::vm_tag_offset()));
-    __ mv(PP, CALLEE_SAVED_TEMP);
-    __ mv(SP, CALLEE_SAVED_TEMP2);
-    // These registers must be preserved by runtime functions, otherwise
-    // we'd need to restore them here.
-    COMPILE_ASSERT(IsCalleeSavedRegister(THR));
-    COMPILE_ASSERT(IsCalleeSavedRegister(NULL_REG));
-    COMPILE_ASSERT(IsCalleeSavedRegister(WRITE_BARRIER_MASK));
-    COMPILE_ASSERT(IsCalleeSavedRegister(DISPATCH_TABLE_REG));
-  } else {
-    // Argument count is not checked here, but in the runtime entry for a more
-    // informative error message.
-    __ lx(T5, compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ li(T4, argument_count);
-    __ JumpAndLinkToRuntime();
-  }
-}
-#endif  // !defined(DART_PRECOMPILED_RUNTIME)
-
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_RISCV
diff --git a/runtime/vm/runtime_entry_x64.cc b/runtime/vm/runtime_entry_x64.cc
index fe759e1..f9d0217 100644
--- a/runtime/vm/runtime_entry_x64.cc
+++ b/runtime/vm/runtime_entry_x64.cc
@@ -20,40 +20,6 @@
   return reinterpret_cast<uword>(function());
 }
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
-// Generate code to call into the stub which will call the runtime
-// function. Input for the stub is as follows:
-//   RSP : points to the arguments and return value array.
-//   RBX : address of the runtime function to call.
-//   R10 : number of arguments to the call.
-void RuntimeEntry::CallInternal(const RuntimeEntry* runtime_entry,
-                                compiler::Assembler* assembler,
-                                intptr_t argument_count) {
-  if (runtime_entry->is_leaf()) {
-    ASSERT(argument_count == runtime_entry->argument_count());
-    COMPILE_ASSERT(CallingConventions::kVolatileCpuRegisters & (1 << RAX));
-    __ movq(RAX,
-            compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ movq(compiler::Assembler::VMTagAddress(), RAX);
-    __ CallCFunction(RAX);
-    __ movq(compiler::Assembler::VMTagAddress(),
-            compiler::Immediate(VMTag::kDartTagId));
-    // These registers must be preserved by runtime functions, otherwise
-    // we'd need to restore them here.
-    ASSERT(IsCalleeSavedRegister(THR));
-    ASSERT(IsCalleeSavedRegister(PP));
-    ASSERT(IsCalleeSavedRegister(CODE_REG));
-  } else {
-    // Argument count is not checked here, but in the runtime entry for a more
-    // informative error message.
-    __ movq(RBX,
-            compiler::Address(THR, Thread::OffsetFromThread(runtime_entry)));
-    __ LoadImmediate(R10, compiler::Immediate(argument_count));
-    __ CallToRuntime();
-  }
-}
-#endif  // !defined(DART_PRECOMPILED_RUNTIME)
-
 }  // namespace dart
 
 #endif  // defined TARGET_ARCH_X64
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index 6bb1c20..d4f8fbc 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -966,6 +966,19 @@
     if ((instr != NULL) && (reg == R31) && !Utils::IsAligned(value, 16)) {
       UnalignedAccess("CSP set", value, instr);
     }
+
+#if defined(DEBUG)
+    if (reg == SP) {
+      // Memory below CSP can be written to at any instruction boundary by a
+      // signal handler. Simulate this to ensure we're keeping CSP far enough
+      // ahead of SP to prevent Dart frames from being trashed.
+      uword csp = registers_[R31];
+      WriteX(csp - 1 * kWordSize, icount_, NULL);
+      WriteX(csp - 2 * kWordSize, icount_, NULL);
+      WriteX(csp - 3 * kWordSize, icount_, NULL);
+      WriteX(csp - 4 * kWordSize, icount_, NULL);
+    }
+#endif
   }
 }
 
diff --git a/runtime/vm/stub_code_arm64_test.cc b/runtime/vm/stub_code_arm64_test.cc
index 9814bba..28c2c1b 100644
--- a/runtime/vm/stub_code_arm64_test.cc
+++ b/runtime/vm/stub_code_arm64_test.cc
@@ -81,12 +81,16 @@
   const Smi& rhs_index = Smi::ZoneHandle(Smi::New(rhs_index_value));
   const Smi& length = Smi::ZoneHandle(Smi::New(length_value));
   __ EnterDartFrame(0);
-  __ ReserveAlignedFrameSpace(0);
-  __ LoadObject(R0, str);
-  __ LoadObject(R1, lhs_index);
-  __ LoadObject(R2, rhs_index);
-  __ LoadObject(R3, length);
-  __ CallRuntime(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  {
+    compiler::LeafRuntimeScope rt(assembler,
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    __ LoadObject(R0, str);
+    __ LoadObject(R1, lhs_index);
+    __ LoadObject(R2, rhs_index);
+    __ LoadObject(R3, length);
+    rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  }
   __ LeaveDartFrame();
   __ ret();  // Return value is in R0.
 }
@@ -107,6 +111,10 @@
   const Code& code = Code::Handle(Code::FinalizeCodeAndNotify(
       *CreateFunction("Test_CallLeafRuntimeStubCode"), nullptr, &assembler,
       Code::PoolAttachment::kAttachPool));
+  if (FLAG_disassemble) {
+    OS::PrintErr("Disassemble:\n");
+    code.Disassemble();
+  }
   const Function& function = RegisterFakeFunction(kName, code);
   Instance& result = Instance::Handle();
   result ^= DartEntry::InvokeFunction(function, Object::empty_array());
diff --git a/runtime/vm/stub_code_arm_test.cc b/runtime/vm/stub_code_arm_test.cc
index 9fee1fd..a905113 100644
--- a/runtime/vm/stub_code_arm_test.cc
+++ b/runtime/vm/stub_code_arm_test.cc
@@ -80,12 +80,16 @@
   const Smi& rhs_index = Smi::ZoneHandle(Smi::New(rhs_index_value));
   const Smi& length = Smi::ZoneHandle(Smi::New(length_value));
   __ EnterDartFrame(0);
-  __ ReserveAlignedFrameSpace(0);
-  __ LoadObject(R0, str);
-  __ LoadObject(R1, lhs_index);
-  __ LoadObject(R2, rhs_index);
-  __ LoadObject(R3, length);
-  __ CallRuntime(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  {
+    compiler::LeafRuntimeScope rt(assembler,
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    __ LoadObject(R0, str);
+    __ LoadObject(R1, lhs_index);
+    __ LoadObject(R2, rhs_index);
+    __ LoadObject(R3, length);
+    rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  }
   __ LeaveDartFrameAndReturn();  // Return value is in R0.
 }
 
@@ -105,6 +109,10 @@
   const Code& code = Code::Handle(Code::FinalizeCodeAndNotify(
       *CreateFunction("Test_CallLeafRuntimeStubCode"), nullptr, &assembler,
       Code::PoolAttachment::kAttachPool));
+  if (FLAG_disassemble) {
+    OS::PrintErr("Disassemble:\n");
+    code.Disassemble();
+  }
   const Function& function = RegisterFakeFunction(kName, code);
   Instance& result = Instance::Handle();
   result ^= DartEntry::InvokeFunction(function, Object::empty_array());
diff --git a/runtime/vm/stub_code_ia32_test.cc b/runtime/vm/stub_code_ia32_test.cc
index 13473ad..b7f5ec1 100644
--- a/runtime/vm/stub_code_ia32_test.cc
+++ b/runtime/vm/stub_code_ia32_test.cc
@@ -80,16 +80,20 @@
   const Smi& rhs_index = Smi::ZoneHandle(Smi::New(rhs_index_value));
   const Smi& length = Smi::ZoneHandle(Smi::New(length_value));
   __ enter(compiler::Immediate(0));
-  __ ReserveAlignedFrameSpace(4 * kWordSize);
-  __ LoadObject(EAX, str);
-  __ movl(compiler::Address(ESP, 0), EAX);  // Push argument 1.
-  __ LoadObject(EAX, lhs_index);
-  __ movl(compiler::Address(ESP, kWordSize), EAX);  // Push argument 2.
-  __ LoadObject(EAX, rhs_index);
-  __ movl(compiler::Address(ESP, 2 * kWordSize), EAX);  // Push argument 3.
-  __ LoadObject(EAX, length);
-  __ movl(compiler::Address(ESP, 3 * kWordSize), EAX);  // Push argument 4.
-  __ CallRuntime(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  {
+    compiler::LeafRuntimeScope rt(assembler,
+                                  /*frame_size=*/4 * kWordSize,
+                                  /*preserve_registers=*/false);
+    __ LoadObject(EAX, str);
+    __ movl(compiler::Address(ESP, 0), EAX);  // Push argument 1.
+    __ LoadObject(EAX, lhs_index);
+    __ movl(compiler::Address(ESP, kWordSize), EAX);  // Push argument 2.
+    __ LoadObject(EAX, rhs_index);
+    __ movl(compiler::Address(ESP, 2 * kWordSize), EAX);  // Push argument 3.
+    __ LoadObject(EAX, length);
+    __ movl(compiler::Address(ESP, 3 * kWordSize), EAX);  // Push argument 4.
+    rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  }
   __ leave();
   __ ret();  // Return value is in EAX.
 }
@@ -109,6 +113,10 @@
   const Code& code = Code::Handle(Code::FinalizeCodeAndNotify(
       *CreateFunction("Test_CallLeafRuntimeStubCode"), nullptr, &assembler,
       Code::PoolAttachment::kAttachPool));
+  if (FLAG_disassemble) {
+    OS::PrintErr("Disassemble:\n");
+    code.Disassemble();
+  }
   const Function& function = RegisterFakeFunction(kName, code);
   Instance& result = Instance::Handle();
   result ^= DartEntry::InvokeFunction(function, Object::empty_array());
diff --git a/runtime/vm/stub_code_riscv_test.cc b/runtime/vm/stub_code_riscv_test.cc
index df605de..d97a775 100644
--- a/runtime/vm/stub_code_riscv_test.cc
+++ b/runtime/vm/stub_code_riscv_test.cc
@@ -81,12 +81,16 @@
   const Smi& rhs_index = Smi::ZoneHandle(Smi::New(rhs_index_value));
   const Smi& length = Smi::ZoneHandle(Smi::New(length_value));
   __ EnterDartFrame(0);
-  __ ReserveAlignedFrameSpace(0);
-  __ LoadObject(A0, str);
-  __ LoadObject(A1, lhs_index);
-  __ LoadObject(A2, rhs_index);
-  __ LoadObject(A3, length);
-  __ CallRuntime(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  {
+    compiler::LeafRuntimeScope rt(assembler,
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    __ LoadObject(A0, str);
+    __ LoadObject(A1, lhs_index);
+    __ LoadObject(A2, rhs_index);
+    __ LoadObject(A3, length);
+    rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  }
   __ LeaveDartFrame();
   __ ret();  // Return value is in A0.
 }
@@ -107,6 +111,10 @@
   const Code& code = Code::Handle(Code::FinalizeCodeAndNotify(
       *CreateFunction("Test_CallLeafRuntimeStubCode"), nullptr, &assembler,
       Code::PoolAttachment::kAttachPool));
+  if (FLAG_disassemble) {
+    OS::PrintErr("Disassemble:\n");
+    code.Disassemble();
+  }
   const Function& function = RegisterFakeFunction(kName, code);
   Instance& result = Instance::Handle();
   result ^= DartEntry::InvokeFunction(function, Object::empty_array());
diff --git a/runtime/vm/stub_code_x64_test.cc b/runtime/vm/stub_code_x64_test.cc
index c586af8..d1d85c6 100644
--- a/runtime/vm/stub_code_x64_test.cc
+++ b/runtime/vm/stub_code_x64_test.cc
@@ -81,12 +81,16 @@
   const Smi& rhs_index = Smi::ZoneHandle(Smi::New(rhs_index_value));
   const Smi& length = Smi::ZoneHandle(Smi::New(length_value));
   __ EnterStubFrame();
-  __ ReserveAlignedFrameSpace(0);
-  __ LoadObject(CallingConventions::kArg1Reg, str);
-  __ LoadObject(CallingConventions::kArg2Reg, lhs_index);
-  __ LoadObject(CallingConventions::kArg3Reg, rhs_index);
-  __ LoadObject(CallingConventions::kArg4Reg, length);
-  __ CallRuntime(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  {
+    compiler::LeafRuntimeScope rt(assembler,
+                                  /*frame_size=*/0,
+                                  /*preserve_registers=*/false);
+    __ LoadObject(CallingConventions::kArg1Reg, str);
+    __ LoadObject(CallingConventions::kArg2Reg, lhs_index);
+    __ LoadObject(CallingConventions::kArg3Reg, rhs_index);
+    __ LoadObject(CallingConventions::kArg4Reg, length);
+    rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
+  }
   __ LeaveStubFrame();
   __ ret();  // Return value is in RAX.
 }
@@ -107,6 +111,10 @@
   const Code& code = Code::Handle(Code::FinalizeCodeAndNotify(
       *CreateFunction("Test_CallLeafRuntimeStubCode"), nullptr, &assembler,
       Code::PoolAttachment::kAttachPool));
+  if (FLAG_disassemble) {
+    OS::PrintErr("Disassemble:\n");
+    code.Disassemble();
+  }
   const Function& function = RegisterFakeFunction(kName, code);
   Instance& result = Instance::Handle();
   result ^= DartEntry::InvokeFunction(function, Object::empty_array());
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 64209d3..15a7bd9 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -92,9 +92,6 @@
   V(TypeParameter)
 
 #define CACHED_VM_STUBS_LIST(V)                                                \
-  V(CodePtr, write_barrier_code_, StubCode::WriteBarrier().ptr(), nullptr)     \
-  V(CodePtr, array_write_barrier_code_, StubCode::ArrayWriteBarrier().ptr(),   \
-    nullptr)                                                                   \
   V(CodePtr, fix_callers_target_code_, StubCode::FixCallersTarget().ptr(),     \
     nullptr)                                                                   \
   V(CodePtr, fix_allocation_stub_code_,                                        \
diff --git a/runtime/vm/timeline.h b/runtime/vm/timeline.h
index 94998ca..6d5c062 100644
--- a/runtime/vm/timeline.h
+++ b/runtime/vm/timeline.h
@@ -547,7 +547,7 @@
 #define TIMELINE_DURATION(thread, stream, name)
 #define TIMELINE_FUNCTION_COMPILATION_DURATION(thread, name, function)
 #define TIMELINE_FUNCTION_GC_DURATION(thread, name)
-#endif  // !PRODUCT
+#endif  // SUPPORT_TIMELINE
 
 // See |TimelineBeginEndScope|.
 class TimelineEventScope : public StackResource {
diff --git a/sdk/lib/_internal/wasm/lib/errors_patch.dart b/sdk/lib/_internal/wasm/lib/errors_patch.dart
new file mode 100644
index 0000000..810e550
--- /dev/null
+++ b/sdk/lib/_internal/wasm/lib/errors_patch.dart
@@ -0,0 +1,59 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+external Never _throwObjectWithStackTrace(Object error, StackTrace stacktrace);
+
+@patch
+class Error {
+  @patch
+  static String _objectToString(Object object) {
+    return object.toString();
+  }
+
+  @patch
+  static String _stringToSafeString(String string) {
+    // TODO(joshualitt): JSON encode string.
+    return string;
+  }
+
+  @patch
+  StackTrace? get stackTrace => _stackTrace;
+
+  StackTrace? _stackTrace;
+
+  @patch
+  static Never _throw(Object error, StackTrace stackTrace) {
+    if (error is Error && error._stackTrace == null) {
+      error._stackTrace = stackTrace;
+    }
+    return _throwObjectWithStackTrace(error, stackTrace);
+  }
+}
+
+class _Error extends Error {
+  final String _message;
+
+  _Error(this._message);
+
+  @override
+  String toString() => _message;
+}
+
+class _TypeError extends _Error implements TypeError {
+  _TypeError(String message) : super('TypeError: $message');
+
+  factory _TypeError.fromMessageAndStackTrace(
+      String message, StackTrace stackTrace) {
+    final typeError = _TypeError(message);
+    typeError._stackTrace = stackTrace;
+    return typeError;
+  }
+
+  @pragma("wasm:entry-point")
+  static Never _throwNullCheckError(StackTrace stackTrace) {
+    final typeError = _TypeError.fromMessageAndStackTrace(
+        "Null check operator used on a null value", stackTrace);
+    return _throwObjectWithStackTrace(typeError, stackTrace);
+  }
+}
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 6fd5cd0..8ad4a99 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -25239,7 +25239,7 @@
 
   List<PerformanceEntry> getEntriesByType(String entryType) native;
 
-  PerformanceEntry mark(String markName, [Map? markOptions]) {
+  PerformanceEntry? mark(String markName, [Map? markOptions]) {
     if (markOptions != null) {
       var markOptions_1 = convertDartToNative_Dictionary(markOptions);
       return _mark_1(markName, markOptions_1);
@@ -25248,9 +25248,9 @@
   }
 
   @JSName('mark')
-  PerformanceEntry _mark_1(markName, markOptions) native;
+  PerformanceEntry? _mark_1(markName, markOptions) native;
   @JSName('mark')
-  PerformanceEntry _mark_2(markName) native;
+  PerformanceEntry? _mark_2(markName) native;
 
   PerformanceMeasure? measure(String measureName,
       [measureOptions_OR_startMark, String? endMark]) {
diff --git a/sdk/lib/libraries.json b/sdk/lib/libraries.json
index 6e19316..4fea98b 100644
--- a/sdk/lib/libraries.json
+++ b/sdk/lib/libraries.json
@@ -193,6 +193,7 @@
           "_internal/vm/lib/bool_patch.dart",
           "_internal/wasm/lib/date_patch.dart",
           "_internal/wasm/lib/double.dart",
+          "_internal/wasm/lib/errors_patch.dart",
           "_internal/wasm/lib/expando_patch.dart",
           "_internal/wasm/lib/function.dart",
           "_internal/wasm/lib/growable_list.dart",
diff --git a/sdk/lib/libraries.yaml b/sdk/lib/libraries.yaml
index 5c55e5a..8f4b22a 100644
--- a/sdk/lib/libraries.yaml
+++ b/sdk/lib/libraries.yaml
@@ -185,6 +185,7 @@
       - _internal/vm/lib/bool_patch.dart
       - _internal/wasm/lib/date_patch.dart
       - _internal/wasm/lib/double.dart
+      - _internal/wasm/lib/errors_patch.dart
       - _internal/wasm/lib/expando_patch.dart
       - _internal/wasm/lib/function.dart
       - _internal/wasm/lib/growable_list.dart
diff --git a/tests/lib/html/performance_api_test.dart b/tests/lib/html/performance_api_test.dart
index 553f22a..848ec9e 100644
--- a/tests/lib/html/performance_api_test.dart
+++ b/tests/lib/html/performance_api_test.dart
@@ -36,10 +36,6 @@
       window.performance.measure('measure1');
       window.performance.measure('measure2', 'mark1');
       window.performance.measure('measure3', 'mark1', 'mark2');
-      window.performance.measure('measure4', null, 'mark2');
-      window.performance.measure('measure5', 'mark1', null);
-      window.performance.measure('measure6', null, null);
-      window.performance.measure('measure7', {'start': 'mark1'});
     });
   });
 }
diff --git a/tests/lib_2/html/performance_api_test.dart b/tests/lib_2/html/performance_api_test.dart
index 60713c8..46b9ee3 100644
--- a/tests/lib_2/html/performance_api_test.dart
+++ b/tests/lib_2/html/performance_api_test.dart
@@ -33,10 +33,6 @@
       window.performance.measure('measure1');
       window.performance.measure('measure2', 'mark1');
       window.performance.measure('measure3', 'mark1', 'mark2');
-      window.performance.measure('measure4', null, 'mark2');
-      window.performance.measure('measure5', 'mark1', null);
-      window.performance.measure('measure6', null, null);
-      window.performance.measure('measure7', {'start': 'mark1'});
     });
   });
 }
diff --git a/tools/VERSION b/tools/VERSION
index d901ea1..161f191 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 229
+PRERELEASE 230
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/dom/idl/dart/dart.idl b/tools/dom/idl/dart/dart.idl
index dc37582..f877c25 100644
--- a/tools/dom/idl/dart/dart.idl
+++ b/tools/dom/idl/dart/dart.idl
@@ -601,8 +601,13 @@
     [DartSuppress, Measure] readonly attribute MemoryInfo memory;
     [Measure] readonly attribute MemoryInfo? memory;
     [DartSuppress] void mark(DOMString markName);
-    PerformanceEntry mark(DOMString markName, optional Dictionary markOptions);
+    PerformanceEntry? mark(DOMString markName, optional Dictionary markOptions);
     [DartSuppress] void measure(DOMString measureName, optional DOMString startMark = null, optional DOMString endMark = null);
+    // Note that `startMark` and `endMark` can't be null (but they can be
+    // undefined) in Firefox. Firefox also seems to disallow `measureOptions`.
+    // Safari also requires that `endMark` be non-null if `startMark` is
+    // non-null. In order to unify different browser behavior, we allow all
+    // possible syntaxes.
     PerformanceMeasure? measure(DOMString measureName, optional DOMString? startMark, optional DOMString? endMark);
     PerformanceMeasure? measure(DOMString measureName, Dictionary measureOptions);
 };