Version 2.13.0-52.0.dev
Merge commit '109d963bf98284747454f207953599fdd7e1df59' into 'dev'
diff --git a/DEPS b/DEPS
index 2c42fa1..6b65a53 100644
--- a/DEPS
+++ b/DEPS
@@ -68,7 +68,7 @@
"gperftools_revision": "180bfa10d7cb38e8b3784d60943d50e8fcef0dcb",
# Revisions of /third_party/* dependencies.
- "args_rev": "c3c7fd4ae728d03cd43e723f11d099b07045ad01",
+ "args_rev": "5f5082b7fcc41595d95d7ba002e8f51f352b3b4f",
"async_rev": "376d418b1b535030fbe3369938d2ffdbb0340a77",
"bazel_worker_rev": "060c55a933d39798681a4f533b161b81dc48d77e",
"benchmark_harness_rev": "c546dbd9f639f75cd2f75de8df2eb9f8ea15e8e7",
diff --git a/pkg/analyzer/lib/src/dart/analysis/context_locator.dart b/pkg/analyzer/lib/src/dart/analysis/context_locator.dart
index 0f9f928..0b2ec17 100644
--- a/pkg/analyzer/lib/src/dart/analysis/context_locator.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/context_locator.dart
@@ -273,15 +273,25 @@
if (excludeOptions is YamlList) {
List<String>? excludeList = toStringList(excludeOptions);
if (excludeList != null) {
+ var pathContext = resourceProvider.pathContext;
+
+ void addGlob(List<String> components) {
+ var pattern = posix.joinAll(components);
+ patterns.add(Glob(pattern, context: pathContext));
+ }
+
for (String excludedPath in excludeList) {
- Context context = resourceProvider.pathContext;
- if (context.isRelative(excludedPath)) {
- excludedPath = posix.joinAll([
- ...context.split(optionsFile.parent2.path),
- ...posix.split(excludedPath),
- ]);
+ var excludedComponents = posix.split(excludedPath);
+ if (pathContext.isRelative(excludedPath)) {
+ excludedComponents = [
+ ...pathContext.split(optionsFile.parent2.path),
+ ...excludedComponents,
+ ];
}
- patterns.add(Glob(excludedPath, context: context));
+ addGlob(excludedComponents);
+ if (excludedComponents.last == '**') {
+ addGlob(excludedComponents..removeLast());
+ }
}
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/context_locator_test.dart b/pkg/analyzer/test/src/dart/analysis/context_locator_test.dart
index aecd4cc..75fd9e3 100644
--- a/pkg/analyzer/test/src/dart/analysis/context_locator_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/context_locator_test.dart
@@ -476,16 +476,14 @@
expect(outerRoot.packagesFile, outerPackagesFile);
}
- void test_locateRoots_options_withExclude() {
- Folder rootFolder = newFolder('/test/outer');
- newFolder('/test/outer/test/data');
- File dataFile = newFile('/test/outer/test/data/test.dart');
- File optionsFile = newOptionsFile('/test/outer', content: '''
+ void test_locateRoots_options_withExclude_someFiles() {
+ Folder rootFolder = newFolder('/test/root');
+ File optionsFile = newOptionsFile('/test/root', content: '''
analyzer:
exclude:
- - test/data/**
+ - data/**.g.dart
''');
- File packagesFile = newPackagesFile('/test/outer');
+ File packagesFile = newPackagesFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -494,9 +492,114 @@
ContextRoot root = findRoot(roots, rootFolder);
expect(root.includedPaths, unorderedEquals([rootFolder.path]));
expect(root.excludedPaths, isEmpty);
- expect(root.isAnalyzed(dataFile.path), isFalse);
expect(root.optionsFile, optionsFile);
expect(root.packagesFile, packagesFile);
+
+ _assertNotAnalyzed(root, [
+ '/test/root/data/f.g.dart',
+ '/test/root/data/foo/f.g.dart',
+ '/test/root/data/foo/bar/f.g.dart',
+ ]);
+
+ _assertAnalyzed(root, [
+ '/test/root/f.g.dart',
+ '/test/root/data/f.dart',
+ '/test/root/data/foo/f.dart',
+ '/test/root/data/foo/bar/f.dart',
+ ]);
+ }
+
+ void test_locateRoots_options_withExclude_someFolders() {
+ Folder rootFolder = newFolder('/test/root');
+ File optionsFile = newOptionsFile('/test/root', content: '''
+analyzer:
+ exclude:
+ - data/**/foo/**
+''');
+ File packagesFile = newPackagesFile('/test/root');
+
+ List<ContextRoot> roots =
+ contextLocator.locateRoots(includedPaths: [rootFolder.path]);
+ expect(roots, hasLength(1));
+
+ ContextRoot root = findRoot(roots, rootFolder);
+ expect(root.includedPaths, unorderedEquals([rootFolder.path]));
+ expect(root.excludedPaths, isEmpty);
+ expect(root.optionsFile, optionsFile);
+ expect(root.packagesFile, packagesFile);
+
+ _assertNotAnalyzed(root, [
+ '/test/root/data/aaa/foo/f.dart',
+ '/test/root/data/aaa/foo/bar/f.dart',
+ ]);
+
+ _assertAnalyzed(root, [
+ '/test/root/f.dart',
+ '/test/root/data/f.dart',
+ '/test/root/data/foo/f.dart',
+ '/test/root/data/aaa/bar/f.dart',
+ ]);
+ }
+
+ void test_locateRoots_options_withExclude_wholeFolder() {
+ Folder rootFolder = newFolder('/test/root');
+ File optionsFile = newOptionsFile('/test/root', content: '''
+analyzer:
+ exclude:
+ - data/**
+''');
+ File packagesFile = newPackagesFile('/test/root');
+ Folder dataFolder = newFolder('/test/root/data');
+
+ List<ContextRoot> roots =
+ contextLocator.locateRoots(includedPaths: [rootFolder.path]);
+ expect(roots, hasLength(1));
+
+ ContextRoot root = findRoot(roots, rootFolder);
+ expect(root.includedPaths, unorderedEquals([rootFolder.path]));
+ expect(root.excludedPaths, unorderedEquals([dataFolder.path]));
+ expect(root.optionsFile, optionsFile);
+ expect(root.packagesFile, packagesFile);
+
+ _assertNotAnalyzed(root, [
+ '/test/root/data/f.dart',
+ '/test/root/data/foo/f.dart',
+ ]);
+
+ _assertAnalyzed(root, [
+ '/test/root/f.dart',
+ ]);
+ }
+
+ void test_locateRoots_options_withExclude_wholeFolder_withItsOptions() {
+ Folder rootFolder = newFolder('/test/root');
+ File optionsFile = newOptionsFile('/test/root', content: '''
+analyzer:
+ exclude:
+ - data/**
+''');
+ File packagesFile = newPackagesFile('/test/root');
+ Folder dataFolder = newFolder('/test/root/data');
+ newOptionsFile('/test/root/data', content: '');
+
+ List<ContextRoot> roots =
+ contextLocator.locateRoots(includedPaths: [rootFolder.path]);
+ expect(roots, hasLength(1));
+
+ ContextRoot root = findRoot(roots, rootFolder);
+ expect(root.includedPaths, unorderedEquals([rootFolder.path]));
+ expect(root.excludedPaths, unorderedEquals([dataFolder.path]));
+ expect(root.optionsFile, optionsFile);
+ expect(root.packagesFile, packagesFile);
+
+ _assertNotAnalyzed(root, [
+ '/test/root/data/f.dart',
+ '/test/root/data/foo/f.dart',
+ ]);
+
+ _assertAnalyzed(root, [
+ '/test/root/f.dart',
+ ]);
}
void test_locateRoots_single_dir_directOptions_directPackages() {
@@ -600,6 +703,20 @@
expect(package1Root.packagesFile, packagesFile);
}
+ void _assertAnalyzed(ContextRoot root, List<String> posixPathList) {
+ for (var posixPath in posixPathList) {
+ var path = convertPath(posixPath);
+ expect(root.isAnalyzed(path), isTrue, reason: path);
+ }
+ }
+
+ void _assertNotAnalyzed(ContextRoot root, List<String> posixPathList) {
+ for (var posixPath in posixPathList) {
+ var path = convertPath(posixPath);
+ expect(root.isAnalyzed(path), isFalse, reason: path);
+ }
+ }
+
File _newPackageConfigFile(String directoryPath) {
String path = join(
directoryPath,
diff --git a/pkg/analyzer/test/src/diagnostics/getter_not_assignable_setter_types_test.dart b/pkg/analyzer/test/src/diagnostics/getter_not_assignable_setter_types_test.dart
index 5e89733..517130b 100644
--- a/pkg/analyzer/test/src/diagnostics/getter_not_assignable_setter_types_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/getter_not_assignable_setter_types_test.dart
@@ -13,11 +13,12 @@
});
}
+/// For null safe code, `GETTER_NOT_SUBTYPE_SETTER_TYPES ` is generally reported
+/// for test cases like below, without `GETTER_NOT_ASSIGNABLE_SETTER_TYPES`.
+/// Those are covered well in their own diagnostic tests.
@reflectiveTest
class GetterNotAssignableSetterTypesTest extends PubPackageResolutionTest
with WithoutNullSafetyMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
test_class_instance_dynamicGetter() async {
await assertNoErrorsInCode(r'''
class C {
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
index 80347bb..5464092 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
@@ -13,11 +13,12 @@
});
}
+/// For null safe code, `*_ELEMENT_TYPE_NOT_ASSIGNABLE` is generally reported
+/// for test cases like below, without `INVALID_CAST_NEW_EXPR`. Those are
+/// covered well in their own diagnostic tests.
@reflectiveTest
class InvalidCastNewExprTest extends PubPackageResolutionTest
with WithoutNullSafetyMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
test_listLiteral_const() async {
await assertErrorsInCode(r'''
const c = <B>[A()];
diff --git a/pkg/analyzer/test/src/diagnostics/sdk_version_eq_eq_operator_test.dart b/pkg/analyzer/test/src/diagnostics/sdk_version_eq_eq_operator_test.dart
index 34ff26a..199e8d6 100644
--- a/pkg/analyzer/test/src/diagnostics/sdk_version_eq_eq_operator_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/sdk_version_eq_eq_operator_test.dart
@@ -5,7 +5,6 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../dart/resolution/context_collection_resolution.dart';
import 'sdk_constraint_verifier_support.dart';
main() {
@@ -15,16 +14,13 @@
}
@reflectiveTest
-class SdkVersionEqEqOperatorTest extends SdkConstraintVerifierTest
- with WithoutNullSafetyMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+class SdkVersionEqEqOperatorTest extends SdkConstraintVerifierTest {
test_left_equals() async {
await verifyVersion('2.5.0', '''
class A {
const A();
}
-const A a = A();
+const A? a = A();
const c = a == null;
''');
}
@@ -34,10 +30,10 @@
class A {
const A();
}
-const A a = A();
+const A? a = A();
const c = a == null;
''', expectedErrors: [
- error(HintCode.SDK_VERSION_EQ_EQ_OPERATOR_IN_CONST_CONTEXT, 54, 2),
+ error(HintCode.SDK_VERSION_EQ_EQ_OPERATOR_IN_CONST_CONTEXT, 55, 2),
]);
}
@@ -47,7 +43,7 @@
const A();
}
const A a = A();
-const c = null == a;
+const c = 0 == a;
''');
}
@@ -57,9 +53,9 @@
const A();
}
const A a = A();
-const c = null == a;
+const c = 0 == a;
''', expectedErrors: [
- error(HintCode.SDK_VERSION_EQ_EQ_OPERATOR_IN_CONST_CONTEXT, 57, 2),
+ error(HintCode.SDK_VERSION_EQ_EQ_OPERATOR_IN_CONST_CONTEXT, 54, 2),
]);
}
}
diff --git a/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart b/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
index b580419..c9f2359 100644
--- a/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
+++ b/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
@@ -23,10 +23,7 @@
}
@reflectiveTest
-abstract class AbstractLinterContextTest extends PubPackageResolutionTest
- with WithoutNullSafetyMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+abstract class AbstractLinterContextTest extends PubPackageResolutionTest {
late final LinterContextImpl context;
Future<void> resolve(String content) async {
diff --git a/pkg/front_end/lib/src/base/instrumentation.dart b/pkg/front_end/lib/src/base/instrumentation.dart
index 24876a6..8cf7170 100644
--- a/pkg/front_end/lib/src/base/instrumentation.dart
+++ b/pkg/front_end/lib/src/base/instrumentation.dart
@@ -2,8 +2,6 @@
// 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
-
import 'package:kernel/ast.dart' show DartType, Member;
import 'package:kernel/src/text_util.dart';
diff --git a/pkg/front_end/lib/src/fasta/kernel/member_covariance.dart b/pkg/front_end/lib/src/fasta/kernel/member_covariance.dart
index c4901b9..b33dbcd 100644
--- a/pkg/front_end/lib/src/fasta/kernel/member_covariance.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/member_covariance.dart
@@ -2,8 +2,6 @@
// 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
-
import 'dart:math';
import 'package:kernel/ast.dart';
@@ -51,27 +49,27 @@
/// The covariance mask for the positional parameters.
///
/// If no positional parameters have covariance, this is `null`.
- final List<int> _positionalParameters;
+ final List<int>? _positionalParameters;
/// The covariance mask for the named parameters with name covariance.
///
/// If no named parameters have covariance, this is `null`.
- final Map<String, int> _namedParameters;
+ final Map<String, int>? _namedParameters;
/// The generic-covariant-impl state for the type parameters.
///
/// If no type parameters are generic-covariant-impl, this is `null`.
- final List<bool> _typeParameters;
+ final List<bool>? _typeParameters;
Covariance.internal(
this._positionalParameters, this._namedParameters, this._typeParameters) {
assert(_positionalParameters == null ||
- _positionalParameters.any((element) => element != 0));
+ _positionalParameters!.any((element) => element != 0));
assert(_namedParameters == null ||
- _namedParameters.values.isNotEmpty &&
- _namedParameters.values.every((element) => element != 0));
+ _namedParameters!.values.isNotEmpty &&
+ _namedParameters!.values.every((element) => element != 0));
assert(
- _typeParameters == null || _typeParameters.any((element) => element));
+ _typeParameters == null || _typeParameters!.any((element) => element));
}
/// The empty covariance.
@@ -97,7 +95,7 @@
/// Computes the covariance for the [setter].
factory Covariance.fromSetter(Procedure setter) {
int covariance =
- covarianceFromParameter(setter.function.positionalParameters.first);
+ covarianceFromParameter(setter.function!.positionalParameters.first);
if (covariance == 0) {
return const Covariance.empty();
}
@@ -106,8 +104,8 @@
/// Computes the covariance for the [procedure].
factory Covariance.fromMethod(Procedure procedure) {
- FunctionNode function = procedure.function;
- List<int> positionalParameters;
+ FunctionNode function = procedure.function!;
+ List<int>? positionalParameters;
if (function.positionalParameters.isNotEmpty) {
for (int index = 0;
index < function.positionalParameters.length;
@@ -121,18 +119,18 @@
}
}
}
- Map<String, int> namedParameters;
+ Map<String, int>? namedParameters;
if (function.namedParameters.isNotEmpty) {
for (int index = 0; index < function.namedParameters.length; index++) {
VariableDeclaration parameter = function.namedParameters[index];
int covariance = covarianceFromParameter(parameter);
if (covariance != 0) {
namedParameters ??= {};
- namedParameters[parameter.name] = covariance;
+ namedParameters[parameter.name!] = covariance;
}
}
}
- List<bool> typeParameters;
+ List<bool>? typeParameters;
if (function.typeParameters.isNotEmpty) {
for (int index = 0; index < function.typeParameters.length; index++) {
if (function.typeParameters[index].isGenericCovariantImpl) {
@@ -156,7 +154,8 @@
/// If [forSetter] is `true`, the covariance is computed for the setter
/// aspect of [member]. Otherwise, the covariance for the getter/method aspect
/// of [member] is computed.
- factory Covariance.fromMember(Member member, {bool forSetter}) {
+ factory Covariance.fromMember(Member member, {required bool forSetter}) {
+ // ignore: unnecessary_null_comparison
assert(forSetter != null);
if (member is Procedure) {
if (member.kind == ProcedureKind.Getter) {
@@ -185,40 +184,47 @@
_typeParameters == null;
/// Returns the covariance mask for the [index]th positional parameter.
- int getPositionalVariance(int index) =>
- _positionalParameters != null && index < _positionalParameters.length
- ? _positionalParameters[index]
- : 0;
+ int getPositionalVariance(int index) {
+ List<int>? positionalParameters = _positionalParameters;
+ return positionalParameters != null && index < positionalParameters.length
+ ? positionalParameters[index]
+ : 0;
+ }
/// Returns the covariance mask for the named parameter with the [name].
- int getNamedVariance(String name) =>
- _namedParameters != null ? (_namedParameters[name] ?? 0) : 0;
+ int getNamedVariance(String name) {
+ Map<String, int>? namedParameters = _namedParameters;
+ return namedParameters != null ? (namedParameters[name] ?? 0) : 0;
+ }
/// Returns `true` if the [index]th type parameter is generic-covariant-impl.
- bool isTypeParameterGenericCovariantImpl(int index) =>
- _typeParameters != null && index < _typeParameters.length
- ? _typeParameters[index]
- : false;
+ bool isTypeParameterGenericCovariantImpl(int index) {
+ List<bool>? typeParameters = _typeParameters;
+ return typeParameters != null && index < typeParameters.length
+ ? typeParameters[index]
+ : false;
+ }
/// Returns the merge of this covariance with [other] in which parameters are
/// covariant if they are covariant in either [this] or [other].
Covariance merge(Covariance other) {
if (identical(this, other)) return this;
- List<int> positionalParameters;
+ List<int>? positionalParameters;
if (_positionalParameters == null) {
positionalParameters = other._positionalParameters;
} else if (other._positionalParameters == null) {
positionalParameters = _positionalParameters;
} else {
positionalParameters = new List<int>.filled(
- max(_positionalParameters.length, other._positionalParameters.length),
- null);
+ max(_positionalParameters!.length,
+ other._positionalParameters!.length),
+ 0);
for (int index = 0; index < positionalParameters.length; index++) {
positionalParameters[index] =
getPositionalVariance(index) | other.getPositionalVariance(index);
}
}
- Map<String, int> namedParameters;
+ Map<String, int>? namedParameters;
if (_namedParameters == null) {
namedParameters = other._namedParameters;
} else if (other._namedParameters == null) {
@@ -226,22 +232,22 @@
} else {
namedParameters = {};
Set<String> names = {
- ..._namedParameters.keys,
- ...other._namedParameters.keys
+ ..._namedParameters!.keys,
+ ...other._namedParameters!.keys
};
for (String name in names) {
namedParameters[name] =
getNamedVariance(name) | other.getNamedVariance(name);
}
}
- List<bool> typeParameters;
+ List<bool>? typeParameters;
if (_typeParameters == null) {
typeParameters = other._typeParameters;
} else if (other._typeParameters == null) {
typeParameters = _typeParameters;
} else {
typeParameters = new List<bool>.filled(
- max(_typeParameters.length, other._typeParameters.length), null);
+ max(_typeParameters!.length, other._typeParameters!.length), false);
for (int index = 0; index < typeParameters.length; index++) {
typeParameters[index] = isTypeParameterGenericCovariantImpl(index) ||
other.isTypeParameterGenericCovariantImpl(index);
@@ -263,24 +269,26 @@
void applyCovariance(Member member) {
if (isEmpty) return;
if (member is Procedure) {
- FunctionNode function = member.function;
- if (_positionalParameters != null) {
- for (int index = 0; index < _positionalParameters.length; index++) {
+ FunctionNode function = member.function!;
+ List<int>? positionalParameters = _positionalParameters;
+ if (positionalParameters != null) {
+ for (int index = 0; index < positionalParameters.length; index++) {
if (index < function.positionalParameters.length) {
- covarianceToParameter(_positionalParameters[index],
+ covarianceToParameter(positionalParameters[index],
function.positionalParameters[index]);
}
}
}
if (_namedParameters != null) {
for (VariableDeclaration parameter in function.namedParameters) {
- covarianceToParameter(getNamedVariance(parameter.name), parameter);
+ covarianceToParameter(getNamedVariance(parameter.name!), parameter);
}
}
- if (_typeParameters != null) {
- for (int index = 0; index < _typeParameters.length; index++) {
+ List<bool>? typeParameters = _typeParameters;
+ if (typeParameters != null) {
+ for (int index = 0; index < typeParameters.length; index++) {
if (index < function.typeParameters.length) {
- if (_typeParameters[index]) {
+ if (typeParameters[index]) {
function.typeParameters[index].isGenericCovariantImpl = true;
}
}
@@ -299,18 +307,21 @@
@override
int get hashCode {
int hash = 0;
- if (_positionalParameters != null) {
- for (int covariance in _positionalParameters) {
+ List<int>? positionalParameters = _positionalParameters;
+ if (positionalParameters != null) {
+ for (int covariance in positionalParameters) {
hash += covariance.hashCode * 17;
}
}
- if (_namedParameters != null) {
- for (String name in _namedParameters.keys) {
- hash += name.hashCode * 19 + _namedParameters[name].hashCode * 23;
+ Map<String, int>? namedParameters = _namedParameters;
+ if (namedParameters != null) {
+ for (String name in namedParameters.keys) {
+ hash += name.hashCode * 19 + namedParameters[name].hashCode * 23;
}
}
- if (_typeParameters != null) {
- for (bool covariance in _typeParameters) {
+ List<bool>? typeParameters = _typeParameters;
+ if (typeParameters != null) {
+ for (bool covariance in typeParameters) {
if (covariance) {
hash += covariance.hashCode * 31;
}
@@ -329,7 +340,7 @@
return false;
}
int positionalParameterCount = max(
- _positionalParameters.length, other._positionalParameters.length);
+ _positionalParameters!.length, other._positionalParameters!.length);
for (int i = 0; i < positionalParameterCount; i++) {
if (getPositionalVariance(i) != other.getPositionalVariance(i)) {
return false;
@@ -341,8 +352,8 @@
return false;
}
Set<String> names = {
- ..._namedParameters.keys,
- ...other._namedParameters.keys
+ ..._namedParameters!.keys,
+ ...other._namedParameters!.keys
};
for (String name in names) {
if (getNamedVariance(name) != other.getNamedVariance(name)) {
@@ -355,7 +366,7 @@
return false;
}
int typeParameterCount =
- max(_typeParameters.length, other._typeParameters.length);
+ max(_typeParameters!.length, other._typeParameters!.length);
for (int i = 0; i < typeParameterCount; i++) {
if (isTypeParameterGenericCovariantImpl(i) !=
other.isTypeParameterGenericCovariantImpl(i)) {
@@ -376,12 +387,13 @@
} else {
sb.write('Covariance(');
String comma = '';
- if (_positionalParameters != null) {
- for (int index = 0; index < _positionalParameters.length; index++) {
- if (_positionalParameters[index] != 0) {
+ List<int>? positionalParameters = _positionalParameters;
+ if (positionalParameters != null) {
+ for (int index = 0; index < positionalParameters.length; index++) {
+ if (positionalParameters[index] != 0) {
sb.write(comma);
sb.write('$index:');
- switch (_positionalParameters[index]) {
+ switch (positionalParameters[index]) {
case GenericCovariantImpl:
sb.write('GenericCovariantImpl');
break;
@@ -396,9 +408,10 @@
}
}
}
- if (_namedParameters != null) {
- for (String name in _namedParameters.keys) {
- int covariance = _namedParameters[name];
+ Map<String, int>? namedParameters = _namedParameters;
+ if (namedParameters != null) {
+ for (String name in namedParameters.keys) {
+ int covariance = namedParameters[name]!;
if (covariance != 0) {
sb.write(comma);
sb.write('$name:');
@@ -418,12 +431,13 @@
}
}
}
- if (_typeParameters != null) {
+ List<bool>? typeParameters = _typeParameters;
+ if (typeParameters != null) {
sb.write(comma);
sb.write('types:');
comma = '';
- for (int index = 0; index < _typeParameters.length; index++) {
- if (_typeParameters[index]) {
+ for (int index = 0; index < typeParameters.length; index++) {
+ if (typeParameters[index]) {
sb.write(comma);
sb.write('$index');
comma = ',';
diff --git a/pkg/front_end/lib/src/fasta/names.dart b/pkg/front_end/lib/src/fasta/names.dart
index ba20ec8..229b64b 100644
--- a/pkg/front_end/lib/src/fasta/names.dart
+++ b/pkg/front_end/lib/src/fasta/names.dart
@@ -2,8 +2,6 @@
// 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
-
library front_end.src.fasta.names;
import 'package:kernel/ast.dart' show Name;
diff --git a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
index a1f535a..a8d620c 100644
--- a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
@@ -180,7 +180,7 @@
scope.forEach(buildBuilders);
- _extension.onType = onType?.build(libraryBuilder);
+ _extension.onType = onType.build(libraryBuilder);
return _extension;
}
diff --git a/pkg/front_end/lib/src/fasta/target.dart b/pkg/front_end/lib/src/fasta/target.dart
index 82ecb31..8d2efd9 100644
--- a/pkg/front_end/lib/src/fasta/target.dart
+++ b/pkg/front_end/lib/src/fasta/target.dart
@@ -2,8 +2,6 @@
// 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
-
library fasta.target;
import 'package:kernel/ast.dart' show Component;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart b/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
index 7e90983..ab6c5e8 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/factor_type.dart
@@ -2,8 +2,6 @@
// 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
-
import 'package:kernel/ast.dart';
import 'package:kernel/type_environment.dart';
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_demotion.dart b/pkg/front_end/lib/src/fasta/type_inference/type_demotion.dart
index f391d17..9e4a88b 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_demotion.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_demotion.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE.md file.
-// @dart = 2.9
-
import 'package:kernel/ast.dart';
import 'package:kernel/src/replacement_visitor.dart';
@@ -28,7 +26,8 @@
for (NamedType namedParameterType in node.namedParameters) {
if (namedParameterType.type.accept(this)) return true;
}
- if (node.typedefType != null && node.typedefType.accept(this)) {
+ TypedefType? typedefType = node.typedefType;
+ if (typedefType != null && typedefType.accept(this)) {
return true;
}
return false;
@@ -106,12 +105,15 @@
final bool forNonNullableByDefault;
const _DemotionNullabilityNormalization(
- {this.demoteTypeVariables, this.forNonNullableByDefault})
+ {required this.demoteTypeVariables,
+ required this.forNonNullableByDefault})
+ // ignore: unnecessary_null_comparison
: assert(demoteTypeVariables != null),
+ // ignore: unnecessary_null_comparison
assert(forNonNullableByDefault != null);
@override
- Nullability visitNullability(DartType node) {
+ Nullability? visitNullability(DartType node) {
if (forNonNullableByDefault) {
if (node.declaredNullability == Nullability.legacy) {
return Nullability.nonNullable;
@@ -125,8 +127,8 @@
}
@override
- DartType visitTypeParameterType(TypeParameterType node, int variance) {
- Nullability newNullability = visitNullability(node);
+ DartType? visitTypeParameterType(TypeParameterType node, int variance) {
+ Nullability? newNullability = visitNullability(node);
if (demoteTypeVariables && node.promotedBound != null) {
return new TypeParameterType(
node.parameter, newNullability ?? node.declaredNullability);
diff --git a/pkg/front_end/test/fasta/generator_to_string_test.dart b/pkg/front_end/test/fasta/generator_to_string_test.dart
index 6adfa4c..88b6146 100644
--- a/pkg/front_end/test/fasta/generator_to_string_test.dart
+++ b/pkg/front_end/test/fasta/generator_to_string_test.dart
@@ -109,7 +109,7 @@
new ThisAccessGenerator(helper, token, false, false, false);
Library library = new Library(uri);
- Class cls = new Class();
+ Class cls = new Class(name: 'foo');
library.addClass(cls);
library.addProcedure(getter);
library.addProcedure(setter);
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index fd0b0bc..eaaaf4b 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -559,12 +559,12 @@
}
for (int i = 0; i < classes.length; ++i) {
Class class_ = classes[i];
- canonicalName.getChild(class_.name!).bindTo(class_.reference);
+ canonicalName.getChild(class_.name).bindTo(class_.reference);
class_.computeCanonicalNames();
}
for (int i = 0; i < extensions.length; ++i) {
Extension extension = extensions[i];
- canonicalName.getChild(extension.name!).bindTo(extension.reference);
+ canonicalName.getChild(extension.name).bindTo(extension.reference);
}
}
@@ -873,6 +873,7 @@
List<Expression> annotations = const <Expression>[];
String name;
final List<TypeParameter> typeParameters;
+ // TODO(johnniwinther): Make this non-nullable.
DartType? type;
// The following two fields describe parameters of the underlying type when
@@ -1032,8 +1033,7 @@
/// The name may contain characters that are not valid in a Dart identifier,
/// in particular, the symbol '&' is used in class names generated for mixin
/// applications.
- // TODO(johnniwinther): Make this non-nullable.
- String? name;
+ String name;
// Must match serialized bit positions.
static const int FlagAbstract = 1 << 0;
@@ -1231,7 +1231,7 @@
}
Class(
- {this.name,
+ {required this.name,
bool isAbstract: false,
bool isAnonymousMixin: false,
this.supertype,
@@ -1244,7 +1244,9 @@
List<RedirectingFactoryConstructor>? redirectingFactoryConstructors,
this.fileUri,
Reference? reference})
- : this.typeParameters = typeParameters ?? <TypeParameter>[],
+ // ignore: unnecessary_null_comparison
+ : assert(name != null),
+ this.typeParameters = typeParameters ?? <TypeParameter>[],
this.implementedTypes = implementedTypes ?? <Supertype>[],
this.fieldsInternal = fields ?? <Field>[],
this.constructorsInternal = constructors ?? <Constructor>[],
@@ -1334,18 +1336,18 @@
String get demangledName {
if (isAnonymousMixin) return nameAsMixinApplication;
- assert(!name!.contains('&'));
- return name!;
+ assert(!name.contains('&'));
+ return name;
}
String get nameAsMixinApplication {
assert(isAnonymousMixin);
- return demangleMixinApplicationName(name!);
+ return demangleMixinApplicationName(name);
}
String get nameAsMixinApplicationSubclass {
assert(isAnonymousMixin);
- return demangleMixinApplicationSubclassName(name!);
+ return demangleMixinApplicationSubclassName(name);
}
/// Members declared in this class.
@@ -1520,8 +1522,7 @@
///
/// If unnamed, the extension will be given a synthesized name by the
/// front end.
- // TODO(johnniwinther): Make this non-nullable.
- String? name;
+ String name;
/// The URI of the source file this class was loaded from.
Uri? fileUri;
@@ -1536,8 +1537,7 @@
/// class A {}
/// extension B on A {}
///
- // TODO(johnniwinther): Should this be late non-nullable?
- DartType? onType;
+ late DartType onType;
/// The members declared by the extension.
///
@@ -1546,16 +1546,21 @@
final List<ExtensionMemberDescriptor> members;
Extension(
- {this.name,
+ {required this.name,
List<TypeParameter>? typeParameters,
- this.onType,
+ DartType? onType,
List<ExtensionMemberDescriptor>? members,
this.fileUri,
Reference? reference})
- : this.typeParameters = typeParameters ?? <TypeParameter>[],
+ // ignore: unnecessary_null_comparison
+ : assert(name != null),
+ this.typeParameters = typeParameters ?? <TypeParameter>[],
this.members = members ?? <ExtensionMemberDescriptor>[],
super(reference) {
setParents(this.typeParameters, this);
+ if (onType != null) {
+ this.onType = onType;
+ }
}
Library get enclosingLibrary => parent as Library;
@@ -1569,27 +1574,24 @@
@override
void visitChildren(Visitor v) {
visitList(typeParameters, v);
- onType?.accept(v);
+ onType.accept(v);
}
@override
void transformChildren(Transformer v) {
v.transformList(typeParameters, this);
+ // ignore: unnecessary_null_comparison
if (onType != null) {
- onType = v.visitDartType(onType!);
+ onType = v.visitDartType(onType);
}
}
@override
void transformOrRemoveChildren(RemovingTransformer v) {
v.transformTypeParameterList(typeParameters, this);
+ // ignore: unnecessary_null_comparison
if (onType != null) {
- DartType newOnType = v.visitDartType(onType!, dummyDartType);
- if (identical(newOnType, dummyDartType)) {
- onType = null;
- } else {
- onType = newOnType;
- }
+ onType = v.visitDartType(onType, cannotRemoveSentinel);
}
}
@@ -1839,7 +1841,7 @@
CanonicalName? get getterCanonicalName => getterReference.canonicalName;
CanonicalName? get setterCanonicalName => setterReference?.canonicalName;
- Field.mutable(Name name,
+ Field.mutable(Name? name,
{this.type: const DynamicType(),
this.initializer,
bool isCovariant: false,
@@ -1863,7 +1865,7 @@
this.transformerFlags = transformerFlags;
}
- Field.immutable(Name name,
+ Field.immutable(Name? name,
{this.type: const DynamicType(),
this.initializer,
bool isCovariant: false,
@@ -2615,7 +2617,7 @@
ProcedureStubKind stubKind;
Reference? stubTargetReference;
- Procedure(Name name, ProcedureKind kind, FunctionNode function,
+ Procedure(Name? name, ProcedureKind kind, FunctionNode function,
{bool isAbstract: false,
bool isStatic: false,
bool isExternal: false,
@@ -2641,7 +2643,7 @@
stubTargetReference:
getMemberReferenceBasedOnProcedureKind(stubTarget, kind));
- Procedure._byReferenceRenamed(Name name, this.kind, this.function,
+ Procedure._byReferenceRenamed(Name? name, this.kind, this.function,
{bool isAbstract: false,
bool isStatic: false,
bool isExternal: false,
@@ -8657,11 +8659,12 @@
///
/// The frontend does not generate labeled statements without uses.
class LabeledStatement extends Statement {
- // TODO(johnniwinther): Make this non-nullable.
- Statement? body;
+ late Statement body;
- LabeledStatement(this.body) {
- body?.parent = this;
+ LabeledStatement(Statement? body) {
+ if (body != null) {
+ this.body = body..parent = this;
+ }
}
@override
@@ -8673,22 +8676,24 @@
@override
void visitChildren(Visitor v) {
- body?.accept(v);
+ body.accept(v);
}
@override
void transformChildren(Transformer v) {
+ // ignore: unnecessary_null_comparison
if (body != null) {
- body = v.transform(body!);
- body?.parent = this;
+ body = v.transform(body);
+ body.parent = this;
}
}
@override
void transformOrRemoveChildren(RemovingTransformer v) {
+ // ignore: unnecessary_null_comparison
if (body != null) {
- body = v.transformOrRemoveStatement(body!);
- body?.parent = this;
+ body = v.transform(body);
+ body.parent = this;
}
}
@@ -8702,7 +8707,7 @@
printer.write(printer.getLabelName(this));
printer.write(':');
printer.newLine();
- printer.writeStatement(body!);
+ printer.writeStatement(body);
}
}
@@ -9204,29 +9209,26 @@
class SwitchCase extends TreeNode {
final List<Expression> expressions;
final List<int> expressionOffsets;
- // TODO(johnniwinther): Make this non-nullable.
- Statement? body;
+ late Statement body;
bool isDefault;
- SwitchCase(this.expressions, this.expressionOffsets, this.body,
+ SwitchCase(this.expressions, this.expressionOffsets, Statement? body,
{this.isDefault: false}) {
setParents(expressions, this);
- body?.parent = this;
+ if (body != null) {
+ this.body = body..parent = this;
+ }
}
- SwitchCase.defaultCase(this.body)
+ SwitchCase.defaultCase(Statement? body)
: isDefault = true,
expressions = <Expression>[],
expressionOffsets = <int>[] {
- body?.parent = this;
+ if (body != null) {
+ this.body = body..parent = this;
+ }
}
- SwitchCase.empty()
- : expressions = <Expression>[],
- expressionOffsets = <int>[],
- body = null,
- isDefault = false;
-
@override
R accept<R>(TreeVisitor<R> v) => v.visitSwitchCase(this);
@@ -9236,24 +9238,26 @@
@override
void visitChildren(Visitor v) {
visitList(expressions, v);
- body?.accept(v);
+ body.accept(v);
}
@override
void transformChildren(Transformer v) {
v.transformList(expressions, this);
+ // ignore: unnecessary_null_comparison
if (body != null) {
- body = v.transform(body!);
- body?.parent = this;
+ body = v.transform(body);
+ body.parent = this;
}
}
@override
void transformOrRemoveChildren(RemovingTransformer v) {
v.transformExpressionList(expressions, this);
+ // ignore: unnecessary_null_comparison
if (body != null) {
- body = v.transformOrRemoveStatement(body!);
- body?.parent = this;
+ body = v.transform(body);
+ body.parent = this;
}
}
@@ -9294,7 +9298,7 @@
}
} else {
printer.write(' ');
- printer.writeStatement(body!);
+ printer.writeStatement(body);
}
printer.decIndentation();
}
@@ -13412,7 +13416,7 @@
/// This is used as the removal sentinel in [RemovingTransformer] and can be
/// used for instance as a dummy initial value for the `List.filled`
/// constructor.
-final Class dummyClass = new Class();
+final Class dummyClass = new Class(name: '');
/// Non-nullable [Constructor] dummy value.
///
@@ -13426,7 +13430,7 @@
/// This is used as the removal sentinel in [RemovingTransformer] and can be
/// used for instance as a dummy initial value for the `List.filled`
/// constructor.
-final Extension dummyExtension = new Extension();
+final Extension dummyExtension = new Extension(name: '');
/// Non-nullable [Member] dummy value.
///
@@ -13544,7 +13548,7 @@
/// This is used as the removal sentinel in [RemovingTransformer] and can be
/// used for instance as a dummy initial value for the `List.filled`
/// constructor.
-final SwitchCase dummySwitchCase = new SwitchCase.empty();
+final SwitchCase dummySwitchCase = new SwitchCase.defaultCase(dummyStatement);
/// Non-nullable [Catch] dummy value.
///
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index f6ae627..a46ee31 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -1274,17 +1274,20 @@
if (alwaysCreateNewNamedNodes) {
node = null;
}
+ Uri fileUri = readUriReference();
+ int startFileOffset = readOffset();
+ int fileOffset = readOffset();
+ int fileEndOffset = readOffset();
+ int flags = readByte();
+ String name = readStringReference();
if (node == null) {
- node = new Class(reference: reference)..dirty = false;
+ node = new Class(name: name, reference: reference)..dirty = false;
}
- Uri fileUri = readUriReference();
- node.startFileOffset = readOffset();
- node.fileOffset = readOffset();
- node.fileEndOffset = readOffset();
- int flags = readByte();
+ node.startFileOffset = startFileOffset;
+ node.fileOffset = fileOffset;
+ node.fileEndOffset = fileEndOffset;
node.flags = flags;
- String name = readStringOrNullIfEmpty();
List<Expression> annotations = readAnnotationList(node);
assert(() {
debugPath.add(node.name ?? 'normal-class');
@@ -1326,13 +1329,13 @@
if (alwaysCreateNewNamedNodes) {
node = null;
}
- if (node == null) {
- node = new Extension(reference: reference);
- }
- String name = readStringOrNullIfEmpty();
+ String name = readStringReference();
+ if (node == null) {
+ node = new Extension(name: name, reference: reference);
+ }
assert(() {
- debugPath.add(node.name ?? 'extension');
+ debugPath.add(name);
return true;
}());
@@ -2577,11 +2580,13 @@
Expression expression = readExpression();
int count = readUInt30();
List<SwitchCase> cases = new List<SwitchCase>.generate(
- count, (_) => new SwitchCase.empty(),
+ count,
+ (_) => new SwitchCase(<Expression>[], <int>[], dummyStatement,
+ isDefault: false),
growable: true);
switchCaseStack.addAll(cases);
for (int i = 0; i < cases.length; ++i) {
- readSwitchCaseInto(cases[i]);
+ _readSwitchCaseInto(cases[i]);
}
switchCaseStack.length -= count;
return new SwitchStatement(expression, cases)..fileOffset = offset;
@@ -2640,7 +2645,7 @@
return new FunctionDeclaration(variable, function)..fileOffset = offset;
}
- void readSwitchCaseInto(SwitchCase caseNode) {
+ void _readSwitchCaseInto(SwitchCase caseNode) {
int length = readUInt30();
caseNode.expressions.length = length;
caseNode.expressionOffsets.length = length;
@@ -3196,9 +3201,9 @@
}
@override
- void readSwitchCaseInto(SwitchCase caseNode) {
+ void _readSwitchCaseInto(SwitchCase caseNode) {
_associateMetadata(caseNode, _byteOffset);
- super.readSwitchCaseInto(caseNode);
+ super._readSwitchCaseInto(caseNode);
}
@override
diff --git a/pkg/kernel/lib/clone.dart b/pkg/kernel/lib/clone.dart
index 979d08f..69d6fd7 100644
--- a/pkg/kernel/lib/clone.dart
+++ b/pkg/kernel/lib/clone.dart
@@ -2,8 +2,6 @@
// 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
-
library kernel.clone;
import 'ast.dart';
@@ -30,14 +28,14 @@
/// outline elements in the source AST should be cloned to the target AST. The
/// annotations in procedure bodies are cloned unconditionally.
CloneVisitorNotMembers(
- {Map<TypeParameter, DartType> typeSubstitution,
- Map<TypeParameter, TypeParameter> typeParams,
+ {Map<TypeParameter, DartType>? typeSubstitution,
+ Map<TypeParameter, TypeParameter>? typeParams,
this.cloneAnnotations = true})
: this.typeSubstitution = ensureMutable(typeSubstitution),
this.typeParams = typeParams ?? <TypeParameter, TypeParameter>{};
static Map<TypeParameter, DartType> ensureMutable(
- Map<TypeParameter, DartType> map) {
+ Map<TypeParameter, DartType>? map) {
// We need to mutate this map, so make sure we don't use a constant map.
if (map == null || map.isEmpty) {
return <TypeParameter, DartType>{};
@@ -77,7 +75,7 @@
// The currently active file uri where we are cloning [TreeNode]s from. If
// this is set to `null` we cannot clone file offsets to newly created nodes.
// The [_cloneFileOffset] helper function will ensure this.
- Uri _activeFileUri;
+ Uri? _activeFileUri;
// If we don't know the file uri we are cloning elements from, it's not safe
// to clone file offsets either.
@@ -86,22 +84,22 @@
}
T clone<T extends TreeNode>(T node) {
- final Uri activeFileUriSaved = _activeFileUri;
+ final Uri? activeFileUriSaved = _activeFileUri;
if (node is FileUriNode) _activeFileUri = node.fileUri ?? _activeFileUri;
final TreeNode result = node.accept(this)
..fileOffset = _cloneFileOffset(node.fileOffset);
_activeFileUri = activeFileUriSaved;
- return result;
+ return result as T;
}
- TreeNode cloneOptional(TreeNode node) {
+ T? cloneOptional<T extends TreeNode>(T? node) {
if (node == null) return null;
- final Uri activeFileUriSaved = _activeFileUri;
+ final Uri? activeFileUriSaved = _activeFileUri;
if (node is FileUriNode) _activeFileUri = node.fileUri ?? _activeFileUri;
- TreeNode result = node?.accept(this);
+ TreeNode? result = node.accept(this);
if (result != null) result.fileOffset = _cloneFileOffset(node.fileOffset);
_activeFileUri = activeFileUriSaved;
- return result;
+ return result as T?;
}
/// Root entry point for cloning a subtree within the same context where the
@@ -111,12 +109,14 @@
_activeFileUri = _activeFileUriFromContext(node);
final TreeNode result = clone<T>(node);
_activeFileUri = null;
- return result;
+ return result as T;
}
- Uri _activeFileUriFromContext(TreeNode node) {
+ Uri? _activeFileUriFromContext(TreeNode? node) {
while (node != null) {
- if (node is FileUriNode && node.fileUri != null) return node.fileUri;
+ if (node is FileUriNode && node.fileUri != null) {
+ return node.fileUri!;
+ }
node = node.parent;
}
return null;
@@ -130,7 +130,7 @@
return constant;
}
- DartType visitOptionalType(DartType type) {
+ DartType? visitOptionalType(DartType? type) {
return type == null ? null : substitute(type, typeSubstitution);
}
@@ -140,11 +140,11 @@
visitVariableGet(VariableGet node) {
return new VariableGet(
- variables[node.variable], visitOptionalType(node.promotedType));
+ variables[node.variable]!, visitOptionalType(node.promotedType));
}
visitVariableSet(VariableSet node) {
- return new VariableSet(variables[node.variable], clone(node.value));
+ return new VariableSet(variables[node.variable]!, clone(node.value));
}
visitPropertyGet(PropertyGet node) {
@@ -213,7 +213,7 @@
visitConditionalExpression(ConditionalExpression node) {
return new ConditionalExpression(clone(node.condition), clone(node.then),
- clone(node.otherwise), visitOptionalType(node.staticType));
+ clone(node.otherwise), visitType(node.staticType));
}
visitStringConcatenation(StringConcatenation node) {
@@ -249,7 +249,7 @@
}
visitFileUriExpression(FileUriExpression node) {
- return new FileUriExpression(clone(node.expression), _activeFileUri);
+ return new FileUriExpression(clone(node.expression), _activeFileUri!);
}
visitIsExpression(IsExpression node) {
@@ -279,7 +279,7 @@
}
visitThrow(Throw node) {
- return new Throw(cloneOptional(node.expression));
+ return new Throw(clone(node.expression));
}
visitListLiteral(ListLiteral node) {
@@ -377,7 +377,7 @@
}
visitBreakStatement(BreakStatement node) {
- return new BreakStatement(labels[node.target]);
+ return new BreakStatement(labels[node.target]!);
}
visitWhileStatement(WhileStatement node) {
@@ -407,7 +407,7 @@
switchCases[switchCase] = new SwitchCase(
switchCase.expressions.map(clone).toList(),
new List<int>.from(switchCase.expressionOffsets),
- null,
+ dummyStatement,
isDefault: switchCase.isDefault);
}
return new SwitchStatement(
@@ -415,13 +415,13 @@
}
visitSwitchCase(SwitchCase node) {
- SwitchCase switchCase = switchCases[node];
+ SwitchCase switchCase = switchCases[node]!;
switchCase.body = clone(node.body)..parent = switchCase;
return switchCase;
}
visitContinueSwitchStatement(ContinueSwitchStatement node) {
- return new ContinueSwitchStatement(switchCases[node.target]);
+ return new ContinueSwitchStatement(switchCases[node.target]!);
}
visitIfStatement(IfStatement node) {
@@ -439,8 +439,8 @@
}
visitCatch(Catch node) {
- VariableDeclaration newException = cloneOptional(node.exception);
- VariableDeclaration newStackTrace = cloneOptional(node.stackTrace);
+ VariableDeclaration? newException = cloneOptional(node.exception);
+ VariableDeclaration? newStackTrace = cloneOptional(node.stackTrace);
return new Catch(newException, clone(node.body),
stackTrace: newStackTrace, guard: visitType(node.guard));
}
@@ -466,12 +466,12 @@
visitFunctionDeclaration(FunctionDeclaration node) {
VariableDeclaration newVariable = clone(node.variable);
- return new FunctionDeclaration(newVariable, clone(node.function));
+ return new FunctionDeclaration(newVariable, clone(node.function!));
}
void prepareTypeParameters(List<TypeParameter> typeParameters) {
for (TypeParameter node in typeParameters) {
- TypeParameter newNode = typeParams[node];
+ TypeParameter? newNode = typeParams[node];
if (newNode == null) {
newNode = new TypeParameter(node.name);
typeParams[node] = newNode;
@@ -482,10 +482,10 @@
}
visitTypeParameter(TypeParameter node) {
- TypeParameter newNode = typeParams[node];
- newNode.bound = visitType(node.bound);
+ TypeParameter newNode = typeParams[node]!;
+ newNode.bound = visitType(node.bound!);
if (node.defaultType != null) {
- newNode.defaultType = visitType(node.defaultType);
+ newNode.defaultType = visitType(node.defaultType!);
}
return newNode
..annotations = cloneAnnotations && !node.annotations.isEmpty
@@ -494,7 +494,7 @@
..flags = node.flags;
}
- TreeNode cloneFunctionNodeBody(FunctionNode node) {
+ Statement? cloneFunctionNodeBody(FunctionNode node) {
bool savedCloneAnnotations = this.cloneAnnotations;
try {
this.cloneAnnotations = true;
@@ -638,7 +638,7 @@
TreeNode visitEqualsCall(EqualsCall node) {
return new EqualsCall.byReference(clone(node.left), clone(node.right),
isNot: node.isNot,
- functionType: visitOptionalType(node.functionType),
+ functionType: visitType(node.functionType) as FunctionType,
interfaceTargetReference: node.interfaceTargetReference);
}
@@ -651,14 +651,14 @@
TreeNode visitFunctionInvocation(FunctionInvocation node) {
return new FunctionInvocation(
node.kind, clone(node.receiver), clone(node.arguments),
- functionType: visitOptionalType(node.functionType));
+ functionType: visitOptionalType(node.functionType) as FunctionType?);
}
@override
TreeNode visitInstanceGet(InstanceGet node) {
return new InstanceGet.byReference(
node.kind, clone(node.receiver), node.name,
- resultType: visitOptionalType(node.resultType),
+ resultType: visitType(node.resultType),
interfaceTargetReference: node.interfaceTargetReference);
}
@@ -666,7 +666,7 @@
TreeNode visitInstanceInvocation(InstanceInvocation node) {
return new InstanceInvocation.byReference(
node.kind, clone(node.receiver), node.name, clone(node.arguments),
- functionType: visitOptionalType(node.functionType),
+ functionType: visitType(node.functionType) as FunctionType,
interfaceTargetReference: node.interfaceTargetReference);
}
@@ -681,15 +681,15 @@
TreeNode visitInstanceTearOff(InstanceTearOff node) {
return new InstanceTearOff.byReference(
node.kind, clone(node.receiver), node.name,
- resultType: visitOptionalType(node.resultType),
+ resultType: visitType(node.resultType),
interfaceTargetReference: node.interfaceTargetReference);
}
@override
TreeNode visitLocalFunctionInvocation(LocalFunctionInvocation node) {
return new LocalFunctionInvocation(
- variables[node.variable], clone(node.arguments),
- functionType: visitOptionalType(node.functionType));
+ variables[node.variable]!, clone(node.arguments),
+ functionType: visitType(node.functionType) as FunctionType);
}
@override
@@ -710,8 +710,8 @@
/// supported.
class CloneVisitorWithMembers extends CloneVisitorNotMembers {
CloneVisitorWithMembers(
- {Map<TypeParameter, DartType> typeSubstitution,
- Map<TypeParameter, TypeParameter> typeParams,
+ {Map<TypeParameter, DartType>? typeSubstitution,
+ Map<TypeParameter, TypeParameter>? typeParams,
bool cloneAnnotations = true})
: super(
typeSubstitution: typeSubstitution,
@@ -723,12 +723,12 @@
return super.clone(node);
}
- Constructor cloneConstructor(Constructor node, Constructor referenceFrom) {
- final Uri activeFileUriSaved = _activeFileUri;
+ Constructor cloneConstructor(Constructor node, Reference? reference) {
+ final Uri? activeFileUriSaved = _activeFileUri;
_activeFileUri = node.fileUri ?? _activeFileUri;
Constructor result = new Constructor(
- super.clone(node.function),
+ super.clone(node.function!),
name: node.name,
isConst: node.isConst,
isExternal: node.isExternal,
@@ -736,7 +736,7 @@
initializers: node.initializers.map(super.clone).toList(),
transformerFlags: node.transformerFlags,
fileUri: _activeFileUri,
- reference: referenceFrom?.reference,
+ reference: reference,
)
..annotations = cloneAnnotations && !node.annotations.isEmpty
? node.annotations.map(super.clone).toList()
@@ -748,11 +748,11 @@
return result;
}
- Procedure cloneProcedure(Procedure node, Reference reference) {
- final Uri activeFileUriSaved = _activeFileUri;
+ Procedure cloneProcedure(Procedure node, Reference? reference) {
+ final Uri? activeFileUriSaved = _activeFileUri;
_activeFileUri = node.fileUri ?? _activeFileUri;
Procedure result = new Procedure(
- node.name, node.kind, super.clone(node.function),
+ node.name, node.kind, super.clone(node.function!),
reference: reference,
transformerFlags: node.transformerFlags,
fileUri: _activeFileUri,
@@ -771,8 +771,8 @@
}
Field cloneField(
- Field node, Reference getterReference, Reference setterReference) {
- final Uri activeFileUriSaved = _activeFileUri;
+ Field node, Reference? getterReference, Reference? setterReference) {
+ final Uri? activeFileUriSaved = _activeFileUri;
_activeFileUri = node.fileUri ?? _activeFileUri;
Field result;
@@ -809,9 +809,8 @@
}
RedirectingFactoryConstructor cloneRedirectingFactoryConstructor(
- RedirectingFactoryConstructor node,
- RedirectingFactoryConstructor referenceFrom) {
- final Uri activeFileUriSaved = _activeFileUri;
+ RedirectingFactoryConstructor node, Reference? reference) {
+ final Uri? activeFileUriSaved = _activeFileUri;
_activeFileUri = node.fileUri ?? _activeFileUri;
prepareTypeParameters(node.typeParameters);
@@ -828,7 +827,7 @@
namedParameters: node.namedParameters.map(super.clone).toList(),
requiredParameterCount: node.requiredParameterCount,
fileUri: _activeFileUri,
- reference: referenceFrom?.reference)
+ reference: reference)
..annotations = cloneAnnotations && !node.annotations.isEmpty
? node.annotations.map(super.clone).toList()
: const <Expression>[];
@@ -841,19 +840,20 @@
/// Cloner that resolves super calls in mixin declarations.
class MixinApplicationCloner extends CloneVisitorWithMembers {
final Class mixinApplicationClass;
- Map<Name, Member> _getterMap;
- Map<Name, Member> _setterMap;
+ Map<Name, Member>? _getterMap;
+ Map<Name, Member>? _setterMap;
MixinApplicationCloner(this.mixinApplicationClass,
- {Map<TypeParameter, DartType> typeSubstitution,
- Map<TypeParameter, TypeParameter> typeParams,
+ {Map<TypeParameter, DartType>? typeSubstitution,
+ Map<TypeParameter, TypeParameter>? typeParams,
bool cloneAnnotations = true})
: super(
typeSubstitution: typeSubstitution,
typeParams: typeParams,
cloneAnnotations: cloneAnnotations);
- Member _findSuperMember(Name name, {bool isSetter}) {
+ Member? _findSuperMember(Name name, {required bool isSetter}) {
+ // ignore: unnecessary_null_comparison
assert(isSetter != null);
Map<Name, Member> cache;
if (isSetter) {
@@ -861,11 +861,11 @@
} else {
cache = _getterMap ??= {};
}
- Member member = cache[name];
+ Member? member = cache[name];
if (member != null) {
return member;
}
- Class superClass = mixinApplicationClass.superclass;
+ Class? superClass = mixinApplicationClass.superclass;
while (superClass != null) {
for (Procedure procedure in superClass.procedures) {
if (procedure.name == name) {
@@ -905,21 +905,25 @@
@override
SuperMethodInvocation visitSuperMethodInvocation(SuperMethodInvocation node) {
- SuperMethodInvocation cloned = super.visitSuperMethodInvocation(node);
- cloned.interfaceTarget = _findSuperMember(node.name, isSetter: false);
+ SuperMethodInvocation cloned =
+ super.visitSuperMethodInvocation(node) as SuperMethodInvocation;
+ cloned.interfaceTarget =
+ _findSuperMember(node.name, isSetter: false) as Procedure?;
return cloned;
}
@override
SuperPropertyGet visitSuperPropertyGet(SuperPropertyGet node) {
- SuperPropertyGet cloned = super.visitSuperPropertyGet(node);
+ SuperPropertyGet cloned =
+ super.visitSuperPropertyGet(node) as SuperPropertyGet;
cloned.interfaceTarget = _findSuperMember(node.name, isSetter: false);
return cloned;
}
@override
SuperPropertySet visitSuperPropertySet(SuperPropertySet node) {
- SuperPropertySet cloned = super.visitSuperPropertySet(node);
+ SuperPropertySet cloned =
+ super.visitSuperPropertySet(node) as SuperPropertySet;
cloned.interfaceTarget = _findSuperMember(node.name, isSetter: true);
return cloned;
}
@@ -927,12 +931,12 @@
class CloneProcedureWithoutBody extends CloneVisitorWithMembers {
CloneProcedureWithoutBody(
- {Map<TypeParameter, DartType> typeSubstitution,
+ {Map<TypeParameter, DartType>? typeSubstitution,
bool cloneAnnotations = true})
: super(
typeSubstitution: typeSubstitution,
cloneAnnotations: cloneAnnotations);
@override
- TreeNode cloneFunctionNodeBody(FunctionNode node) => null;
+ Statement? cloneFunctionNodeBody(FunctionNode node) => null;
}
diff --git a/pkg/kernel/lib/library_index.dart b/pkg/kernel/lib/library_index.dart
index 2619b62..99ea796 100644
--- a/pkg/kernel/lib/library_index.dart
+++ b/pkg/kernel/lib/library_index.dart
@@ -141,18 +141,18 @@
_classes = <String, _MemberTable>{};
_classes![LibraryIndex.topLevel] = new _MemberTable.topLevel(this);
for (Class class_ in library.classes) {
- _classes![class_.name!] = new _MemberTable.fromClass(this, class_);
+ _classes![class_.name] = new _MemberTable.fromClass(this, class_);
}
for (Extension extension_ in library.extensions) {
- _classes![extension_.name!] =
+ _classes![extension_.name] =
new _MemberTable.fromExtension(this, extension_);
}
for (Reference reference in library.additionalExports) {
NamedNode? node = reference.node;
if (node is Class) {
- _classes![node.name!] = new _MemberTable.fromClass(this, node);
+ _classes![node.name] = new _MemberTable.fromClass(this, node);
} else if (node is Extension) {
- _classes![node.name!] = new _MemberTable.fromExtension(this, node);
+ _classes![node.name] = new _MemberTable.fromExtension(this, node);
}
}
}
diff --git a/pkg/kernel/lib/reference_from_index.dart b/pkg/kernel/lib/reference_from_index.dart
index 02efc1f..bf89186 100644
--- a/pkg/kernel/lib/reference_from_index.dart
+++ b/pkg/kernel/lib/reference_from_index.dart
@@ -2,8 +2,6 @@
// 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
-
import "ast.dart"
show
Class,
@@ -29,15 +27,15 @@
}
/// Lookup the new library and get an index of the old library.
- IndexedLibrary lookupLibrary(Library library) => _indexedLibraries[library];
+ IndexedLibrary? lookupLibrary(Library library) => _indexedLibraries[library];
}
abstract class IndexedContainer {
final Map<Name, Reference> _getterReferences = new Map<Name, Reference>();
final Map<Name, Reference> _setterReferences = new Map<Name, Reference>();
- Reference lookupGetterReference(Name name) => _getterReferences[name];
- Reference lookupSetterReference(Name name) => _setterReferences[name];
+ Reference? lookupGetterReference(Name name) => _getterReferences[name];
+ Reference? lookupSetterReference(Name name) => _setterReferences[name];
Library get library;
@@ -48,7 +46,7 @@
}
void _addProcedure(Procedure procedure) {
- Name name = procedure.name;
+ Name name = procedure.name!;
if (procedure.isSetter) {
assert(_setterReferences[name] == null);
_setterReferences[name] = procedure.reference;
@@ -64,12 +62,12 @@
void _addFields(List<Field> fields) {
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
- Name name = field.name;
+ Name name = field.name!;
assert(_getterReferences[name] == null);
_getterReferences[name] = field.getterReference;
if (field.hasSetter) {
assert(_setterReferences[name] == null);
- _setterReferences[name] = field.setterReference;
+ _setterReferences[name] = field.setterReference!;
}
}
}
@@ -105,10 +103,10 @@
_addFields(library.fields);
}
- Typedef lookupTypedef(String name) => _typedefs[name];
- Class lookupClass(String name) => _classes[name];
- IndexedClass lookupIndexedClass(String name) => _indexedClasses[name];
- Extension lookupExtension(String name) => _extensions[name];
+ Typedef? lookupTypedef(String name) => _typedefs[name];
+ Class? lookupClass(String name) => _classes[name];
+ IndexedClass? lookupIndexedClass(String name) => _indexedClasses[name];
+ Extension? lookupExtension(String name) => _extensions[name];
}
class IndexedClass extends IndexedContainer {
@@ -118,12 +116,12 @@
IndexedClass._(Class c, this.library) {
for (int i = 0; i < c.constructors.length; i++) {
Constructor constructor = c.constructors[i];
- _constructors[constructor.name] = constructor;
+ _constructors[constructor.name!] = constructor;
}
for (int i = 0; i < c.procedures.length; i++) {
Procedure procedure = c.procedures[i];
if (procedure.isFactory) {
- _constructors[procedure.name] = procedure;
+ _constructors[procedure.name!] = procedure;
} else {
_addProcedure(procedure);
}
@@ -131,5 +129,5 @@
_addFields(c.fields);
}
- Member lookupConstructor(Name name) => _constructors[name];
+ Member? lookupConstructor(Name name) => _constructors[name];
}
diff --git a/pkg/kernel/lib/src/bounds_checks.dart b/pkg/kernel/lib/src/bounds_checks.dart
index c8353fa..0d15d3b 100644
--- a/pkg/kernel/lib/src/bounds_checks.dart
+++ b/pkg/kernel/lib/src/bounds_checks.dart
@@ -2,31 +2,9 @@
// 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
-
import 'package:kernel/src/replacement_visitor.dart';
-import '../ast.dart'
- show
- BottomType,
- Class,
- DartType,
- DynamicType,
- FunctionType,
- FutureOrType,
- InterfaceType,
- InvalidType,
- Library,
- NamedType,
- NeverType,
- NullType,
- Nullability,
- TypeParameter,
- TypeParameterType,
- Typedef,
- TypedefType,
- Variance,
- VoidType;
+import '../ast.dart' hide MapEntry;
import '../type_algebra.dart' show Substitution, substitute;
@@ -39,20 +17,25 @@
import 'legacy_erasure.dart';
class TypeVariableGraph extends Graph<int> {
- List<int> vertices;
+ late List<int> vertices;
List<TypeParameter> typeParameters;
List<DartType> bounds;
// `edges[i]` is the list of indices of type variables that reference the type
// variable with the index `i` in their bounds.
- List<List<int>> edges;
+ late List<List<int>> edges;
TypeVariableGraph(this.typeParameters, this.bounds) {
assert(typeParameters.length == bounds.length);
- vertices = new List<int>.filled(typeParameters.length, null);
+ vertices = new List<int>.filled(
+ typeParameters.length,
+ // Dummy value.
+ -1);
Map<TypeParameter, int> typeParameterIndices = <TypeParameter, int>{};
- edges = new List<List<int>>.filled(typeParameters.length, null);
+ edges = new List<List<int>>.filled(typeParameters.length,
+ // Dummy value.
+ const []);
for (int i = 0; i < vertices.length; i++) {
vertices[i] = i;
typeParameterIndices[typeParameters[i]] = i;
@@ -64,7 +47,7 @@
new OccurrenceCollectorVisitor(typeParameters.toSet());
collector.visit(bounds[i]);
for (TypeParameter typeParameter in collector.occurred) {
- edges[typeParameterIndices[typeParameter]].add(i);
+ edges[typeParameterIndices[typeParameter]!].add(i);
}
}
}
@@ -104,7 +87,7 @@
void visitFunctionType(FunctionType node) {
for (TypeParameter typeParameter in node.typeParameters) {
- typeParameter.bound.accept(this);
+ typeParameter.bound!.accept(this);
typeParameter.defaultType?.accept(this);
}
for (DartType parameter in node.positionalParameters) {
@@ -174,17 +157,18 @@
List<DartType> calculateBoundsInternal(
List<TypeParameter> typeParameters, Class objectClass,
- {bool isNonNullableByDefault}) {
+ {required bool isNonNullableByDefault}) {
+ // ignore: unnecessary_null_comparison
assert(isNonNullableByDefault != null);
List<DartType> bounds =
- new List<DartType>.filled(typeParameters.length, null);
+ new List<DartType>.filled(typeParameters.length, dummyDartType);
for (int i = 0; i < typeParameters.length; i++) {
- DartType bound = typeParameters[i].bound;
+ DartType? bound = typeParameters[i].bound;
if (bound == null) {
bound = const DynamicType();
} else if (bound is InterfaceType && bound.classNode == objectClass) {
- DartType defaultType = typeParameters[i].defaultType;
+ DartType defaultType = typeParameters[i].defaultType!;
if (!(defaultType is InterfaceType &&
defaultType.classNode == objectClass)) {
bound = const DynamicType();
@@ -240,7 +224,7 @@
final TypeParameter typeParameter;
/// The enclosing type of the issue, that is, the one with [typeParameter].
- final DartType enclosingType;
+ final DartType? enclosingType;
/// The type computed from [enclosingType] for the super-boundness check.
///
@@ -251,7 +235,7 @@
/// regular-bounded, so the super-boundness check is skipped. It is set to
/// null also if the inversion didn't change the type at all, and it's not
/// helpful to show the same type to the user.
- DartType invertedType;
+ DartType? invertedType;
TypeArgumentIssue(
this.index, this.argument, this.typeParameter, this.enclosingType,
@@ -287,8 +271,6 @@
// checks for super-boundness for construction of the auxiliary type. For
// details see Dart Language Specification, Section 14.3.2 The Instantiation to
// Bound Algorithm.
-// TODO(dmitryas): Remove [typedefInstantiations] when type arguments passed to
-// typedefs are preserved in the Kernel output.
List<TypeArgumentIssue> findTypeArgumentIssues(Library library, DartType type,
TypeEnvironment typeEnvironment, SubtypeCheckMode subtypeCheckMode,
{bool allowSuperBounded = false}) {
@@ -311,7 +293,7 @@
typedefRhsResult = findTypeArgumentIssues(
library, cloned, typeEnvironment, subtypeCheckMode,
allowSuperBounded: true);
- type = functionType.typedefType;
+ type = functionType.typedefType!;
}
if (type is InterfaceType) {
@@ -325,7 +307,7 @@
for (TypeParameter parameter in type.typeParameters) {
result.addAll(findTypeArgumentIssues(
- library, parameter.bound, typeEnvironment, subtypeCheckMode,
+ library, parameter.bound!, typeEnvironment, subtypeCheckMode,
allowSuperBounded: true));
}
@@ -370,7 +352,7 @@
// Generic function types aren't allowed as type arguments either.
result.add(new TypeArgumentIssue(i, argument, variables[i], type));
} else if (variables[i].bound is! InvalidType) {
- DartType bound = substitute(variables[i].bound, substitutionMap);
+ DartType bound = substitute(variables[i].bound!, substitutionMap);
if (!library.isNonNullableByDefault) {
bound = legacyErasure(bound);
}
@@ -394,7 +376,7 @@
if (!allowSuperBounded) return result;
bool isCorrectSuperBounded = true;
- DartType invertedType =
+ DartType? invertedType =
convertSuperBoundedToRegularBounded(library, typeEnvironment, type);
// The auxiliary type is the same as [type]. At this point we know that
@@ -421,7 +403,7 @@
// Generic function types aren't allowed as type arguments either.
isCorrectSuperBounded = false;
} else if (!typeEnvironment.isSubtypeOf(argument,
- substitute(variables[i].bound, substitutionMap), subtypeCheckMode)) {
+ substitute(variables[i].bound!, substitutionMap), subtypeCheckMode)) {
isCorrectSuperBounded = false;
}
}
@@ -453,16 +435,13 @@
// checks for super-boundness for construction of the auxiliary type. For
// details see Dart Language Specification, Section 14.3.2 The Instantiation to
// Bound Algorithm.
-// TODO(dmitryas): Remove [typedefInstantiations] when type arguments passed to
-// typedefs are preserved in the Kernel output.
List<TypeArgumentIssue> findTypeArgumentIssuesForInvocation(
Library library,
List<TypeParameter> parameters,
List<DartType> arguments,
TypeEnvironment typeEnvironment,
SubtypeCheckMode subtypeCheckMode,
- DartType bottomType,
- {Map<FunctionType, List<DartType>> typedefInstantiations}) {
+ DartType bottomType) {
assert(arguments.length == parameters.length);
assert(bottomType == const NeverType.nonNullable() || bottomType is NullType);
List<TypeArgumentIssue> result = <TypeArgumentIssue>[];
@@ -478,7 +457,7 @@
// Generic function types aren't allowed as type arguments either.
result.add(new TypeArgumentIssue(i, argument, parameters[i], null));
} else if (parameters[i].bound is! InvalidType) {
- DartType bound = substitute(parameters[i].bound, substitutionMap);
+ DartType bound = substitute(parameters[i].bound!, substitutionMap);
if (!library.isNonNullableByDefault) {
bound = legacyErasure(bound);
}
@@ -506,7 +485,7 @@
/// Replaces all covariant occurrences of `dynamic`, `Object`, and `void` with
/// [BottomType] and all contravariant occurrences of `Null` and [BottomType]
/// with `Object`. Returns null if the converted type is the same as [type].
-DartType convertSuperBoundedToRegularBounded(
+DartType? convertSuperBoundedToRegularBounded(
Library clientLibrary, TypeEnvironment typeEnvironment, DartType type,
{int variance = Variance.covariant}) {
return type.accept1(
@@ -519,8 +498,11 @@
final TypeEnvironment typeEnvironment;
final bool isNonNullableByDefault;
- _SuperBoundedTypeInverter(this.typeEnvironment, {this.isNonNullableByDefault})
+ _SuperBoundedTypeInverter(this.typeEnvironment,
+ {required this.isNonNullableByDefault})
+ // ignore: unnecessary_null_comparison
: assert(typeEnvironment != null),
+ // ignore: unnecessary_null_comparison
assert(isNonNullableByDefault != null);
bool flipTop(int variance) {
@@ -567,7 +549,7 @@
}
@override
- DartType visitDynamicType(DynamicType node, int variance) {
+ DartType? visitDynamicType(DynamicType node, int variance) {
// dynamic is always a top type.
assert(isTop(node));
if (flipTop(variance)) {
@@ -578,7 +560,7 @@
}
@override
- DartType visitVoidType(VoidType node, int variance) {
+ DartType? visitVoidType(VoidType node, int variance) {
// void is always a top type.
assert(isTop(node));
if (flipTop(variance)) {
@@ -589,7 +571,7 @@
}
@override
- DartType visitInterfaceType(InterfaceType node, int variance) {
+ DartType? visitInterfaceType(InterfaceType node, int variance) {
// Check for Object-based top types.
if (isTop(node) && flipTop(variance)) {
return bottomType;
@@ -599,7 +581,7 @@
}
@override
- DartType visitFutureOrType(FutureOrType node, int variance) {
+ DartType? visitFutureOrType(FutureOrType node, int variance) {
// Check FutureOr-based top types.
if (isTop(node) && flipTop(variance)) {
return bottomType;
@@ -609,7 +591,7 @@
}
@override
- DartType visitNullType(NullType node, int variance) {
+ DartType? visitNullType(NullType node, int variance) {
// Null isn't a bottom type in NNBD.
if (isBottom(node) && flipBottom(variance)) {
return topType;
@@ -619,7 +601,7 @@
}
@override
- DartType visitNeverType(NeverType node, int variance) {
+ DartType? visitNeverType(NeverType node, int variance) {
// Depending on the variance, Never may not be a bottom type.
if (isBottom(node) && flipBottom(variance)) {
return topType;
@@ -629,7 +611,7 @@
}
@override
- DartType visitTypeParameterType(TypeParameterType node, int variance) {
+ DartType? visitTypeParameterType(TypeParameterType node, int variance) {
// Types such as X extends Never are bottom types.
if (isBottom(node) && flipBottom(variance)) {
return topType;
@@ -639,7 +621,7 @@
}
@override
- DartType visitBottomType(BottomType node, int variance) {
+ DartType? visitBottomType(BottomType node, int variance) {
// Bottom is always a bottom type.
assert(isBottom(node));
if (flipBottom(variance)) {
@@ -654,15 +636,15 @@
// TODO(dmitryas): Remove the method when the discrepancy between the NNBD
// modes is resolved.
@override
- DartType visitTypedefType(TypedefType node, int variance) {
- Nullability newNullability = visitNullability(node);
- List<DartType> newTypeArguments = null;
+ DartType? visitTypedefType(TypedefType node, int variance) {
+ Nullability? newNullability = visitNullability(node);
+ List<DartType>? newTypeArguments = null;
for (int i = 0; i < node.typeArguments.length; i++) {
// The implementation of instantiate-to-bound in legacy mode ignored the
// variance of type parameters of the typedef. This behavior is preserved
// here in passing the 'variance' parameter unchanged in for legacy
// libraries.
- DartType newTypeArgument = node.typeArguments[i].accept1(
+ DartType? newTypeArgument = node.typeArguments[i].accept1(
this,
isNonNullableByDefault
? Variance.combine(
@@ -678,15 +660,16 @@
}
int computeVariance(TypeParameter typeParameter, DartType type,
- {Map<TypeParameter, Map<DartType, int>> computedVariances}) {
+ {Map<TypeParameter, Map<DartType, int>>? computedVariances}) {
computedVariances ??= new Map<TypeParameter, Map<DartType, int>>.identity();
- computedVariances[typeParameter] ??= new Map<DartType, int>.identity();
+ Map<DartType, int> variancesFromTypeParameter =
+ computedVariances[typeParameter] ??= new Map<DartType, int>.identity();
- int variance = computedVariances[typeParameter][type];
+ int? variance = variancesFromTypeParameter[type];
if (variance != null) return variance;
- computedVariances[typeParameter][type] = VarianceCalculator._visitMarker;
+ variancesFromTypeParameter[type] = VarianceCalculator._visitMarker;
- return computedVariances[typeParameter][type] =
+ return variancesFromTypeParameter[type] =
type.accept1(new VarianceCalculator(typeParameter), computedVariances);
}
@@ -742,7 +725,7 @@
Typedef typedefNode = node.typedefNode;
TypeParameter typedefTypeParameter = typedefNode.typeParameters[i];
if (computedVariances.containsKey(typedefTypeParameter) &&
- computedVariances[typedefTypeParameter][typedefNode.type] ==
+ computedVariances[typedefTypeParameter]![typedefNode.type] ==
_visitMarker) {
throw new StateError("The typedef '${node.typedefNode.name}' "
"has a reference to itself.");
@@ -753,7 +736,7 @@
Variance.combine(
computeVariance(typeParameter, node.typeArguments[i],
computedVariances: computedVariances),
- computeVariance(typedefTypeParameter, typedefNode.type,
+ computeVariance(typedefTypeParameter, typedefNode.type!,
computedVariances: computedVariances)));
}
return result;
@@ -772,7 +755,7 @@
// variance of [typeParameter] in the entire type invariant. The
// invocation of the visitor below is made to simply figure out if
// [typeParameter] occurs in the bound.
- if (computeVariance(typeParameter, functionTypeParameter.bound,
+ if (computeVariance(typeParameter, functionTypeParameter.bound!,
computedVariances: computedVariances) !=
Variance.unrelated) {
result = Variance.invariant;
diff --git a/pkg/kernel/lib/src/future_value_type.dart b/pkg/kernel/lib/src/future_value_type.dart
index a77cef5..fb7872e 100644
--- a/pkg/kernel/lib/src/future_value_type.dart
+++ b/pkg/kernel/lib/src/future_value_type.dart
@@ -2,8 +2,6 @@
// 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
-
import '../ast.dart';
import '../core_types.dart';
@@ -19,7 +17,7 @@
/// the visitor. If not set, an exception is thrown then an unhandled
/// implementer of [DartType] is encountered.
final DartType Function(DartType node, CoreTypes coreTypes,
- DartType Function(DartType node, CoreTypes coreTypes) recursor)
+ DartType Function(DartType node, CoreTypes coreTypes) recursor)?
unhandledTypeHandler;
const FutureValueTypeVisitor({this.unhandledTypeHandler});
@@ -32,7 +30,7 @@
if (unhandledTypeHandler == null) {
throw new UnsupportedError("Unsupported type '${node.runtimeType}'.");
} else {
- return unhandledTypeHandler(node, coreTypes, visit);
+ return unhandledTypeHandler!(node, coreTypes, visit);
}
}
diff --git a/pkg/kernel/lib/src/text_util.dart b/pkg/kernel/lib/src/text_util.dart
index 873fafb..3c0f523f 100644
--- a/pkg/kernel/lib/src/text_util.dart
+++ b/pkg/kernel/lib/src/text_util.dart
@@ -85,9 +85,7 @@
}
String classNameToString(Class? node) {
- return node == null
- ? 'null'
- : node.name ?? 'null-named class ${node.runtimeType} ${node.hashCode}';
+ return node == null ? 'null' : node.name;
}
String qualifiedExtensionNameToString(Extension node,
@@ -124,10 +122,7 @@
}
String extensionNameToString(Extension? node) {
- return node == null
- ? 'null'
- : node.name ??
- 'null-named extension ${node.runtimeType} ${node.hashCode}';
+ return node == null ? 'null' : node.name;
}
String qualifiedTypedefNameToString(Typedef node,
diff --git a/pkg/kernel/lib/target/changed_structure_notifier.dart b/pkg/kernel/lib/target/changed_structure_notifier.dart
index 228a5d2..e1b2c7f 100644
--- a/pkg/kernel/lib/target/changed_structure_notifier.dart
+++ b/pkg/kernel/lib/target/changed_structure_notifier.dart
@@ -2,8 +2,6 @@
// 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
-
import 'package:kernel/ast.dart' show Class;
/// Meant for notifying the backend (the compiler) that the structure has
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 871f92b..c5311c3 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -112,9 +112,7 @@
}
String debugClassName(Class? node) {
- return node == null
- ? 'null'
- : node.name ?? globalDebuggingNames.nameClass(node);
+ return node == null ? 'null' : node.name;
}
String debugQualifiedClassName(Class node) {
@@ -335,11 +333,11 @@
}
String getClassName(Class node) {
- return node.name ?? syntheticNames.nameClass(node);
+ return node.name;
}
String getExtensionName(Extension node) {
- return node.name ?? syntheticNames.nameExtension(node);
+ return node.name;
}
String getClassReference(Class node) {
@@ -500,11 +498,11 @@
if (node is Class) {
Library nodeLibrary = node.enclosingLibrary;
String prefix = syntheticNames.nameLibraryPrefix(nodeLibrary);
- write(prefix + '::' + node.name!);
+ write(prefix + '::' + node.name);
} else if (node is Extension) {
Library nodeLibrary = node.enclosingLibrary;
String prefix = syntheticNames.nameLibraryPrefix(nodeLibrary);
- write(prefix + '::' + node.name!);
+ write(prefix + '::' + node.name);
} else if (node is Field) {
Library nodeLibrary = node.enclosingLibrary;
String prefix = syntheticNames.nameLibraryPrefix(nodeLibrary);
@@ -1317,7 +1315,7 @@
writeWord(getExtensionName(node));
writeTypeParameterList(node.typeParameters);
writeSpaced('on');
- writeType(node.onType!);
+ writeType(node.onType);
String endLineString = ' {';
if (node.enclosingLibrary.fileUri != node.fileUri) {
endLineString += ' // from ${node.fileUri}';
diff --git a/pkg/kernel/lib/transformations/type_casts_optimizer.dart b/pkg/kernel/lib/transformations/type_casts_optimizer.dart
index 5f901e6..4df790f 100644
--- a/pkg/kernel/lib/transformations/type_casts_optimizer.dart
+++ b/pkg/kernel/lib/transformations/type_casts_optimizer.dart
@@ -2,8 +2,6 @@
// 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
-
import 'package:kernel/ast.dart';
import 'package:kernel/type_environment.dart'
show StaticTypeContext, SubtypeCheckMode, TypeEnvironment;
diff --git a/pkg/kernel/lib/verifier.dart b/pkg/kernel/lib/verifier.dart
index 00dc2af..0a5ad7f 100644
--- a/pkg/kernel/lib/verifier.dart
+++ b/pkg/kernel/lib/verifier.dart
@@ -2,37 +2,35 @@
// 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
-
library kernel.checks;
import 'ast.dart';
import 'transformations/flags.dart';
import 'type_environment.dart' show StatefulStaticTypeContext, TypeEnvironment;
-void verifyComponent(Component component, {bool isOutline, bool afterConst}) {
+void verifyComponent(Component component, {bool? isOutline, bool? afterConst}) {
VerifyingVisitor.check(component,
isOutline: isOutline, afterConst: afterConst);
}
class VerificationError {
- final TreeNode context;
+ final TreeNode? context;
- final TreeNode node;
+ final TreeNode? node;
final String details;
VerificationError(this.context, this.node, this.details);
toString() {
- Location location;
+ Location? location;
try {
location = node?.location ?? context?.location;
} catch (_) {
// TODO(ahe): Fix the compiler instead.
}
if (location != null) {
- String file = location.file?.toString() ?? "";
+ String file = location.file.toString();
return "$file:${location.line}:${location.column}: Verification error:"
" $details";
} else {
@@ -74,25 +72,25 @@
bool inUnevaluatedConstant = false;
- Library currentLibrary;
+ Library? currentLibrary;
- Member currentMember;
+ Member? currentMember;
- Class currentClass;
+ Class? currentClass;
- Extension currentExtension;
+ Extension? currentExtension;
- TreeNode currentParent;
+ TreeNode? currentParent;
- TreeNode get currentClassOrExtensionOrMember =>
+ TreeNode? get currentClassOrExtensionOrMember =>
currentMember ?? currentClass ?? currentExtension;
- static void check(Component component, {bool isOutline, bool afterConst}) {
+ static void check(Component component, {bool? isOutline, bool? afterConst}) {
component.accept(
new VerifyingVisitor(isOutline: isOutline, afterConst: afterConst));
}
- VerifyingVisitor({bool isOutline, bool afterConst})
+ VerifyingVisitor({bool? isOutline, bool? afterConst})
: isOutline = isOutline ?? false,
afterConst = afterConst ?? !(isOutline ?? false);
@@ -113,12 +111,12 @@
constant.visitChildren(this);
}
- problem(TreeNode node, String details, {TreeNode context}) {
+ problem(TreeNode? node, String details, {TreeNode? context}) {
context ??= currentClassOrExtensionOrMember;
throw new VerificationError(context, node, details);
}
- TreeNode enterParent(TreeNode node) {
+ TreeNode? enterParent(TreeNode node) {
if (!identical(node.parent, currentParent)) {
problem(
node,
@@ -127,12 +125,12 @@
" but found: '${node.parent.runtimeType}'.",
context: currentParent);
}
- TreeNode oldParent = currentParent;
+ TreeNode? oldParent = currentParent;
currentParent = node;
return oldParent;
}
- void exitParent(TreeNode oldParent) {
+ void exitParent(TreeNode? oldParent) {
currentParent = oldParent;
}
@@ -146,7 +144,7 @@
}
void visitChildren(TreeNode node) {
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
node.visitChildren(this);
exitParent(oldParent);
}
@@ -247,7 +245,7 @@
visitExtension(Extension node) {
currentExtension = node;
declareTypeParameters(node.typeParameters);
- final TreeNode oldParent = enterParent(node);
+ final TreeNode? oldParent = enterParent(node);
node.visitChildren(this);
exitParent(oldParent);
undeclareTypeParameters(node.typeParameters);
@@ -255,7 +253,7 @@
}
void checkTypedef(Typedef node) {
- TypedefState state = typedefState[node];
+ TypedefState? state = typedefState[node];
if (state == TypedefState.Done) return;
if (state == TypedefState.BeingChecked) {
problem(node, "The typedef '$node' refers to itself", context: node);
@@ -264,7 +262,7 @@
typedefState[node] = TypedefState.BeingChecked;
Set<TypeParameter> savedTypeParameters = typeParametersInScope;
typeParametersInScope = node.typeParameters.toSet();
- TreeNode savedParent = currentParent;
+ TreeNode? savedParent = currentParent;
currentParent = node;
// Visit children without checking the parent pointer on the typedef itself
// since this can be called from a context other than its true parent.
@@ -282,14 +280,14 @@
visitField(Field node) {
currentMember = node;
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
bool isTopLevel = node.parent == currentLibrary;
if (isTopLevel && !node.isStatic) {
- problem(node, "The top-level field '${node.name.text}' should be static",
+ problem(node, "The top-level field '${node.name!.text}' should be static",
context: node);
}
if (node.isConst && !node.isStatic) {
- problem(node, "The const field '${node.name.text}' should be static",
+ problem(node, "The const field '${node.name!.text}' should be static",
context: node);
}
bool isImmutable = node.isLate
@@ -298,7 +296,7 @@
if (isImmutable == node.hasSetter) {
if (node.hasSetter) {
problem(node,
- "The immutable field '${node.name.text}' has a setter reference",
+ "The immutable field '${node.name!.text}' has a setter reference",
context: node);
} else {
if (isOutline && node.isLate) {
@@ -308,7 +306,7 @@
// whether it has an initializer or not.
} else {
problem(node,
- "The mutable field '${node.name.text}' has no setter reference",
+ "The mutable field '${node.name!.text}' has no setter reference",
context: node);
}
}
@@ -324,7 +322,7 @@
visitProcedure(Procedure node) {
currentMember = node;
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
classTypeParametersAreInScope = !node.isStatic;
if (node.isAbstract && node.isExternal) {
problem(node, "Procedure cannot be both abstract and external.");
@@ -365,7 +363,7 @@
"Only forwarding stubs can have a forwarding stub super target "
"$node.");
}
- node.function.accept(this);
+ node.function!.accept(this);
classTypeParametersAreInScope = false;
visitList(node.annotations, this);
exitParent(oldParent);
@@ -377,9 +375,9 @@
classTypeParametersAreInScope = true;
// The constructor member needs special treatment due to parameters being
// in scope in the initializer list.
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
int stackHeight = enterLocalScope();
- visitChildren(node.function);
+ visitChildren(node.function!);
visitList(node.initializers, this);
if (!isOutline) {
checkInitializers(node);
@@ -395,7 +393,7 @@
visitClass(Class node) {
currentClass = node;
declareTypeParameters(node.typeParameters);
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
classTypeParametersAreInScope = false;
visitList(node.annotations, this);
classTypeParametersAreInScope = true;
@@ -414,7 +412,7 @@
AsyncMarker savedAsyncMarker = currentAsyncMarker;
currentAsyncMarker = node.asyncMarker;
if (!isOutline &&
- currentMember.isNonNullableByDefault &&
+ currentMember!.isNonNullableByDefault &&
node.asyncMarker == AsyncMarker.Async &&
node.futureValueType == null) {
problem(node,
@@ -468,7 +466,7 @@
int stackHeight = enterLocalScope();
// Do not visit the block directly because the value expression needs to
// be in its scope.
- TreeNode oldParent = enterParent(node);
+ TreeNode? oldParent = enterParent(node);
enterParent(node.body);
for (int i = 0; i < node.body.statements.length; ++i) {
node.body.statements[i].accept(this);
@@ -532,7 +530,7 @@
}
visitVariableDeclaration(VariableDeclaration node) {
- TreeNode parent = node.parent;
+ TreeNode? parent = node.parent;
if (parent is! Block &&
!(parent is Catch && parent.body != node) &&
!(parent is FunctionNode && parent.body != node) &&
@@ -549,7 +547,7 @@
visitChildren(node);
declareVariable(node);
if (afterConst && node.isConst) {
- Expression initializer = node.initializer;
+ Expression? initializer = node.initializer;
if (!(initializer is InvalidExpression ||
initializer is ConstantExpression &&
initializer.constant is UnevaluatedConstant)) {
@@ -574,6 +572,7 @@
@override
visitStaticGet(StaticGet node) {
visitChildren(node);
+ // ignore: unnecessary_null_comparison
if (node.target == null) {
problem(node, "StaticGet without target.");
}
@@ -599,6 +598,7 @@
@override
visitStaticSet(StaticSet node) {
visitChildren(node);
+ // ignore: unnecessary_null_comparison
if (node.target == null) {
problem(node, "StaticSet without target.");
}
@@ -633,19 +633,20 @@
void checkTargetedInvocation(Member target, InvocationExpression node) {
visitChildren(node);
+ // ignore: unnecessary_null_comparison
if (target == null) {
problem(node, "${node.runtimeType} without target.");
}
if (target.function == null) {
problem(node, "${node.runtimeType} without function.");
}
- if (!areArgumentsCompatible(node.arguments, target.function)) {
+ if (!areArgumentsCompatible(node.arguments, target.function!)) {
problem(node,
"${node.runtimeType} with incompatible arguments for '${target}'.");
}
int expectedTypeParameters = target is Constructor
- ? target.enclosingClass.typeParameters.length
- : target.function.typeParameters.length;
+ ? target.enclosingClass!.typeParameters.length
+ : target.function!.typeParameters.length;
if (node.arguments.types.length != expectedTypeParameters) {
problem(
node,
@@ -657,7 +658,7 @@
@override
visitConstructorInvocation(ConstructorInvocation node) {
checkTargetedInvocation(node.target, node);
- if (node.target.enclosingClass.isAbstract) {
+ if (node.target.enclosingClass!.isAbstract) {
problem(node, "ConstructorInvocation of abstract class.");
}
if (node.isConst && !node.target.isConst) {
@@ -723,12 +724,13 @@
@override
visitContinueSwitchStatement(ContinueSwitchStatement node) {
+ // ignore: unnecessary_null_comparison
if (node.target == null) {
problem(node, "No target.");
} else if (node.target.parent == null) {
problem(node, "Target has no parent.");
} else {
- SwitchStatement statement = node.target.parent;
+ SwitchStatement statement = node.target.parent as SwitchStatement;
for (SwitchCase switchCase in statement.cases) {
if (switchCase == node.target) return;
}
@@ -749,7 +751,7 @@
}
Set<Class> superClasses = <Class>{};
int fieldCount = 0;
- for (Class cls = constant.classNode; cls != null; cls = cls.superclass) {
+ for (Class? cls = constant.classNode; cls != null; cls = cls.superclass) {
superClasses.add(cls);
for (Field f in cls.fields) {
if (!f.isStatic && !f.isConst) fieldCount++;
@@ -780,7 +782,7 @@
}
bool savedInUnevaluatedConstant = inUnevaluatedConstant;
inUnevaluatedConstant = true;
- TreeNode oldParent = currentParent;
+ TreeNode? oldParent = currentParent;
currentParent = null;
constant.expression.accept(this);
currentParent = oldParent;
@@ -840,11 +842,11 @@
}
if (node.classNode.isAnonymousMixin) {
if (currentParent is FunctionNode) {
- TreeNode functionNodeParent = currentParent.parent;
+ TreeNode? functionNodeParent = currentParent!.parent;
if (functionNodeParent is Constructor ||
functionNodeParent is Procedure &&
functionNodeParent.kind == ProcedureKind.Factory) {
- if (functionNodeParent.parent == node.classNode) {
+ if (functionNodeParent!.parent == node.classNode) {
// We only allow references to anonymous mixins in types as the
// return type of its own constructor.
return;
@@ -876,7 +878,7 @@
class VerifyGetStaticType extends RecursiveVisitor {
final TypeEnvironment env;
- Member currentMember;
+ Member? currentMember;
final StatefulStaticTypeContext _staticTypeContext;
VerifyGetStaticType(this.env)
@@ -934,7 +936,7 @@
node.accept(new CheckParentPointers(node.parent));
}
- TreeNode parent;
+ TreeNode? parent;
CheckParentPointers([this.parent]);
@@ -947,7 +949,7 @@
"is '${node.parent.runtimeType}' "
"but should be '${parent.runtimeType}'.");
}
- TreeNode oldParent = parent;
+ TreeNode? oldParent = parent;
parent = node;
node.visitChildren(this);
parent = oldParent;
diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc
index 545a3d3..2c75f02 100644
--- a/runtime/lib/stacktrace.cc
+++ b/runtime/lib/stacktrace.cc
@@ -18,35 +18,25 @@
static const intptr_t kDefaultStackAllocation = 8;
-static StackTracePtr CreateStackTraceObject(
- Zone* zone,
- const GrowableObjectArray& code_list,
- const GrowableArray<uword>& pc_offset_list) {
- const auto& code_array =
- Array::Handle(zone, Array::MakeFixedLength(code_list));
- const auto& pc_offset_array = TypedData::Handle(
- zone, TypedData::New(kUintPtrCid, pc_offset_list.length()));
- {
- NoSafepointScope no_safepoint;
- memmove(pc_offset_array.DataAddr(0), pc_offset_list.data(),
- pc_offset_list.length() * kWordSize);
- }
- return StackTrace::New(code_array, pc_offset_array);
-}
-
static StackTracePtr CurrentSyncStackTraceLazy(Thread* thread,
intptr_t skip_frames = 1) {
Zone* zone = thread->zone();
const auto& code_array = GrowableObjectArray::ZoneHandle(
zone, GrowableObjectArray::New(kDefaultStackAllocation));
- GrowableArray<uword> pc_offset_array;
+ const auto& pc_offset_array = GrowableObjectArray::ZoneHandle(
+ zone, GrowableObjectArray::New(kDefaultStackAllocation));
// Collect the frames.
- StackTraceUtils::CollectFramesLazy(thread, code_array, &pc_offset_array,
+ StackTraceUtils::CollectFramesLazy(thread, code_array, pc_offset_array,
skip_frames);
- return CreateStackTraceObject(zone, code_array, pc_offset_array);
+ const auto& code_array_fixed =
+ Array::Handle(zone, Array::MakeFixedLength(code_array));
+ const auto& pc_offset_array_fixed =
+ Array::Handle(zone, Array::MakeFixedLength(pc_offset_array));
+
+ return StackTrace::New(code_array_fixed, pc_offset_array_fixed);
}
static StackTracePtr CurrentSyncStackTrace(Thread* thread,
@@ -61,8 +51,8 @@
// Allocate once.
const Array& code_array =
Array::ZoneHandle(zone, Array::New(stack_trace_length));
- const TypedData& pc_offset_array = TypedData::ZoneHandle(
- zone, TypedData::New(kUintPtrCid, stack_trace_length));
+ const Array& pc_offset_array =
+ Array::ZoneHandle(zone, Array::New(stack_trace_length));
// Collect the frames.
const intptr_t collected_frames_count = StackTraceUtils::CollectFrames(
@@ -99,7 +89,7 @@
}
static void AppendFrames(const GrowableObjectArray& code_list,
- GrowableArray<uword>* pc_offset_list,
+ const GrowableObjectArray& pc_offset_list,
int skip_frames) {
Thread* thread = Thread::Current();
Zone* zone = thread->zone();
@@ -108,6 +98,7 @@
StackFrame* frame = frames.NextFrame();
ASSERT(frame != NULL); // We expect to find a dart invocation frame.
Code& code = Code::Handle(zone);
+ Smi& offset = Smi::Handle(zone);
for (; frame != NULL; frame = frames.NextFrame()) {
if (!frame->IsDartFrame()) {
continue;
@@ -118,9 +109,9 @@
}
code = frame->LookupDartCode();
- const intptr_t pc_offset = frame->pc() - code.PayloadStart();
+ offset = Smi::New(frame->pc() - code.PayloadStart());
code_list.Add(code);
- pc_offset_list->Add(pc_offset);
+ pc_offset_list.Add(offset);
}
}
@@ -128,14 +119,16 @@
//
// Skips the first skip_frames Dart frames.
const StackTrace& GetCurrentStackTrace(int skip_frames) {
- Zone* zone = Thread::Current()->zone();
const GrowableObjectArray& code_list =
- GrowableObjectArray::Handle(zone, GrowableObjectArray::New());
- GrowableArray<uword> pc_offset_list;
- AppendFrames(code_list, &pc_offset_list, skip_frames);
-
- const StackTrace& stacktrace = StackTrace::Handle(
- zone, CreateStackTraceObject(zone, code_list, pc_offset_list));
+ GrowableObjectArray::Handle(GrowableObjectArray::New());
+ const GrowableObjectArray& pc_offset_list =
+ GrowableObjectArray::Handle(GrowableObjectArray::New());
+ AppendFrames(code_list, pc_offset_list, skip_frames);
+ const Array& code_array = Array::Handle(Array::MakeFixedLength(code_list));
+ const Array& pc_offset_array =
+ Array::Handle(Array::MakeFixedLength(pc_offset_list));
+ const StackTrace& stacktrace =
+ StackTrace::Handle(StackTrace::New(code_array, pc_offset_array));
return stacktrace;
}
diff --git a/runtime/vm/code_patcher_arm.cc b/runtime/vm/code_patcher_arm.cc
index 2fc5361..0947b58 100644
--- a/runtime/vm/code_patcher_arm.cc
+++ b/runtime/vm/code_patcher_arm.cc
@@ -96,8 +96,9 @@
const Code& caller_code,
const Object& data,
const Code& target) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
call.SetData(data);
call.SetTarget(target);
} else {
@@ -109,8 +110,9 @@
uword CodePatcher::GetSwitchableCallTargetEntryAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
return call.target_entry();
} else {
SwitchableCallPattern call(return_address, caller_code);
@@ -120,8 +122,9 @@
ObjectPtr CodePatcher::GetSwitchableCallDataAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
return call.data();
} else {
SwitchableCallPattern call(return_address, caller_code);
diff --git a/runtime/vm/code_patcher_arm64.cc b/runtime/vm/code_patcher_arm64.cc
index c399fd1..b7590db 100644
--- a/runtime/vm/code_patcher_arm64.cc
+++ b/runtime/vm/code_patcher_arm64.cc
@@ -132,8 +132,9 @@
const Code& caller_code,
const Object& data,
const Code& target) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
call.SetData(data);
call.SetTarget(target);
} else {
@@ -145,8 +146,9 @@
uword CodePatcher::GetSwitchableCallTargetEntryAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
return call.target_entry();
} else {
SwitchableCallPattern call(return_address, caller_code);
@@ -156,8 +158,9 @@
ObjectPtr CodePatcher::GetSwitchableCallDataAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCallPattern call(return_address);
+ BareSwitchableCallPattern call(return_address, caller_code);
return call.data();
} else {
SwitchableCallPattern call(return_address, caller_code);
diff --git a/runtime/vm/code_patcher_x64.cc b/runtime/vm/code_patcher_x64.cc
index ce1d9f2..1ba005f 100644
--- a/runtime/vm/code_patcher_x64.cc
+++ b/runtime/vm/code_patcher_x64.cc
@@ -220,8 +220,10 @@
// call target.entry call stub.entry call stub.entry
class SwitchableCallBase : public ValueObject {
public:
- explicit SwitchableCallBase(const ObjectPool& object_pool)
- : object_pool_(object_pool), target_index_(-1), data_index_(-1) {}
+ explicit SwitchableCallBase(const Code& code)
+ : object_pool_(ObjectPool::Handle(code.GetObjectPool())),
+ target_index_(-1),
+ data_index_(-1) {}
intptr_t data_index() const { return data_index_; }
intptr_t target_index() const { return target_index_; }
@@ -235,7 +237,7 @@
}
protected:
- const ObjectPool& object_pool_;
+ ObjectPool& object_pool_;
intptr_t target_index_;
intptr_t data_index_;
@@ -249,9 +251,8 @@
// monomorphic function or a stub code.
class SwitchableCall : public SwitchableCallBase {
public:
- SwitchableCall(uword return_address, const Code& caller_code)
- : SwitchableCallBase(ObjectPool::Handle(caller_code.GetObjectPool())) {
- ASSERT(caller_code.ContainsInstructionAt(return_address));
+ SwitchableCall(uword return_address, const Code& code)
+ : SwitchableCallBase(code) {
uword pc = return_address;
// callq RCX
@@ -332,9 +333,11 @@
// of the monomorphic function or a stub entry point.
class BareSwitchableCall : public SwitchableCallBase {
public:
- explicit BareSwitchableCall(uword return_address)
- : SwitchableCallBase(ObjectPool::Handle(
- IsolateGroup::Current()->object_store()->global_object_pool())) {
+ BareSwitchableCall(uword return_address, const Code& code)
+ : SwitchableCallBase(code) {
+ object_pool_ = ObjectPool::RawCast(
+ IsolateGroup::Current()->object_store()->global_object_pool());
+
uword pc = return_address;
// callq RCX
@@ -486,8 +489,9 @@
const Code& caller_code,
const Object& data,
const Code& target) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCall call(return_address);
+ BareSwitchableCall call(return_address, caller_code);
call.SetData(data);
call.SetTarget(target);
} else {
@@ -499,8 +503,9 @@
uword CodePatcher::GetSwitchableCallTargetEntryAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCall call(return_address);
+ BareSwitchableCall call(return_address, caller_code);
return call.target_entry();
} else {
SwitchableCall call(return_address, caller_code);
@@ -510,8 +515,9 @@
ObjectPtr CodePatcher::GetSwitchableCallDataAt(uword return_address,
const Code& caller_code) {
+ ASSERT(caller_code.ContainsInstructionAt(return_address));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- BareSwitchableCall call(return_address);
+ BareSwitchableCall call(return_address, caller_code);
return call.data();
} else {
SwitchableCall call(return_address, caller_code);
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
index c2adf98..6bef2d7 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
@@ -95,8 +95,14 @@
void AsmIntrinsifier::Integer_addFromInteger(Assembler* assembler,
Label* normal_ir_body) {
TestBothArgumentsSmis(assembler, normal_ir_body); // Checks two smis.
- __ adds(R0, R0, Operand(R1)); // Adds.
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ adds(R0, R0, Operand(R1)); // Add.
__ b(normal_ir_body, VS); // Fall-through on overflow.
+#else
+ __ addsw(R0, R0, Operand(R1)); // Add (32-bit).
+ __ b(normal_ir_body, VS); // Fall-through on overflow.
+ __ sxtw(R0, R0); // Sign extend.
+#endif
__ ret();
__ Bind(normal_ir_body);
}
@@ -108,16 +114,28 @@
void AsmIntrinsifier::Integer_subFromInteger(Assembler* assembler,
Label* normal_ir_body) {
TestBothArgumentsSmis(assembler, normal_ir_body);
+#if !defined(DART_COMPRESSED_POINTERS)
__ subs(R0, R0, Operand(R1)); // Subtract.
__ b(normal_ir_body, VS); // Fall-through on overflow.
+#else
+ __ subsw(R0, R0, Operand(R1)); // Subtract (32-bit).
+ __ b(normal_ir_body, VS); // Fall-through on overflow.
+ __ sxtw(R0, R0); // Sign extend.
+#endif
__ ret();
__ Bind(normal_ir_body);
}
void AsmIntrinsifier::Integer_sub(Assembler* assembler, Label* normal_ir_body) {
TestBothArgumentsSmis(assembler, normal_ir_body);
+#if !defined(DART_COMPRESSED_POINTERS)
__ subs(R0, R1, Operand(R0)); // Subtract.
__ b(normal_ir_body, VS); // Fall-through on overflow.
+#else
+ __ subsw(R0, R1, Operand(R0)); // Subtract (32-bit).
+ __ b(normal_ir_body, VS); // Fall-through on overflow.
+ __ sxtw(R0, R0); // Sign extend.
+#endif
__ ret();
__ Bind(normal_ir_body);
}
@@ -127,9 +145,15 @@
TestBothArgumentsSmis(assembler, normal_ir_body); // checks two smis
__ SmiUntag(R0); // Untags R6. We only want result shifted by one.
+#if !defined(DART_COMPRESSED_POINTERS)
__ mul(TMP, R0, R1);
__ smulh(TMP2, R0, R1);
// TMP: result bits 64..127.
+#else
+ __ smull(TMP, R0, R1);
+ __ AsrImmediate(TMP2, TMP, 31);
+ // TMP: result bits 32..63.
+#endif
__ cmp(TMP2, Operand(TMP, ASR, 63));
__ b(normal_ir_body, NE);
__ mov(R0, TMP);
@@ -246,7 +270,11 @@
// Check the corner case of dividing the 'MIN_SMI' with -1, in which case we
// cannot tag the result.
+#if !defined(DART_COMPRESSED_POINTERS)
__ CompareImmediate(R0, 0x4000000000000000);
+#else
+ __ CompareImmediate(R0, 0x40000000);
+#endif
__ b(normal_ir_body, EQ);
__ SmiTag(R0); // Not equal. Okay to tag and return.
__ ret(); // Return.
@@ -257,8 +285,14 @@
Label* normal_ir_body) {
__ ldr(R0, Address(SP, +0 * target::kWordSize)); // Grab first argument.
__ BranchIfNotSmi(R0, normal_ir_body);
+#if !defined(DART_COMPRESSED_POINTERS)
__ negs(R0, R0);
__ b(normal_ir_body, VS);
+#else
+ __ negsw(R0, R0);
+ __ b(normal_ir_body, VS);
+ __ sxtw(R0, R0);
+#endif
__ ret();
__ Bind(normal_ir_body);
}
@@ -318,9 +352,15 @@
// Check if count too large for handling it inlined.
__ SmiUntag(TMP, right); // SmiUntag right into TMP.
// Overflow test (preserve left, right, and TMP);
+#if !defined(DART_COMPRESSED_POINTERS)
__ lslv(temp, left, TMP);
__ asrv(TMP2, temp, TMP);
__ CompareRegisters(left, TMP2);
+#else
+ __ lslvw(temp, left, TMP);
+ __ asrvw(TMP2, temp, TMP);
+ __ cmpw(left, Operand(TMP2));
+#endif
__ b(normal_ir_body, NE); // Overflow.
// Shift for result now we know there is no overflow.
__ lslv(result, left, TMP);
@@ -1283,7 +1323,11 @@
__ BranchIfNotSmi(R0, normal_ir_body);
// Is Smi.
__ SmiUntag(R0);
+#if !defined(DART_COMPRESSED_POINTERS)
__ scvtfdx(V0, R0);
+#else
+ __ scvtfdw(V0, R0);
+#endif
const Class& double_class = DoubleClass();
__ TryAllocate(double_class, normal_ir_body, R0, R1);
__ StoreDFieldToOffset(V0, R0, target::Double::value_offset());
@@ -1356,11 +1400,20 @@
__ fcmpd(V0, V0);
__ b(normal_ir_body, VS);
+#if !defined(DART_COMPRESSED_POINTERS)
__ fcvtzdsx(R0, V0);
// Overflow is signaled with minint.
// Check for overflow and that it fits into Smi.
__ CompareImmediate(R0, 0xC000000000000000);
__ b(normal_ir_body, MI);
+#else
+ __ fcvtzdsw(R0, V0);
+ // Overflow is signaled with minint.
+ // Check for overflow and that it fits into Smi.
+ __ AsrImmediate(TMP, R0, 30);
+ __ cmp(TMP, Operand(R0, ASR, 63));
+ __ b(normal_ir_body, NE);
+#endif
__ SmiTag(R0);
__ ret();
__ Bind(normal_ir_body);
@@ -1378,18 +1431,31 @@
__ fcmpd(V0, V0);
__ b(&double_hash, VS);
+#if !defined(DART_COMPRESSED_POINTERS)
// Convert double value to signed 64-bit int in R0 and back to a
// double value in V1.
__ fcvtzdsx(R0, V0);
__ scvtfdx(V1, R0);
+#else
+ // Convert double value to signed 32-bit int in R0 and back to a
+ // double value in V1.
+ __ fcvtzdsw(R0, V0);
+ __ scvtfdw(V1, R0);
+#endif
// Tag the int as a Smi, making sure that it fits; this checks for
// overflow in the conversion from double to int. Conversion
// overflow is signalled by fcvt through clamping R0 to either
// INT64_MAX or INT64_MIN (saturation).
ASSERT(kSmiTag == 0 && kSmiTagShift == 1);
+#if !defined(DART_COMPRESSED_POINTERS)
__ adds(R0, R0, Operand(R0));
__ b(normal_ir_body, VS);
+#else
+ __ addsw(R0, R0, Operand(R0));
+ __ b(normal_ir_body, VS);
+ __ sxtw(R0, R0); // Sign extend.
+#endif
// Compare the two double values. If they are equal, we return the
// Smi tagged result immediately as the hash code.
diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc
index 8cf9a76..7df68fa 100644
--- a/runtime/vm/compiler/asm_intrinsifier_x64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc
@@ -94,8 +94,14 @@
Label* normal_ir_body) {
TestBothArgumentsSmis(assembler, normal_ir_body);
// RAX contains right argument.
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(RAX, Address(RSP, +2 * target::kWordSize));
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ addl(RAX, Address(RSP, +2 * target::kWordSize));
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Result is in RAX.
__ ret();
__ Bind(normal_ir_body);
@@ -109,8 +115,14 @@
Label* normal_ir_body) {
TestBothArgumentsSmis(assembler, normal_ir_body);
// RAX contains right argument, which is the actual minuend of subtraction.
+#if !defined(DART_COMPRESSED_POINTERS)
__ subq(RAX, Address(RSP, +2 * target::kWordSize));
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ subl(RAX, Address(RSP, +2 * target::kWordSize));
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Result is in RAX.
__ ret();
__ Bind(normal_ir_body);
@@ -121,8 +133,14 @@
// RAX contains right argument, which is the actual subtrahend of subtraction.
__ movq(RCX, RAX);
__ movq(RAX, Address(RSP, +2 * target::kWordSize));
+#if !defined(DART_COMPRESSED_POINTERS)
__ subq(RAX, RCX);
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ subl(RAX, RCX);
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Result is in RAX.
__ ret();
__ Bind(normal_ir_body);
@@ -134,8 +152,14 @@
// RAX is the right argument.
ASSERT(kSmiTag == 0); // Adjust code below if not the case.
__ SmiUntag(RAX);
+#if !defined(DART_COMPRESSED_POINTERS)
__ imulq(RAX, Address(RSP, +2 * target::kWordSize));
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ imull(RAX, Address(RSP, +2 * target::kWordSize));
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Result is in RAX.
__ ret();
__ Bind(normal_ir_body);
@@ -179,6 +203,7 @@
__ Bind(&try_modulo);
+#if !defined(DART_COMPRESSED_POINTERS)
// Check if both operands fit into 32bits as idiv with 64bit operands
// requires twice as many cycles and has much higher latency. We are checking
// this before untagging them to avoid corner case dividing INT_MAX by -1 that
@@ -189,6 +214,7 @@
__ movsxd(RBX, RCX);
__ cmpq(RBX, RCX);
__ j(NOT_EQUAL, ¬_32bit, Assembler::kNearJump);
+#endif
// Both operands are 31bit smis. Divide using 32bit idiv.
__ SmiUntag(RAX);
@@ -196,6 +222,7 @@
__ cdq();
__ idivl(RCX);
__ movsxd(RAX, RDX);
+#if !defined(DART_COMPRESSED_POINTERS)
__ jmp(&done, Assembler::kNearJump);
// Divide using 64bit idiv.
@@ -206,6 +233,7 @@
__ idivq(RCX);
__ movq(RAX, RDX);
__ Bind(&done);
+#endif
}
// Implementation:
@@ -262,6 +290,7 @@
__ movq(RAX,
Address(RSP, +2 * target::kWordSize)); // Left argument (dividend).
+#if !defined(DART_COMPRESSED_POINTERS)
// Check if both operands fit into 32bits as idiv with 64bit operands
// requires twice as many cycles and has much higher latency. We are checking
// this before untagging them to avoid corner case dividing INT_MAX by -1 that
@@ -296,6 +325,21 @@
__ j(EQUAL, normal_ir_body);
__ SmiTag(RAX);
__ ret();
+#else
+ // Check the corner case of dividing the 'MIN_SMI' with -1, in which case we
+ // cannot tag the result.
+ __ cmpq(RAX, Immediate(target::ToRawSmi(target::kSmiMin)));
+ __ j(EQUAL, normal_ir_body);
+
+ // Both operands are 31bit smis. Divide using 32bit idiv.
+ __ SmiUntag(RAX);
+ __ SmiUntag(RCX);
+ __ cdq();
+ __ idivl(RCX);
+ __ SmiTag(RAX); // Result is guaranteed to fit into a smi.
+ __ movsxd(RAX, RAX);
+ __ ret();
+#endif
__ Bind(normal_ir_body);
}
@@ -304,8 +348,14 @@
__ movq(RAX, Address(RSP, +1 * target::kWordSize));
__ testq(RAX, Immediate(kSmiTagMask));
__ j(NOT_ZERO, normal_ir_body, Assembler::kNearJump); // Non-smi value.
+#if !defined(DART_COMPRESSED_POINTERS)
__ negq(RAX);
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ negl(RAX);
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Result is in RAX.
__ ret();
__ Bind(normal_ir_body);
@@ -371,8 +421,14 @@
// Overflow test - all the shifted-out bits must be same as the sign bit.
__ movq(RDI, RAX);
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(RAX, RCX);
__ sarq(RAX, RCX);
+#else
+ __ shll(RAX, RCX);
+ __ sarl(RAX, RCX);
+ __ movsxd(RAX, RAX);
+#endif
__ cmpq(RAX, RDI);
__ j(NOT_EQUAL, &overflow, Assembler::kNearJump);
@@ -383,7 +439,7 @@
__ Bind(&overflow);
// Mint is rarely used on x64 (only for integers requiring 64 bit instead of
- // 63 bits as represented by Smi).
+ // 63 or 31 bits as represented by Smi).
__ Bind(normal_ir_body);
}
@@ -1219,7 +1275,11 @@
__ j(NOT_ZERO, normal_ir_body);
// Is Smi.
__ SmiUntag(RAX);
+#if !defined(DART_COMPRESSED_POINTER)
__ cvtsi2sdq(XMM0, RAX);
+#else
+ __ cvtsi2sdl(XMM0, RAX);
+#endif
const Class& double_class = DoubleClass();
__ TryAllocate(double_class, normal_ir_body, Assembler::kFarJump,
RAX, // Result register.
@@ -1291,13 +1351,26 @@
Label* normal_ir_body) {
__ movq(RAX, Address(RSP, +1 * target::kWordSize));
__ movsd(XMM0, FieldAddress(RAX, target::Double::value_offset()));
+#if !defined(DART_COMPRESSED_POINTERS)
__ cvttsd2siq(RAX, XMM0);
+#else
+ __ cvttsd2sil(RAX, XMM0);
+#endif
// Overflow is signalled with minint.
// Check for overflow and that it fits into Smi.
__ movq(RCX, RAX);
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(RCX, Immediate(1));
+#else
+ __ shll(RCX, Immediate(1));
+#endif
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#if !defined(DART_COMPRESSED_POINTERS)
__ SmiTag(RAX);
+#else
+ ASSERT((kSmiTagShift == 1) && (kSmiTag == 0));
+ __ movsxd(RAX, RCX);
+#endif
__ ret();
__ Bind(normal_ir_body);
}
@@ -1310,15 +1383,26 @@
// back to a double in XMM1.
__ movq(RCX, Address(RSP, +1 * target::kWordSize));
__ movsd(XMM0, FieldAddress(RCX, target::Double::value_offset()));
+#if !defined(DART_COMPRESSED_POINTERS)
__ cvttsd2siq(RAX, XMM0);
__ cvtsi2sdq(XMM1, RAX);
+#else
+ __ cvttsd2sil(RAX, XMM0);
+ __ cvtsi2sdl(XMM1, RAX);
+#endif
// Tag the int as a Smi, making sure that it fits; this checks for
// overflow and NaN in the conversion from double to int. Conversion
// overflow from cvttsd2si is signalled with an INT64_MIN value.
ASSERT(kSmiTag == 0 && kSmiTagShift == 1);
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(RAX, RAX);
__ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+#else
+ __ addl(RAX, RAX);
+ __ j(OVERFLOW, normal_ir_body, Assembler::kNearJump);
+ __ movsxd(RAX, RAX);
+#endif
// Compare the two double values. If they are equal, we return the
// Smi tagged result immediately as the hash code.
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.cc b/runtime/vm/compiler/assembler/assembler_arm64.cc
index af87467..503fa52 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64.cc
@@ -928,6 +928,26 @@
vmuls(vd, vd, VTMP);
}
+void Assembler::LoadCompressed(Register dest,
+ const Address& slot,
+ CanBeSmi can_value_be_smi) {
+#if !defined(DART_COMPRESSED_POINTERS)
+ ldr(dest, slot);
+#else
+ Label done;
+ ldr(dest, slot, kFourBytes); // Sign-extension.
+ if (can_value_be_smi == kValueCanBeSmi) {
+ BranchIfSmi(dest, &done);
+ }
+ add(dest, dest, Operand(HEAP_BASE));
+ Bind(&done);
+
+ // After further Smi changes:
+ // ldr(dest, slot, kUnsignedFourBytes); // Zero-extension.
+ // add(dest, dest, Operand(HEAP_BASE));
+#endif
+}
+
// Preserves object and value registers.
void Assembler::StoreIntoObjectFilter(Register object,
Register value,
@@ -1263,6 +1283,9 @@
ldr(BARRIER_MASK,
compiler::Address(THR, target::Thread::write_barrier_mask_offset()));
ldr(NULL_REG, compiler::Address(THR, target::Thread::object_null_offset()));
+#if defined(DART_COMPRESSED_POINTERS)
+ ldr(HEAP_BASE, compiler::Address(THR, target::Thread::heap_base_offset()));
+#endif
}
void Assembler::SetupGlobalPoolAndDispatchTable() {
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.h b/runtime/vm/compiler/assembler/assembler_arm64.h
index 1d6a830..3c44731 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.h
+++ b/runtime/vm/compiler/assembler/assembler_arm64.h
@@ -926,12 +926,16 @@
OperandSize sz = kEightBytes) {
EmitMiscDP3Source(MSUB, rd, rn, rm, ra, sz);
}
+ // Signed Multiply High
+ // rd <- (rn * rm)[127:64]
void smulh(Register rd,
Register rn,
Register rm,
OperandSize sz = kEightBytes) {
EmitMiscDP3Source(SMULH, rd, rn, rm, R31, sz);
}
+ // Unsigned Multiply High
+ // rd <- (rn * rm)[127:64]
void umulh(Register rd,
Register rn,
Register rm,
@@ -945,6 +949,8 @@
OperandSize sz = kEightBytes) {
EmitMiscDP3Source(UMADDL, rd, rn, rm, ra, sz);
}
+ // Unsigned Multiply Long
+ // rd:uint64 <- rn:uint32 * rm:uint32
void umull(Register rd,
Register rn,
Register rm,
@@ -958,6 +964,8 @@
OperandSize sz = kEightBytes) {
EmitMiscDP3Source(SMADDL, rd, rn, rm, ra, sz);
}
+ // Signed Multiply Long
+ // rd:int64 <- rn:int32 * rm:int32
void smull(Register rd,
Register rn,
Register rm,
@@ -1653,6 +1661,10 @@
kValueCanBeSmi,
};
+ void LoadCompressed(Register dest,
+ const Address& slot,
+ CanBeSmi can_value_be_smi = kValueCanBeSmi);
+
// Store into a heap object and apply the generational and incremental write
// barriers. All stores into heap objects must pass through this function or,
// if the value can be proven either Smi or old-and-premarked, its NoBarrier
diff --git a/runtime/vm/compiler/assembler/assembler_arm64_test.cc b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
index 29ed087..600d64b 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
@@ -2526,16 +2526,19 @@
__ Push(THR);
__ Push(BARRIER_MASK);
__ Push(NULL_REG);
+ __ Push(HEAP_BASE);
__ TagAndPushPP();
__ ldr(CODE_REG, Address(R0, VMHandles::kOffsetOfRawPtrInHandle));
__ mov(THR, R1);
__ ldr(BARRIER_MASK, Address(THR, Thread::write_barrier_mask_offset()));
__ ldr(NULL_REG, Address(THR, Thread::object_null_offset()));
+ __ ldr(HEAP_BASE, Address(THR, Thread::heap_base_offset()));
__ LoadPoolPointer(PP);
}
static void LeaveTestFrame(Assembler* assembler) {
__ PopAndUntagPP();
+ __ Pop(HEAP_BASE);
__ Pop(NULL_REG);
__ Pop(BARRIER_MASK);
__ Pop(THR);
diff --git a/runtime/vm/compiler/assembler/assembler_x64.cc b/runtime/vm/compiler/assembler/assembler_x64.cc
index 03122d3..7a616d9 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64.cc
@@ -1339,6 +1339,26 @@
}
}
+void Assembler::LoadCompressed(Register dest,
+ const Address& slot,
+ CanBeSmi can_value_be_smi) {
+#if !defined(DART_COMPRESSED_POINTERS)
+ movq(dest, slot);
+#else
+ Label done;
+ movsxd(dest, slot); // (movslq) Sign-extension.
+ if (can_value_be_smi == kValueCanBeSmi) {
+ BranchIfSmi(dest, &done, kNearJump);
+ }
+ addq(dest, Address(THR, target::Thread::heap_base_offset()));
+ Bind(&done);
+
+ // After further Smi changes:
+ // movl(dest, slot); // Zero-extension.
+ // addq(dest, Address(THR, target::Thread::heap_base_offset());
+#endif
+}
+
// Destroys the value register.
void Assembler::StoreIntoObjectFilter(Register object,
Register value,
diff --git a/runtime/vm/compiler/assembler/assembler_x64.h b/runtime/vm/compiler/assembler/assembler_x64.h
index 08f870b..cffa9e9 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.h
+++ b/runtime/vm/compiler/assembler/assembler_x64.h
@@ -767,6 +767,10 @@
kValueCanBeSmi,
};
+ void LoadCompressed(Register dest,
+ const Address& slot,
+ CanBeSmi can_value_be_smi = kValueCanBeSmi);
+
// Store into a heap object and apply the generational and incremental write
// barriers. All stores into heap objects must pass through this function or,
// if the value can be proven either Smi or old-and-premarked, its NoBarrier
diff --git a/runtime/vm/compiler/assembler/disassembler.cc b/runtime/vm/compiler/assembler/disassembler.cc
index 9e19290..78ae30b 100644
--- a/runtime/vm/compiler/assembler/disassembler.cc
+++ b/runtime/vm/compiler/assembler/disassembler.cc
@@ -457,9 +457,6 @@
void Disassembler::DisassembleCode(const Function& function,
const Code& code,
bool optimized) {
- if (code.IsUnknownDartCode()) {
- return;
- }
TextBuffer buffer(128);
const char* function_fullname = function.ToFullyQualifiedCString();
buffer.Printf("%s", Function::KindToCString(function.kind()));
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index b90b712..f1f8f02 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -2173,7 +2173,7 @@
static intptr_t RepresentationBits(Representation r) {
switch (r) {
case kTagged:
- return compiler::target::kBitsPerWord - 1;
+ return compiler::target::kSmiBits + 1;
case kUnboxedInt32:
case kUnboxedUint32:
return 32;
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index f27870d..48ba834 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -5744,7 +5744,8 @@
intptr_t element_count() const { return element_count_; }
bool can_pack_into_smi() const {
- return element_count() <= kSmiBits / (index_scale() * kBitsPerByte);
+ return element_count() <=
+ compiler::target::kSmiBits / (index_scale() * kBitsPerByte);
}
virtual bool ComputeCanDeoptimize() const { return false; }
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index 8a6897e..cc4cc66 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -1785,6 +1785,7 @@
index.reg(), TMP);
__ ldr(result, element_address, sz);
+ ASSERT(can_pack_into_smi());
__ SmiTag(result);
}
@@ -3358,17 +3359,29 @@
const Object& constant = locs.in(1).constant();
ASSERT(constant.IsSmi());
// Immediate shift operation takes 6 bits for the count.
+#if !defined(DART_COMPRESSED_POINTERS)
const intptr_t kCountLimit = 0x3F;
+#else
+ const intptr_t kCountLimit = 0x1F;
+#endif
const intptr_t value = Smi::Cast(constant).Value();
ASSERT((0 < value) && (value < kCountLimit));
if (shift_left->can_overflow()) {
// Check for overflow (preserve left).
+#if !defined(DART_COMPRESSED_POINTERS)
__ LslImmediate(TMP, left, value);
__ cmp(left, compiler::Operand(TMP, ASR, value));
+#else
+ __ LslImmediate(TMP, left, value, compiler::kFourBytes);
+ __ cmpw(left, compiler::Operand(TMP, ASR, value));
+#endif
__ b(deopt, NE); // Overflow.
}
// Shift for result now we know there is no overflow.
__ LslImmediate(result, left, value);
+#if defined(DART_COMPRESSED_POINTERS)
+ __ sxtw(result, result);
+#endif
return;
}
@@ -3387,7 +3400,8 @@
__ mov(result, ZR);
return;
}
- const intptr_t max_right = kSmiBits - Utils::HighestBit(left_int);
+ const intptr_t max_right =
+ compiler::target::kSmiBits - Utils::HighestBit(left_int);
const bool right_needs_check =
!RangeUtils::IsWithin(right_range, 0, max_right - 1);
if (right_needs_check) {
@@ -3396,6 +3410,9 @@
}
__ SmiUntag(TMP, right);
__ lslv(result, left, TMP);
+#if defined(DART_COMPRESSED_POINTERS)
+ __ sxtw(result, result);
+#endif
}
return;
}
@@ -3430,9 +3447,15 @@
__ SmiUntag(TMP, right);
// Overflow test (preserve left, right, and TMP);
const Register temp = locs.temp(0).reg();
+#if !defined(DART_COMPRESSED_POINTERS)
__ lslv(temp, left, TMP);
__ asrv(TMP2, temp, TMP);
__ CompareRegisters(left, TMP2);
+#else
+ __ lslvw(temp, left, TMP);
+ __ asrvw(TMP2, temp, TMP);
+ __ cmpw(left, compiler::Operand(TMP2));
+#endif
__ b(deopt, NE); // Overflow.
// Shift for result now we know there is no overflow.
__ lslv(result, left, TMP);
@@ -3516,18 +3539,34 @@
switch (op_kind()) {
case Token::kADD:
+#if !defined(DART_COMPRESSED_POINTERS)
__ adds(result, left, compiler::Operand(right));
+#else
+ __ addsw(result, left, compiler::Operand(right));
+ __ sxtw(result, result);
+#endif
__ b(slow_path->entry_label(), VS);
break;
case Token::kSUB:
+#if !defined(DART_COMPRESSED_POINTERS)
__ subs(result, left, compiler::Operand(right));
+#else
+ __ subsw(result, left, compiler::Operand(right));
+ __ sxtw(result, result);
+#endif
__ b(slow_path->entry_label(), VS);
break;
case Token::kMUL:
__ SmiUntag(TMP, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ mul(result, TMP, right);
__ smulh(TMP, TMP, right);
// TMP: result bits 64..127.
+#else
+ __ smull(result, TMP, right);
+ __ AsrImmediate(TMP, result, 31);
+ // TMP: result bits 32..63.
+#endif
__ cmp(TMP, compiler::Operand(result, ASR, 63));
__ b(slow_path->entry_label(), NE);
break;
@@ -3551,8 +3590,13 @@
__ SmiUntag(TMP, right);
__ lslv(result, left, TMP);
+#if !defined(DART_COMPRESSED_POINTERS)
__ asrv(TMP2, result, TMP);
__ CompareRegisters(left, TMP2);
+#else
+ __ asrvw(TMP2, result, TMP);
+ __ cmp(left, compiler::Operand(TMP2, SXTW, 0));
+#endif
__ b(slow_path->entry_label(), NE); // Overflow.
break;
case Token::kSHR:
@@ -3781,21 +3825,37 @@
switch (op_kind()) {
case Token::kADD: {
if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
__ AddImmediate(result, left, imm);
} else {
+#if !defined(DART_COMPRESSED_POINTERS)
__ AddImmediateSetFlags(result, left, imm);
__ b(deopt, VS);
+#else
+ __ AddImmediateSetFlags(result, left, imm, compiler::kFourBytes);
+ __ b(deopt, VS);
+ __ sxtw(result, result);
+#endif
}
break;
}
case Token::kSUB: {
if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
__ AddImmediate(result, left, -imm);
} else {
// Negating imm and using AddImmediateSetFlags would not detect the
// overflow when imm == kMinInt64.
+#if !defined(DART_COMPRESSED_POINTERS)
__ SubImmediateSetFlags(result, left, imm);
__ b(deopt, VS);
+#else
+ __ SubImmediateSetFlags(result, left, imm, compiler::kFourBytes);
+ __ b(deopt, VS);
+ __ sxtw(result, result);
+#endif
}
break;
}
@@ -3803,10 +3863,19 @@
// Keep left value tagged and untag right value.
const intptr_t value = Smi::Cast(constant).Value();
__ LoadImmediate(TMP, value);
+#if !defined(DART_COMPRESSED_POINTERS)
__ mul(result, left, TMP);
+#else
+ __ smull(result, left, TMP);
+#endif
if (deopt != NULL) {
+#if !defined(DART_COMPRESSED_POINTERS)
__ smulh(TMP, left, TMP);
// TMP: result bits 64..127.
+#else
+ __ AsrImmediate(TMP, result, 31);
+ // TMP: result bits 32..63.
+#endif
__ cmp(TMP, compiler::Operand(result, ASR, 63));
__ b(deopt, NE);
}
@@ -3865,8 +3934,14 @@
if (deopt == NULL) {
__ add(result, left, compiler::Operand(right));
} else {
+#if !defined(DART_COMPRESSED_POINTERS)
__ adds(result, left, compiler::Operand(right));
__ b(deopt, VS);
+#else
+ __ addsw(result, left, compiler::Operand(right));
+ __ b(deopt, VS);
+ __ sxtw(result, result);
+#endif
}
break;
}
@@ -3874,19 +3949,32 @@
if (deopt == NULL) {
__ sub(result, left, compiler::Operand(right));
} else {
+#if !defined(DART_COMPRESSED_POINTERS)
__ subs(result, left, compiler::Operand(right));
__ b(deopt, VS);
+#else
+ __ subsw(result, left, compiler::Operand(right));
+ __ b(deopt, VS);
+ __ sxtw(result, result);
+#endif
}
break;
}
case Token::kMUL: {
__ SmiUntag(TMP, left);
- if (deopt == NULL) {
- __ mul(result, TMP, right);
- } else {
- __ mul(result, TMP, right);
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ mul(result, TMP, right);
+#else
+ __ smull(result, TMP, right);
+#endif
+ if (deopt != NULL) {
+#if !defined(DART_COMPRESSED_POINTERS)
__ smulh(TMP, TMP, right);
// TMP: result bits 64..127.
+#else
+ __ AsrImmediate(TMP, result, 31);
+ // TMP: result bits 32..63.
+#endif
__ cmp(TMP, compiler::Operand(result, ASR, 63));
__ b(deopt, NE);
}
@@ -3921,7 +4009,11 @@
if (RangeUtils::Overlaps(right_range(), -1, -1)) {
// Check the corner case of dividing the 'MIN_SMI' with -1, in which
// case we cannot tag the result.
+#if !defined(DART_COMPRESSED_POINTERS)
__ CompareImmediate(result, 0x4000000000000000LL);
+#else
+ __ CompareImmediate(result, 0x40000000LL);
+#endif
__ b(deopt, EQ);
}
__ SmiTag(result);
@@ -4196,12 +4288,24 @@
bool opt) const {
ASSERT((from_representation() == kUnboxedInt32) ||
(from_representation() == kUnboxedUint32));
+#if !defined(DART_COMPRESSED_POINTERS)
+ // ValueFitsSmi() may be overly conservative and false because we only
+ // perform range analysis during optimized compilation.
+ const bool kMayAllocateMint = false;
+#else
+ const bool kMayAllocateMint = !ValueFitsSmi();
+#endif
const intptr_t kNumInputs = 1;
- const intptr_t kNumTemps = 0;
+ const intptr_t kNumTemps = kMayAllocateMint ? 1 : 0;
LocationSummary* summary = new (zone)
- LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kNoCall);
+ LocationSummary(zone, kNumInputs, kNumTemps,
+ kMayAllocateMint ? LocationSummary::kCallOnSlowPath
+ : LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_out(0, Location::RequiresRegister());
+ if (kMayAllocateMint) {
+ summary->set_temp(0, Location::RequiresRegister());
+ }
return summary;
}
@@ -4210,6 +4314,7 @@
Register out = locs()->out(0).reg();
ASSERT(value != out);
+#if !defined(DART_COMPRESSED_POINTERS)
ASSERT(compiler::target::kSmiBits >= 32);
if (from_representation() == kUnboxedInt32) {
__ sbfiz(out, value, kSmiTagSize, 32);
@@ -4217,6 +4322,41 @@
ASSERT(from_representation() == kUnboxedUint32);
__ ubfiz(out, value, kSmiTagSize, 32);
}
+#else
+ compiler::Label done;
+ if (from_representation() == kUnboxedInt32) {
+ ASSERT(kSmiTag == 0);
+ // Signed Bitfield Insert in Zero instruction extracts the 31 significant
+ // bits from a Smi.
+ __ sbfiz(out, value, kSmiTagSize, 32 - kSmiTagSize);
+ if (ValueFitsSmi()) {
+ return;
+ }
+ __ cmp(out, compiler::Operand(value, LSL, 1));
+ __ b(&done, EQ); // Jump if the sbfiz instruction didn't lose info.
+ } else {
+ ASSERT(from_representation() == kUnboxedUint32);
+ // A 32 bit positive Smi has one tag bit and one unused sign bit,
+ // leaving only 30 bits for the payload.
+ __ ubfiz(out, value, kSmiTagSize, compiler::target::kSmiBits);
+ if (ValueFitsSmi()) {
+ return;
+ }
+ __ TestImmediate(value, 0xC0000000);
+ __ b(&done, EQ); // Jump if both bits are zero.
+ }
+
+ Register temp = locs()->temp(0).reg();
+ BoxAllocationSlowPath::Allocate(compiler, this, compiler->mint_class(), out,
+ temp);
+ if (from_representation() == kUnboxedInt32) {
+ __ sxtw(temp, value); // Sign-extend.
+ } else {
+ __ ubfiz(temp, value, 0, 32); // Zero extend word.
+ }
+ __ StoreToOffset(temp, out, Mint::value_offset() - kHeapObjectTag);
+ __ Bind(&done);
+#endif
}
LocationSummary* BoxInt64Instr::MakeLocationSummary(Zone* zone,
@@ -4265,11 +4405,19 @@
return;
}
ASSERT(kSmiTag == 0);
- __ adds(out, in, compiler::Operand(in)); // SmiTag
compiler::Label done;
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ adds(out, in, compiler::Operand(in)); // SmiTag
// If the value doesn't fit in a smi, the tagging changes the sign,
// which causes the overflow flag to be set.
__ b(&done, NO_OVERFLOW);
+#else
+ __ LslImmediate(out, in, kSmiTagSize,
+ compiler::kFourBytes); // SmiTag (32-bit);
+ __ sxtw(out, out); // Sign-extend.
+ __ cmp(in, compiler::Operand(out, ASR, kSmiTagSize));
+ __ b(&done, EQ);
+#endif
Register temp = locs()->temp(0).reg();
if (compiler->intrinsic_mode()) {
@@ -5026,7 +5174,12 @@
case Token::kNEGATE: {
compiler::Label* deopt =
compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryOp);
+#if !defined(DART_COMPRESSED_POINTERS)
__ subs(result, ZR, compiler::Operand(value));
+#else
+ __ subsw(result, ZR, compiler::Operand(value));
+ __ sxtw(result, result);
+#endif
__ b(deopt, VS);
break;
}
@@ -5089,7 +5242,11 @@
const Register value = locs()->in(0).reg();
const VRegister result = locs()->out(0).fpu_reg();
__ SmiUntag(TMP, value);
+#if !defined(DART_COMPRESSED_POINTERS)
__ scvtfdx(result, TMP);
+#else
+ __ scvtfdw(result, TMP);
+#endif
}
LocationSummary* Int64ToDoubleInstr::MakeLocationSummary(Zone* zone,
@@ -5136,9 +5293,16 @@
__ fcvtzdsx(result, VTMP);
// Overflow is signaled with minint.
+#if !defined(DART_COMPRESSED_POINTERS)
// Check for overflow and that it fits into Smi.
__ CompareImmediate(result, 0xC000000000000000);
__ b(&do_call, MI);
+#else
+ // Check for overflow and that it fits into Smi.
+ __ AsrImmediate(TMP, result, 30);
+ __ cmp(TMP, compiler::Operand(result, ASR, 63));
+ __ b(&do_call, NE);
+#endif
__ SmiTag(result);
__ b(&done);
__ Bind(&do_call);
@@ -5181,10 +5345,18 @@
__ fcmpd(value, value);
__ b(deopt, VS);
+#if !defined(DART_COMPRESSED_POINTERS)
__ fcvtzdsx(result, value);
// Check for overflow and that it fits into Smi.
__ CompareImmediate(result, 0xC000000000000000);
__ b(deopt, MI);
+#else
+ __ fcvtzdsw(result, value);
+ // Check for overflow and that it fits into Smi.
+ __ AsrImmediate(TMP, result, 30);
+ __ cmp(TMP, compiler::Operand(result, ASR, 63));
+ __ b(deopt, NE);
+#endif
__ SmiTag(result);
}
@@ -5455,7 +5627,11 @@
// Check the corner case of dividing the 'MIN_SMI' with -1, in which
// case we cannot tag the result.
+#if !defined(DART_COMPRESSED_POINTERS)
__ CompareImmediate(result_div, 0x4000000000000000);
+#else
+ __ CompareImmediate(result_div, 0x40000000);
+#endif
__ b(deopt, EQ);
// result_mod <- left - right * result_div.
__ msub(result_mod, TMP, result_div, result_mod);
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index d81e582..bd87d93 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -1755,6 +1755,7 @@
default:
UNREACHABLE();
}
+ ASSERT(can_pack_into_smi());
__ SmiTag(result);
break;
case kTwoByteStringCid:
@@ -1769,6 +1770,7 @@
default:
UNREACHABLE();
}
+ ASSERT(can_pack_into_smi());
__ SmiTag(result);
break;
default:
@@ -3372,26 +3374,47 @@
const Object& constant = locs.in(1).constant();
ASSERT(constant.IsSmi());
// shlq operation masks the count to 6 bits.
+#if !defined(DART_COMPRESSED_POINTERS)
const intptr_t kCountLimit = 0x3F;
+#else
+ const intptr_t kCountLimit = 0x1F;
+#endif
const intptr_t value = Smi::Cast(constant).Value();
ASSERT((0 < value) && (value < kCountLimit));
if (shift_left->can_overflow()) {
if (value == 1) {
// Use overflow flag.
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(left, compiler::Immediate(1));
__ j(OVERFLOW, deopt);
+#else
+ __ shll(left, compiler::Immediate(1));
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
return;
}
// Check for overflow.
Register temp = locs.temp(0).reg();
__ movq(temp, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(left, compiler::Immediate(value));
__ sarq(left, compiler::Immediate(value));
+#else
+ __ shll(left, compiler::Immediate(value));
+ __ sarl(left, compiler::Immediate(value));
+ __ movsxd(left, left);
+#endif
__ cmpq(left, temp);
__ j(NOT_EQUAL, deopt); // Overflow.
}
// Shift for result now we know there is no overflow.
__ shlq(left, compiler::Immediate(value));
+#if defined(DART_COMPRESSED_POINTERS)
+ if (shift_left->is_truncating()) {
+ __ movsxd(left, left);
+ }
+#endif
return;
}
@@ -3420,6 +3443,13 @@
}
__ SmiUntag(right);
__ shlq(left, right);
+#if defined(DART_COMPRESSED_POINTERS)
+ if (shift_left->is_truncating()) {
+ __ movsxd(left, left);
+ }
+#endif
+ } else {
+ __ int3(); //???
}
return;
}
@@ -3451,6 +3481,11 @@
__ SmiUntag(right);
__ shlq(left, right);
}
+#if defined(DART_COMPRESSED_POINTERS)
+ if (shift_left->is_truncating()) {
+ __ movsxd(left, left);
+ }
+#endif
} else {
if (right_needs_check) {
ASSERT(shift_left->CanDeoptimize());
@@ -3462,15 +3497,26 @@
// Left is not a constant.
Register temp = locs.temp(0).reg();
// Check if count too large for handling it inlined.
+#if !defined(DART_COMPRESSED_POINTERS)
__ movq(temp, left);
+#else
+ __ movl(temp, left);
+#endif
__ SmiUntag(right);
// Overflow test (preserve temp and right);
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(left, right);
__ sarq(left, right);
__ cmpq(left, temp);
+#else
+ __ shll(temp, right);
+ __ sarl(temp, right);
+ __ cmpl(temp, left);
+#endif
__ j(NOT_EQUAL, deopt); // Overflow.
// Shift for result now we know there is no overflow.
__ shlq(left, right);
+ ASSERT(!shift_left->is_truncating());
}
}
@@ -3572,19 +3618,37 @@
switch (op_kind()) {
case Token::kADD:
__ movq(result, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(result, right);
__ j(OVERFLOW, slow_path->entry_label());
+#else
+ __ addl(result, right);
+ __ j(OVERFLOW, slow_path->entry_label());
+ __ movsxd(result, result);
+#endif
break;
case Token::kSUB:
__ movq(result, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ subq(result, right);
__ j(OVERFLOW, slow_path->entry_label());
+#else
+ __ subl(result, right);
+ __ j(OVERFLOW, slow_path->entry_label());
+ __ movsxd(result, result);
+#endif
break;
case Token::kMUL:
__ movq(result, left);
__ SmiUntag(result);
+#if !defined(DART_COMPRESSED_POINTERS)
__ imulq(result, right);
__ j(OVERFLOW, slow_path->entry_label());
+#else
+ __ imull(result, right);
+ __ j(OVERFLOW, slow_path->entry_label());
+ __ movsxd(result, result);
+#endif
break;
case Token::kBIT_OR:
ASSERT(left == result);
@@ -3607,11 +3671,20 @@
__ movq(RCX, right);
__ SmiUntag(RCX);
__ movq(result, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ shlq(result, RCX);
__ movq(TMP, result);
__ sarq(TMP, RCX);
__ cmpq(TMP, left);
__ j(NOT_EQUAL, slow_path->entry_label());
+#else
+ __ shll(result, RCX);
+ __ movq(TMP, result);
+ __ sarl(TMP, RCX);
+ __ cmpl(TMP, left);
+ __ j(NOT_EQUAL, slow_path->entry_label());
+ __ movsxd(result, result);
+#endif
break;
case Token::kSHR: {
compiler::Label shift_count_ok;
@@ -3900,20 +3973,57 @@
const int64_t imm = static_cast<int64_t>(constant.ptr());
switch (op_kind()) {
case Token::kADD: {
- __ AddImmediate(left, compiler::Immediate(imm));
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ AddImmediate(left, compiler::Immediate(imm));
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ AddImmediate(left, compiler::Immediate(imm));
+ __ j(OVERFLOW, deopt);
+#else
+ __ AddImmediate(left, compiler::Immediate(imm), compiler::kFourBytes);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kSUB: {
- __ SubImmediate(left, compiler::Immediate(imm));
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ SubImmediate(left, compiler::Immediate(imm));
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ SubImmediate(left, compiler::Immediate(imm));
+ __ j(OVERFLOW, deopt);
+#else
+ __ SubImmediate(left, compiler::Immediate(imm), compiler::kFourBytes);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kMUL: {
// Keep left value tagged and untag right value.
const intptr_t value = Smi::Cast(constant).Value();
- __ MulImmediate(left, compiler::Immediate(value));
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ MulImmediate(left, compiler::Immediate(value));
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ MulImmediate(left, compiler::Immediate(value));
+ __ j(OVERFLOW, deopt);
+#else
+ __ MulImmediate(left, compiler::Immediate(value),
+ compiler::kFourBytes);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kTRUNCDIV: {
@@ -3925,7 +4035,12 @@
ASSERT(kSmiTagSize == 1);
Register temp = locs()->temp(0).reg();
__ movq(temp, left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ sarq(temp, compiler::Immediate(63));
+#else
+ // Assumes Smis are sign extended.
+ __ sarq(temp, compiler::Immediate(31));
+#endif
ASSERT(shift_count > 1); // 1, -1 case handled above.
__ shrq(temp, compiler::Immediate(64 - shift_count));
__ addq(left, temp);
@@ -3955,7 +4070,11 @@
case Token::kSHR: {
// sarq operation masks the count to 6 bits.
+#if !defined(DART_COMPRESSED_POINTERS)
const intptr_t kCountLimit = 0x3F;
+#else
+ const intptr_t kCountLimit = 0x1F;
+#endif
const intptr_t value = Smi::Cast(constant).Value();
__ sarq(left, compiler::Immediate(
Utils::Minimum(value + kSmiTagSize, kCountLimit)));
@@ -3974,19 +4093,55 @@
const compiler::Address& right = LocationToStackSlotAddress(locs()->in(1));
switch (op_kind()) {
case Token::kADD: {
- __ addq(left, right);
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ addq(left, right);
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ addq(left, right);
+ __ j(OVERFLOW, deopt);
+#else
+ __ addl(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kSUB: {
- __ subq(left, right);
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ subq(left, right);
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ subq(left, right);
+ __ j(OVERFLOW, deopt);
+#else
+ __ subl(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kMUL: {
__ SmiUntag(left);
- __ imulq(left, right);
- if (deopt != NULL) __ j(OVERFLOW, deopt);
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ imulq(left, right);
+ } else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ imulq(left, right);
+ __ j(OVERFLOW, deopt);
+#else
+ __ imull(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+#endif
+ }
break;
}
case Token::kBIT_AND: {
@@ -4015,19 +4170,55 @@
Register right = locs()->in(1).reg();
switch (op_kind()) {
case Token::kADD: {
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(left, right);
if (deopt != NULL) __ j(OVERFLOW, deopt);
+#else
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ addq(left, right);
+ } else {
+ __ addl(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+ }
+#endif
break;
}
case Token::kSUB: {
+#if !defined(DART_COMPRESSED_POINTERS)
__ subq(left, right);
if (deopt != NULL) __ j(OVERFLOW, deopt);
+#else
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ subq(left, right);
+ } else {
+ __ subl(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+ }
+#endif
break;
}
case Token::kMUL: {
__ SmiUntag(left);
+#if !defined(DART_COMPRESSED_POINTERS)
__ imulq(left, right);
if (deopt != NULL) __ j(OVERFLOW, deopt);
+#else
+ if (deopt == NULL) {
+ // When we can't overflow, prefer 64-bit op to 32-bit op followed by
+ // sign extension.
+ __ imulq(left, right);
+ } else {
+ __ imull(left, right);
+ __ j(OVERFLOW, deopt);
+ __ movsxd(left, left);
+ }
+#endif
break;
}
case Token::kBIT_AND: {
@@ -4058,6 +4249,7 @@
__ testq(right, right);
__ j(ZERO, deopt);
}
+#if !defined(DART_COMPRESSED_POINTERS)
// Check if both operands fit into 32bits as idiv with 64bit operands
// requires twice as many cycles and has much higher latency.
// We are checking this before untagging them to avoid corner case
@@ -4090,6 +4282,21 @@
__ CompareImmediate(result, compiler::Immediate(0x4000000000000000));
__ j(EQUAL, deopt);
}
+#else
+ // Both operands are 31bit smis. Divide using 32bit idiv.
+ __ SmiUntag(left);
+ __ SmiUntag(right);
+ __ cdq();
+ __ idivl(right);
+
+ if (RangeUtils::Overlaps(right_range(), -1, -1)) {
+ // Check the corner case of dividing the 'MIN_SMI' with -1, in which
+ // case we cannot tag the result.
+ __ cmpl(result, compiler::Immediate(0x40000000));
+ __ j(EQUAL, deopt);
+ }
+ __ movsxd(result, result);
+#endif
__ Bind(&done);
__ SmiTag(result);
break;
@@ -4107,6 +4314,7 @@
__ testq(right, right);
__ j(ZERO, deopt);
}
+#if !defined(DART_COMPRESSED_POINTERS)
// Check if both operands fit into 32bits as idiv with 64bit operands
// requires twice as many cycles and has much higher latency.
// We are checking this before untagging them to avoid corner case
@@ -4118,6 +4326,7 @@
__ movsxd(temp, right);
__ cmpq(temp, right);
__ j(NOT_EQUAL, ¬_32bit);
+#endif
// Both operands are 31bit smis. Divide using 32bit idiv.
__ SmiUntag(left);
__ SmiUntag(right);
@@ -4125,6 +4334,7 @@
__ cdq();
__ idivl(right);
__ movsxd(result, result);
+#if !defined(DART_COMPRESSED_POINTERS)
__ jmp(&div_done);
// Divide using 64bit idiv.
@@ -4135,6 +4345,7 @@
__ cqo(); // Sign extend RAX -> RDX:RAX.
__ idivq(right); // RAX: quotient, RDX: remainder.
__ Bind(&div_done);
+#endif
// res = left % right;
// if (res < 0) {
// if (right < 0) {
@@ -4426,6 +4637,11 @@
__ j(NOT_CARRY, &done, compiler::Assembler::kNearJump);
__ movq(value, compiler::Address(value, TIMES_2, Mint::value_offset()));
__ Bind(&done);
+#if defined(DART_COMPRESSED_POINTERS)
+ if (is_truncating()) {
+ __ movsxd(value, value);
+ }
+#endif
return;
} else {
compiler::Label done;
@@ -4474,11 +4690,19 @@
ASSERT((from_representation() == kUnboxedInt32) ||
(from_representation() == kUnboxedUint32));
const intptr_t kNumInputs = 1;
- const intptr_t kNumTemps = 0;
+ const intptr_t kNumTemps = ValueFitsSmi() ? 0 : 1;
LocationSummary* summary = new (zone)
- LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kNoCall);
- summary->set_in(0, Location::RequiresRegister());
+ LocationSummary(zone, kNumInputs, kNumTemps,
+ ValueFitsSmi() ? LocationSummary::kNoCall
+ : LocationSummary::kCallOnSlowPath);
+ const bool needs_writable_input =
+ ValueFitsSmi() || (from_representation() == kUnboxedUint32) || true;
+ summary->set_in(0, needs_writable_input ? Location::WritableRegister()
+ : Location::RequiresRegister());
summary->set_out(0, Location::RequiresRegister());
+ if (!ValueFitsSmi()) {
+ summary->set_temp(0, Location::RequiresRegister());
+ }
return summary;
}
@@ -4487,6 +4711,7 @@
const Register out = locs()->out(0).reg();
ASSERT(value != out);
+#if !defined(DART_COMPRESSED_POINTERS)
ASSERT(kSmiTagSize == 1);
if (from_representation() == kUnboxedInt32) {
__ movsxd(out, value);
@@ -4495,6 +4720,40 @@
__ movl(out, value);
}
__ SmiTag(out);
+#else
+ compiler::Label done;
+ if (from_representation() == kUnboxedInt32) {
+ __ MoveRegister(out, value);
+ __ addl(out, out);
+ __ movsxd(out, out); // Does not affect flags.
+ if (ValueFitsSmi()) {
+ return;
+ }
+ __ j(NO_OVERFLOW, &done);
+ } else {
+ __ movl(out, value);
+ __ SmiTag(out);
+ if (ValueFitsSmi()) {
+ return;
+ }
+ __ TestImmediate(value, compiler::Immediate(0xC0000000LL));
+ __ j(ZERO, &done);
+ }
+ // Allocate a mint.
+ // Value input is a writable register and we have to inform the compiler of
+ // the type so it can be preserved untagged on the slow path
+ locs()->live_registers()->Add(locs()->in(0), from_representation());
+ const Register temp = locs()->temp(0).reg();
+ BoxAllocationSlowPath::Allocate(compiler, this, compiler->mint_class(), out,
+ temp);
+ if (from_representation() == kUnboxedInt32) {
+ __ movsxd(temp, value); // Sign-extend.
+ } else {
+ __ movl(temp, value); // Zero-extend.
+ }
+ __ movq(compiler::FieldAddress(out, Mint::value_offset()), temp);
+ __ Bind(&done);
+#endif
}
LocationSummary* BoxInt64Instr::MakeLocationSummary(Zone* zone,
@@ -4538,6 +4797,7 @@
void BoxInt64Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
const Register out = locs()->out(0).reg();
const Register value = locs()->in(0).reg();
+#if !defined(DART_COMPRESSED_POINTERS)
__ MoveRegister(out, value);
__ SmiTag(out);
if (ValueFitsSmi()) {
@@ -4546,9 +4806,22 @@
// If the value doesn't fit in a smi, the tagging changes the sign,
// which causes the overflow flag to be set.
compiler::Label done;
- __ j(NO_OVERFLOW, &done);
-
const Register temp = locs()->temp(0).reg();
+ __ j(NO_OVERFLOW, &done);
+#else
+ __ leaq(out, compiler::Address(value, value, TIMES_1, 0));
+ if (ValueFitsSmi()) {
+ return;
+ }
+ compiler::Label done;
+ const Register temp = locs()->temp(0).reg();
+ __ movq(temp, value);
+ __ sarq(temp, compiler::Immediate(30));
+ __ addq(temp, compiler::Immediate(1));
+ __ cmpq(temp, compiler::Immediate(2));
+ __ j(BELOW, &done);
+#endif
+
if (compiler->intrinsic_mode()) {
__ TryAllocate(compiler->mint_class(),
compiler->intrinsic_slow_path_label(),
@@ -5133,7 +5406,12 @@
case Token::kNEGATE: {
compiler::Label* deopt =
compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryOp);
+#if !defined(DART_COMPRESSED_POINTERS)
__ negq(value);
+#else
+ __ negl(value);
+ __ movsxd(value, value);
+#endif
__ j(OVERFLOW, deopt);
break;
}
@@ -5285,7 +5563,11 @@
Register value = locs()->in(0).reg();
FpuRegister result = locs()->out(0).fpu_reg();
__ SmiUntag(value);
+#if !defined(DART_COMPRESSED_POINTERS)
__ cvtsi2sdq(result, value);
+#else
+ __ cvtsi2sdl(result, value);
+#endif
}
DEFINE_BACKEND(Int64ToDouble, (FpuRegister result, Register value)) {
@@ -5314,14 +5596,25 @@
ASSERT(result != temp);
__ movsd(value_double,
compiler::FieldAddress(value_obj, Double::value_offset()));
+#if !defined(DART_COMPRESSED_POINTERS)
__ cvttsd2siq(result, value_double);
+#else
+ __ cvttsd2sil(result, value_double);
+#endif
// Overflow is signalled with minint.
compiler::Label do_call, done;
// Check for overflow and that it fits into Smi.
+#if !defined(DART_COMPRESSED_POINTERS)
__ movq(temp, result);
__ shlq(temp, compiler::Immediate(1));
__ j(OVERFLOW, &do_call, compiler::Assembler::kNearJump);
__ SmiTag(result);
+#else
+ __ movl(temp, result);
+ __ shll(temp, compiler::Immediate(1));
+ __ j(OVERFLOW, &do_call, compiler::Assembler::kNearJump);
+ __ movsxd(result, temp);
+#endif
__ jmp(&done);
__ Bind(&do_call);
__ pushq(value_obj);
@@ -5360,14 +5653,26 @@
XmmRegister value = locs()->in(0).fpu_reg();
Register temp = locs()->temp(0).reg();
+#if !defined(DART_COMPRESSED_POINTERS)
__ cvttsd2siq(result, value);
+#else
+ __ cvttsd2sil(result, value);
+#endif
// Overflow is signalled with minint.
compiler::Label do_call, done;
// Check for overflow and that it fits into Smi.
+#if !defined(DART_COMPRESSED_POINTERS)
__ movq(temp, result);
__ shlq(temp, compiler::Immediate(1));
__ j(OVERFLOW, deopt);
__ SmiTag(result);
+#else
+ __ movl(temp, result);
+ __ shll(temp, compiler::Immediate(1));
+ __ j(OVERFLOW, deopt);
+ ASSERT(kSmiTagShift == 1 && kSmiTag == 0);
+ __ movsxd(result, temp);
+#endif
}
LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(Zone* zone,
@@ -5694,6 +5999,7 @@
__ testq(right, right);
__ j(ZERO, deopt);
}
+#if !defined(DART_COMPRESSED_POINTERS)
// Check if both operands fit into 32bits as idiv with 64bit operands
// requires twice as many cycles and has much higher latency.
// We are checking this before untagging them to avoid corner case
@@ -5726,6 +6032,21 @@
__ CompareImmediate(RAX, compiler::Immediate(0x4000000000000000));
__ j(EQUAL, deopt);
__ Bind(&done);
+#else
+ USE(temp);
+ // Both operands are 31bit smis. Divide using 32bit idiv.
+ __ SmiUntag(left);
+ __ SmiUntag(right);
+ __ cdq();
+ __ idivl(right);
+
+ // Check the corner case of dividing the 'MIN_SMI' with -1, in which
+ // case we cannot tag the result.
+ __ cmpl(RAX, compiler::Immediate(0x40000000));
+ __ j(EQUAL, deopt);
+ __ movsxd(RAX, RAX);
+ __ movsxd(RDX, RDX);
+#endif
// Modulo correction (RDX).
// res = left % right;
diff --git a/runtime/vm/compiler/backend/range_analysis_test.cc b/runtime/vm/compiler/backend/range_analysis_test.cc
index 81b1467..2d42347 100644
--- a/runtime/vm/compiler/backend/range_analysis_test.cc
+++ b/runtime/vm/compiler/backend/range_analysis_test.cc
@@ -66,13 +66,14 @@
RangeBoundary::PositiveInfinity());
TEST_RANGE_OP(Range::Shl, -1, 1, 63, 63, RangeBoundary(kMinInt64),
RangeBoundary::PositiveInfinity());
- if (kBitsPerWord == 64) {
+ if (compiler::target::kSmiBits == 62) {
TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 62, 62,
RangeBoundary(compiler::target::kSmiMin),
RangeBoundary(compiler::target::kSmiMax));
TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30, RangeBoundary(-(1 << 30)),
RangeBoundary(1 << 30));
} else {
+ ASSERT(compiler::target::kSmiBits == 30);
TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30,
RangeBoundary(compiler::target::kSmiMin),
RangeBoundary(compiler::target::kSmiMax));
diff --git a/runtime/vm/compiler/backend/type_propagator.cc b/runtime/vm/compiler/backend/type_propagator.cc
index 075f0cf..fd01d69 100644
--- a/runtime/vm/compiler/backend/type_propagator.cc
+++ b/runtime/vm/compiler/backend/type_propagator.cc
@@ -665,7 +665,7 @@
}
CompileType CompileType::Int32() {
-#if defined(TARGET_ARCH_IS_64_BIT)
+#if defined(TARGET_ARCH_IS_64_BIT) && !defined(DART_COMPRESSED_POINTERS)
return FromCid(kSmiCid);
#else
return Int();
diff --git a/runtime/vm/compiler/frontend/base_flow_graph_builder.cc b/runtime/vm/compiler/frontend/base_flow_graph_builder.cc
index f8fd87c..a106f1e 100644
--- a/runtime/vm/compiler/frontend/base_flow_graph_builder.cc
+++ b/runtime/vm/compiler/frontend/base_flow_graph_builder.cc
@@ -425,7 +425,7 @@
Fragment BaseFlowGraphBuilder::AddIntptrIntegers() {
Value* right = Pop();
Value* left = Pop();
-#if defined(TARGET_ARCH_ARM64) || defined(TARGET_ARCH_X64)
+#if defined(TARGET_ARCH_IS_64_BIT)
auto add = new (Z) BinaryInt64OpInstr(
Token::kADD, left, right, DeoptId::kNone, Instruction::kNotSpeculative);
#else
diff --git a/runtime/vm/compiler/jit/compiler.cc b/runtime/vm/compiler/jit/compiler.cc
index 3799ebd..b187eb6 100644
--- a/runtime/vm/compiler/jit/compiler.cc
+++ b/runtime/vm/compiler/jit/compiler.cc
@@ -342,6 +342,12 @@
FlowGraph* flow_graph) {
ASSERT(!CompilerState::Current().is_aot());
const Function& function = parsed_function()->function();
+
+ // If another thread compiled and installed unoptmized code already,
+ // skip installation.
+ if (!optimized() && function.unoptimized_code() != Code::null()) {
+ return function.unoptimized_code();
+ }
Zone* const zone = thread()->zone();
// CreateDeoptInfo uses the object pool and needs to be done before
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index e1772e2..bfc1343 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -303,7 +303,11 @@
constexpr uword kUwordMax = static_cast<word>(-1);
// The number of bits in the _magnitude_ of a Smi, not counting the sign bit.
+#if !defined(DART_COMPRESSED_POINTERS)
constexpr int kSmiBits = kBitsPerWord - 2;
+#else
+constexpr int kSmiBits = 30;
+#endif
constexpr word kSmiMax = (static_cast<uword>(1) << kSmiBits) - 1;
constexpr word kSmiMin = -(static_cast<uword>(1) << kSmiBits);
@@ -326,7 +330,7 @@
// calculate both the parameter flag index in the parameter names array and
// which bit to check, kNumParameterFlagsPerElement should be a power of two.
static constexpr intptr_t kNumParameterFlagsPerElementLog2 =
- kBitsPerWordLog2 - kNumParameterFlags;
+ kBitsPerWordLog2 - 1 - kNumParameterFlags;
static constexpr intptr_t kNumParameterFlagsPerElement =
1 << kNumParameterFlagsPerElementLog2;
static_assert(kNumParameterFlagsPerElement <= kSmiBits,
@@ -1032,6 +1036,7 @@
static word store_buffer_block_offset();
static word call_to_runtime_entry_point_offset();
static word write_barrier_mask_offset();
+ static word heap_base_offset();
static word switchable_call_miss_entry_offset();
static word write_barrier_wrappers_thread_offset(Register regno);
static word array_write_barrier_entry_point_offset();
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index d5794ad..00bcf67 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -266,7 +266,7 @@
Thread_call_to_runtime_stub_offset = 136;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 44;
+ Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
@@ -278,7 +278,7 @@
348;
static constexpr dart::compiler::target::word
Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_end_offset = 52;
+static constexpr dart::compiler::target::word Thread_end_offset = 56;
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
@@ -307,10 +307,10 @@
Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
728;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 744;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 64;
+ 68;
static constexpr dart::compiler::target::word
Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -318,7 +318,7 @@
static constexpr dart::compiler::target::word
Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 80;
+ Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -361,9 +361,9 @@
Thread_slow_type_test_entry_point_offset = 320;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 32;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 56;
+ 60;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 60;
+ Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -373,20 +373,21 @@
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 76;
+ 80;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word Thread_top_offset = 48;
+ Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word Thread_top_offset = 52;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 20;
static constexpr dart::compiler::target::word
Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
116;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
36;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word Thread_callback_code_offset = 720;
static constexpr dart::compiler::target::word
Thread_callback_stack_return_offset = 724;
@@ -758,175 +759,176 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1392;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1400;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1472;
-static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
-static constexpr dart::compiler::target::word
- Thread_bootstrap_native_wrapper_entry_point_offset = 632;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
-static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
- 608;
-static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
-static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
-static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1432;
-static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
-static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1408;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1464;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1496;
-static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_allocate_object_slow_stub_offset = 384;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
+ 1480;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ 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_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
+static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
+ 448;
+static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
+ 688;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
-static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
-static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1424;
-static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
+ Thread_enter_safepoint_stub_offset = 488;
+static constexpr dart::compiler::target::word Thread_execution_state_offset =
1440;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
-static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
-static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
-static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word Thread_float_not_address_offset =
+ 696;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
-static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+ Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+ 1416;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
+ 1472;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word Thread_field_table_values_offset =
+ 136;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
-static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
- 72;
-static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
+static constexpr dart::compiler::target::word
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
+static constexpr dart::compiler::target::word
+ Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+static constexpr dart::compiler::target::word
+ Thread_saved_shadow_call_stack_offset = 1432;
+static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1448;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1456;
+ Thread_slow_type_test_stub_offset = 472;
+static constexpr dart::compiler::target::word
+ Thread_slow_type_test_entry_point_offset = 632;
+static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
+static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
+ 120;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_flags_offset = 128;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
+ 160;
+static constexpr dart::compiler::target::word
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
+static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+static constexpr dart::compiler::target::word
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
+static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
+ 224;
+static constexpr dart::compiler::target::word
+ Thread_write_barrier_entry_point_offset = 512;
+static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
+ 72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
+static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ 1456;
+static constexpr dart::compiler::target::word
+ Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -987,8 +989,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -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_InstanceSize = 24;
@@ -1337,7 +1339,7 @@
Thread_call_to_runtime_stub_offset = 136;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 44;
+ Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
@@ -1349,7 +1351,7 @@
348;
static constexpr dart::compiler::target::word
Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_end_offset = 52;
+static constexpr dart::compiler::target::word Thread_end_offset = 56;
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
@@ -1378,10 +1380,10 @@
Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
696;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 712;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 64;
+ 68;
static constexpr dart::compiler::target::word
Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -1389,7 +1391,7 @@
static constexpr dart::compiler::target::word
Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 80;
+ Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -1432,9 +1434,9 @@
Thread_slow_type_test_entry_point_offset = 320;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 32;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 56;
+ 60;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 60;
+ Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -1444,20 +1446,21 @@
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 76;
+ 80;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word Thread_top_offset = 48;
+ Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word Thread_top_offset = 52;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 20;
static constexpr dart::compiler::target::word
Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
116;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
36;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word Thread_callback_code_offset = 688;
static constexpr dart::compiler::target::word
Thread_callback_stack_return_offset = 692;
@@ -1826,171 +1829,172 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
1464;
static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1472;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
+ Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
+ 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 = 632;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
+ Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
+ Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
+ 448;
static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
+ 688;
static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
+ Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
1504;
static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
+ Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
+ 696;
static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
+ Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
1480;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
+ Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
1536;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ 136;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
+ Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
static constexpr dart::compiler::target::word
Thread_saved_shadow_call_stack_offset = 1496;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1512;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
+ Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ 120;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ 160;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ 224;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
+ Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -2055,9 +2059,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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_InstanceSize = 24;
@@ -2172,8 +2176,7 @@
static constexpr dart::compiler::target::word ObjectPool_elements_start_offset =
16;
static constexpr dart::compiler::target::word ObjectPool_element_size = 8;
-static constexpr dart::compiler::target::word Array_kMaxElements =
- 576460752303423487;
+static constexpr dart::compiler::target::word Array_kMaxElements = 134217727;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -2191,8 +2194,7 @@
static constexpr dart::compiler::target::word OldPage_kBytesPerCardLog2 = 10;
static constexpr dart::compiler::target::word
NativeEntry_kNumCallWrapperArguments = 2;
-static constexpr dart::compiler::target::word String_kMaxElements =
- 2305843009213693951;
+static constexpr dart::compiler::target::word String_kMaxElements = 536870911;
static constexpr dart::compiler::target::word
SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -2211,7 +2213,7 @@
SubtypeTestCache_kTestEntryLength = 8;
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -2367,175 +2369,176 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1392;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1400;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1472;
-static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
-static constexpr dart::compiler::target::word
- Thread_bootstrap_native_wrapper_entry_point_offset = 632;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
-static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
- 608;
-static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
-static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
-static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1432;
-static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
-static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1408;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1464;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1496;
-static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_allocate_object_slow_stub_offset = 384;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
+ 1480;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ 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_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
+static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
+ 448;
+static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
+ 688;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
-static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
-static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1424;
-static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
+ Thread_enter_safepoint_stub_offset = 488;
+static constexpr dart::compiler::target::word Thread_execution_state_offset =
1440;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
-static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
-static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
-static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word Thread_float_not_address_offset =
+ 696;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
-static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+ Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+ 1416;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
+ 1472;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word Thread_field_table_values_offset =
+ 136;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
-static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
- 72;
-static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
+static constexpr dart::compiler::target::word
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
+static constexpr dart::compiler::target::word
+ Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+static constexpr dart::compiler::target::word
+ Thread_saved_shadow_call_stack_offset = 1432;
+static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1448;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1456;
+ Thread_slow_type_test_stub_offset = 472;
+static constexpr dart::compiler::target::word
+ Thread_slow_type_test_entry_point_offset = 632;
+static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
+static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
+ 120;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_flags_offset = 128;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
+ 160;
+static constexpr dart::compiler::target::word
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
+static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+static constexpr dart::compiler::target::word
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
+static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
+ 224;
+static constexpr dart::compiler::target::word
+ Thread_write_barrier_entry_point_offset = 512;
+static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
+ 72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
+static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ 1456;
+static constexpr dart::compiler::target::word
+ Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -2596,8 +2599,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -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_InstanceSize = 24;
@@ -2712,8 +2715,7 @@
static constexpr dart::compiler::target::word ObjectPool_elements_start_offset =
16;
static constexpr dart::compiler::target::word ObjectPool_element_size = 8;
-static constexpr dart::compiler::target::word Array_kMaxElements =
- 576460752303423487;
+static constexpr dart::compiler::target::word Array_kMaxElements = 134217727;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -2731,8 +2733,7 @@
static constexpr dart::compiler::target::word OldPage_kBytesPerCardLog2 = 10;
static constexpr dart::compiler::target::word
NativeEntry_kNumCallWrapperArguments = 2;
-static constexpr dart::compiler::target::word String_kMaxElements =
- 2305843009213693951;
+static constexpr dart::compiler::target::word String_kMaxElements = 536870911;
static constexpr dart::compiler::target::word
SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -2751,7 +2752,7 @@
SubtypeTestCache_kTestEntryLength = 8;
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -2907,171 +2908,172 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
1464;
static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1472;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
+ Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
+ 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 = 632;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
+ Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
+ Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
+ 448;
static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
+ 688;
static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
+ Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
1504;
static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
+ Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
+ 696;
static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
+ Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
1480;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
+ Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
1536;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ 136;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
+ Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
static constexpr dart::compiler::target::word
Thread_saved_shadow_call_stack_offset = 1496;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1512;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
+ Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ 120;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ 160;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ 224;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
+ Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -3136,9 +3138,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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_InstanceSize = 24;
@@ -3486,7 +3488,7 @@
Thread_call_to_runtime_stub_offset = 136;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 44;
+ Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
@@ -3498,7 +3500,7 @@
348;
static constexpr dart::compiler::target::word
Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_end_offset = 52;
+static constexpr dart::compiler::target::word Thread_end_offset = 56;
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
@@ -3527,10 +3529,10 @@
Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
728;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 744;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 64;
+ 68;
static constexpr dart::compiler::target::word
Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -3538,7 +3540,7 @@
static constexpr dart::compiler::target::word
Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 80;
+ Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -3581,9 +3583,9 @@
Thread_slow_type_test_entry_point_offset = 320;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 32;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 56;
+ 60;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 60;
+ Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -3593,20 +3595,21 @@
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 76;
+ 80;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word Thread_top_offset = 48;
+ Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word Thread_top_offset = 52;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 20;
static constexpr dart::compiler::target::word
Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
116;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
36;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word Thread_callback_code_offset = 720;
static constexpr dart::compiler::target::word
Thread_callback_stack_return_offset = 724;
@@ -3972,175 +3975,176 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1392;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1400;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1472;
-static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
-static constexpr dart::compiler::target::word
- Thread_bootstrap_native_wrapper_entry_point_offset = 632;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
-static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
- 608;
-static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
-static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
-static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1432;
-static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
-static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1408;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1464;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1496;
-static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_allocate_object_slow_stub_offset = 384;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
+ 1480;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ 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_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
+static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
+ 448;
+static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
+ 688;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
-static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
-static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1424;
-static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
+ Thread_enter_safepoint_stub_offset = 488;
+static constexpr dart::compiler::target::word Thread_execution_state_offset =
1440;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
-static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
-static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
-static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word Thread_float_not_address_offset =
+ 696;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
-static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+ Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+ 1416;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
+ 1472;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word Thread_field_table_values_offset =
+ 136;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
-static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
- 72;
-static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
+static constexpr dart::compiler::target::word
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
+static constexpr dart::compiler::target::word
+ Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+static constexpr dart::compiler::target::word
+ Thread_saved_shadow_call_stack_offset = 1432;
+static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1448;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1456;
+ Thread_slow_type_test_stub_offset = 472;
+static constexpr dart::compiler::target::word
+ Thread_slow_type_test_entry_point_offset = 632;
+static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
+static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
+ 120;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_flags_offset = 128;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
+ 160;
+static constexpr dart::compiler::target::word
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
+static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+static constexpr dart::compiler::target::word
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
+static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
+ 224;
+static constexpr dart::compiler::target::word
+ Thread_write_barrier_entry_point_offset = 512;
+static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
+ 72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
+static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ 1456;
+static constexpr dart::compiler::target::word
+ Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -4198,8 +4202,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -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_InstanceSize = 24;
@@ -4545,7 +4549,7 @@
Thread_call_to_runtime_stub_offset = 136;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 44;
+ Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
@@ -4557,7 +4561,7 @@
348;
static constexpr dart::compiler::target::word
Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_end_offset = 52;
+static constexpr dart::compiler::target::word Thread_end_offset = 56;
static constexpr dart::compiler::target::word
Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
@@ -4586,10 +4590,10 @@
Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
696;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word Thread_isolate_group_offset = 712;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 64;
+ 68;
static constexpr dart::compiler::target::word
Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -4597,7 +4601,7 @@
static constexpr dart::compiler::target::word
Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 80;
+ Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -4640,9 +4644,9 @@
Thread_slow_type_test_entry_point_offset = 320;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 32;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 56;
+ 60;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 60;
+ Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -4652,20 +4656,21 @@
static constexpr dart::compiler::target::word
Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 76;
+ 80;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word Thread_top_offset = 48;
+ Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word Thread_top_offset = 52;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 20;
static constexpr dart::compiler::target::word
Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
116;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
36;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word Thread_callback_code_offset = 688;
static constexpr dart::compiler::target::word
Thread_callback_stack_return_offset = 692;
@@ -5028,171 +5033,172 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
1464;
static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1472;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
+ Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
+ 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 = 632;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
+ Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
+ Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
+ 448;
static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
+ 688;
static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
+ Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
1504;
static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
+ Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
+ 696;
static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
+ Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
1480;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
+ Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
1536;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ 136;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
+ Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
static constexpr dart::compiler::target::word
Thread_saved_shadow_call_stack_offset = 1496;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1512;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
+ Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ 120;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ 160;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ 224;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
+ Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -5254,9 +5260,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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_InstanceSize = 24;
@@ -5371,8 +5377,7 @@
static constexpr dart::compiler::target::word ObjectPool_elements_start_offset =
16;
static constexpr dart::compiler::target::word ObjectPool_element_size = 8;
-static constexpr dart::compiler::target::word Array_kMaxElements =
- 576460752303423487;
+static constexpr dart::compiler::target::word Array_kMaxElements = 134217727;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -5390,8 +5395,7 @@
static constexpr dart::compiler::target::word OldPage_kBytesPerCardLog2 = 10;
static constexpr dart::compiler::target::word
NativeEntry_kNumCallWrapperArguments = 2;
-static constexpr dart::compiler::target::word String_kMaxElements =
- 2305843009213693951;
+static constexpr dart::compiler::target::word String_kMaxElements = 536870911;
static constexpr dart::compiler::target::word
SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -5410,7 +5414,7 @@
SubtypeTestCache_kTestEntryLength = 8;
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -5563,175 +5567,176 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
- 1392;
-static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1400;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
-static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
-static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
-static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 1472;
-static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
-static constexpr dart::compiler::target::word
- Thread_bootstrap_native_wrapper_entry_point_offset = 632;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
-static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
-static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
- 608;
-static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
-static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
-static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word Thread_execution_state_offset =
- 1432;
-static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
-static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1408;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
- 1464;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset =
- 1496;
-static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_allocate_object_slow_stub_offset = 384;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
+ 1480;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ 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_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
+static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
+ 448;
+static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
+ 688;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
-static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
-static constexpr dart::compiler::target::word
- Thread_saved_shadow_call_stack_offset = 1424;
-static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
+ Thread_enter_safepoint_stub_offset = 488;
+static constexpr dart::compiler::target::word Thread_execution_state_offset =
1440;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
-static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
-static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
-static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word Thread_float_not_address_offset =
+ 696;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
-static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+ Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
+ 1416;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
-static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
+ 1472;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word Thread_field_table_values_offset =
+ 136;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
-static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
- 72;
-static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
+static constexpr dart::compiler::target::word
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
+static constexpr dart::compiler::target::word
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
+static constexpr dart::compiler::target::word
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
+static constexpr dart::compiler::target::word
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
+static constexpr dart::compiler::target::word
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
+static constexpr dart::compiler::target::word
+ Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+static constexpr dart::compiler::target::word
+ Thread_saved_shadow_call_stack_offset = 1432;
+static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1448;
static constexpr dart::compiler::target::word
- Thread_callback_stack_return_offset = 1456;
+ Thread_slow_type_test_stub_offset = 472;
+static constexpr dart::compiler::target::word
+ Thread_slow_type_test_entry_point_offset = 632;
+static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
+static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
+ 120;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_flags_offset = 128;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
+static constexpr dart::compiler::target::word
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
+static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
+ 160;
+static constexpr dart::compiler::target::word
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
+static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
+static constexpr dart::compiler::target::word
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
+static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
+ 224;
+static constexpr dart::compiler::target::word
+ Thread_write_barrier_entry_point_offset = 512;
+static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
+ 72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
+static constexpr dart::compiler::target::word Thread_callback_code_offset =
+ 1456;
+static constexpr dart::compiler::target::word
+ Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -5789,8 +5794,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -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_InstanceSize = 24;
@@ -5905,8 +5910,7 @@
static constexpr dart::compiler::target::word ObjectPool_elements_start_offset =
16;
static constexpr dart::compiler::target::word ObjectPool_element_size = 8;
-static constexpr dart::compiler::target::word Array_kMaxElements =
- 576460752303423487;
+static constexpr dart::compiler::target::word Array_kMaxElements = 134217727;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -5924,8 +5928,7 @@
static constexpr dart::compiler::target::word OldPage_kBytesPerCardLog2 = 10;
static constexpr dart::compiler::target::word
NativeEntry_kNumCallWrapperArguments = 2;
-static constexpr dart::compiler::target::word String_kMaxElements =
- 2305843009213693951;
+static constexpr dart::compiler::target::word String_kMaxElements = 536870911;
static constexpr dart::compiler::target::word
SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -5944,7 +5947,7 @@
SubtypeTestCache_kTestEntryLength = 8;
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -6097,171 +6100,172 @@
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 = 720;
+ Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word Thread_active_exception_offset =
1464;
static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
1472;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_code_offset = 224;
+ Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- Thread_array_write_barrier_entry_point_offset = 512;
+ Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- Thread_allocate_object_entry_point_offset = 544;
+ Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- Thread_allocate_object_stub_offset = 360;
+ Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_entry_point_offset = 552;
+ Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- Thread_allocate_object_parameterized_stub_offset = 368;
+ Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_entry_point_offset = 560;
+ Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- Thread_allocate_object_slow_stub_offset = 376;
+ Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- Thread_auto_scope_native_wrapper_entry_point_offset = 648;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 208;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 200;
+ 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 = 632;
+ Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_entry_point_offset = 520;
+ Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- Thread_call_to_runtime_stub_offset = 256;
+ Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
static constexpr dart::compiler::target::word
- Thread_dispatch_table_array_offset = 88;
+ Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 432;
-static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
+static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
+ 616;
static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
- 440;
+ 448;
static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
- 680;
+ 688;
static constexpr dart::compiler::target::word
- Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_end_offset = 104;
+ Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- Thread_enter_safepoint_stub_offset = 480;
+ Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word Thread_execution_state_offset =
1504;
static constexpr dart::compiler::target::word
- Thread_exit_safepoint_stub_offset = 488;
+ Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_stub_offset = 496;
+ Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- Thread_call_native_through_safepoint_entry_point_offset = 616;
+ Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- Thread_fix_allocation_stub_code_offset = 240;
+ Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- Thread_fix_callers_target_code_offset = 232;
+ Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- Thread_float_absolute_address_offset = 704;
+ Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- Thread_float_negate_address_offset = 696;
+ Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word Thread_float_not_address_offset =
- 688;
+ 696;
static constexpr dart::compiler::target::word
- Thread_float_zerow_address_offset = 712;
+ Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
1480;
static constexpr dart::compiler::target::word
- Thread_invoke_dart_code_stub_offset = 248;
+ Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
1536;
-static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word Thread_field_table_values_offset =
- 128;
+ 136;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_return_stub_offset = 448;
+ Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- Thread_lazy_deopt_from_throw_stub_offset = 456;
+ Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- Thread_lazy_specialize_type_test_stub_offset = 472;
+ Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- Thread_marking_stack_block_offset = 160;
+ Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- Thread_megamorphic_call_checked_entry_offset = 584;
+ Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_entry_offset = 592;
+ Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- Thread_switchable_call_miss_stub_offset = 400;
+ Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
- Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 264;
+ Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 192;
+ Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
static constexpr dart::compiler::target::word
- Thread_predefined_symbols_address_offset = 656;
+ Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
static constexpr dart::compiler::target::word
Thread_saved_shadow_call_stack_offset = 1496;
static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
1512;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_stub_offset = 464;
+ Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- Thread_slow_type_test_entry_point_offset = 624;
+ Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word Thread_stack_limit_offset = 64;
static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
- 112;
+ 120;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_flags_offset = 120;
+ Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
- 152;
+ 160;
static constexpr dart::compiler::target::word
- Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word Thread_top_offset = 96;
+ Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word Thread_top_offset = 104;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 40;
static constexpr dart::compiler::target::word
- Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
+ Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
- 216;
+ 224;
static constexpr dart::compiler::target::word
- Thread_write_barrier_entry_point_offset = 504;
+ Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
72;
+static constexpr dart::compiler::target::word Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -6323,9 +6327,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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_InstanceSize = 24;
@@ -6702,7 +6706,7 @@
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
740;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 44;
+ AOT_Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -6715,7 +6719,7 @@
AOT_Thread_double_abs_address_offset = 348;
static constexpr dart::compiler::target::word
AOT_Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56;
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word
@@ -6744,11 +6748,11 @@
AOT_Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 728;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
744;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 64;
+ AOT_Thread_field_table_values_offset = 68;
static constexpr dart::compiler::target::word
AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -6756,7 +6760,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 80;
+ AOT_Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
AOT_Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -6802,9 +6806,9 @@
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
32;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 56;
+ AOT_Thread_saved_stack_limit_offset = 60;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 60;
+ AOT_Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -6814,21 +6818,22 @@
static constexpr dart::compiler::target::word
AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 76;
+ AOT_Thread_store_buffer_block_offset = 80;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
+ AOT_Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 52;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
20;
static constexpr dart::compiler::target::word
AOT_Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_code_offset = 116;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 36;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
720;
static constexpr dart::compiler::target::word
@@ -7251,183 +7256,184 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1392;
+ AOT_Thread_active_exception_offset = 1400;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1400;
+ AOT_Thread_active_stacktrace_offset = 1408;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1472;
+ 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1488;
-static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1432;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1408;
-static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1464;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1496;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_execution_state_offset = 1440;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_callers_target_code_offset = 240;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_absolute_address_offset = 712;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_not_address_offset = 696;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word
+ AOT_Thread_global_object_pool_offset = 1416;
+static constexpr dart::compiler::target::word
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word
+ AOT_Thread_exit_through_ffi_offset = 1472;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word
+ AOT_Thread_field_table_values_offset = 136;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ AOT_Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1416;
+ 1424;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1424;
+ AOT_Thread_saved_shadow_call_stack_offset = 1432;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1440;
+ AOT_Thread_safepoint_state_offset = 1448;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1448;
+ 1456;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1456;
+ AOT_Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -7501,8 +7507,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -7851,139 +7857,139 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
AOT_Thread_active_exception_offset = 1464;
static constexpr dart::compiler::target::word
AOT_Thread_active_stacktrace_offset = 1472;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
1560;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
+ AOT_Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
+ 608;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
AOT_Thread_execution_state_offset = 1504;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
+ AOT_Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
+ AOT_Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
+ AOT_Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
+ AOT_Thread_float_not_address_offset = 696;
static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
+ AOT_Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word
AOT_Thread_global_object_pool_offset = 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 1536;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
1488;
static constexpr dart::compiler::target::word
@@ -7991,39 +7997,40 @@
static constexpr dart::compiler::target::word
AOT_Thread_safepoint_state_offset = 1512;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -8101,9 +8108,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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;
@@ -8233,7 +8240,7 @@
AOT_ObjectPool_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ObjectPool_element_size = 8;
static constexpr dart::compiler::target::word AOT_Array_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -8253,7 +8260,7 @@
static constexpr dart::compiler::target::word
AOT_NativeEntry_kNumCallWrapperArguments = 2;
static constexpr dart::compiler::target::word AOT_String_kMaxElements =
- 2305843009213693951;
+ 536870911;
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -8273,7 +8280,7 @@
static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -8449,183 +8456,184 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1392;
+ AOT_Thread_active_exception_offset = 1400;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1400;
+ AOT_Thread_active_stacktrace_offset = 1408;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1472;
+ 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1488;
-static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1432;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1408;
-static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1464;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1496;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_execution_state_offset = 1440;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_callers_target_code_offset = 240;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_absolute_address_offset = 712;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_not_address_offset = 696;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word
+ AOT_Thread_global_object_pool_offset = 1416;
+static constexpr dart::compiler::target::word
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word
+ AOT_Thread_exit_through_ffi_offset = 1472;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word
+ AOT_Thread_field_table_values_offset = 136;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ AOT_Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1416;
+ 1424;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1424;
+ AOT_Thread_saved_shadow_call_stack_offset = 1432;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1440;
+ AOT_Thread_safepoint_state_offset = 1448;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1448;
+ 1456;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1456;
+ AOT_Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -8699,8 +8707,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -8830,7 +8838,7 @@
AOT_ObjectPool_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ObjectPool_element_size = 8;
static constexpr dart::compiler::target::word AOT_Array_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -8850,7 +8858,7 @@
static constexpr dart::compiler::target::word
AOT_NativeEntry_kNumCallWrapperArguments = 2;
static constexpr dart::compiler::target::word AOT_String_kMaxElements =
- 2305843009213693951;
+ 536870911;
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -8870,7 +8878,7 @@
static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -9046,139 +9054,139 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
AOT_Thread_active_exception_offset = 1464;
static constexpr dart::compiler::target::word
AOT_Thread_active_stacktrace_offset = 1472;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
1560;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
+ AOT_Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
+ 608;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
AOT_Thread_execution_state_offset = 1504;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
+ AOT_Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
+ AOT_Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
+ AOT_Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
+ AOT_Thread_float_not_address_offset = 696;
static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
+ AOT_Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word
AOT_Thread_global_object_pool_offset = 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 1536;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
1488;
static constexpr dart::compiler::target::word
@@ -9186,39 +9194,40 @@
static constexpr dart::compiler::target::word
AOT_Thread_safepoint_state_offset = 1512;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -9296,9 +9305,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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;
@@ -9686,7 +9695,7 @@
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
740;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 44;
+ AOT_Thread_dispatch_table_array_offset = 48;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
308;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -9699,7 +9708,7 @@
AOT_Thread_double_abs_address_offset = 348;
static constexpr dart::compiler::target::word
AOT_Thread_double_negate_address_offset = 344;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56;
static constexpr dart::compiler::target::word
AOT_Thread_enter_safepoint_stub_offset = 248;
static constexpr dart::compiler::target::word
@@ -9728,11 +9737,11 @@
AOT_Thread_invoke_dart_code_stub_offset = 132;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 728;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
744;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 64;
+ AOT_Thread_field_table_values_offset = 68;
static constexpr dart::compiler::target::word
AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
static constexpr dart::compiler::target::word
@@ -9740,7 +9749,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 80;
+ AOT_Thread_marking_stack_block_offset = 84;
static constexpr dart::compiler::target::word
AOT_Thread_megamorphic_call_checked_entry_offset = 300;
static constexpr dart::compiler::target::word
@@ -9786,9 +9795,9 @@
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
32;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 56;
+ AOT_Thread_saved_stack_limit_offset = 60;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 60;
+ AOT_Thread_stack_overflow_flags_offset = 64;
static constexpr dart::compiler::target::word
AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
static constexpr dart::compiler::target::word
@@ -9798,21 +9807,22 @@
static constexpr dart::compiler::target::word
AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 76;
+ AOT_Thread_store_buffer_block_offset = 80;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 72;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
+ AOT_Thread_top_exit_frame_info_offset = 76;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 52;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
20;
static constexpr dart::compiler::target::word
AOT_Thread_unboxed_int64_runtime_arg_offset = 96;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 92;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_code_offset = 116;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 260;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 36;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 40;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
720;
static constexpr dart::compiler::target::word
@@ -10228,183 +10238,184 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1392;
+ AOT_Thread_active_exception_offset = 1400;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1400;
+ AOT_Thread_active_stacktrace_offset = 1408;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1472;
+ 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1488;
-static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1432;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1408;
-static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1464;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1496;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_execution_state_offset = 1440;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_callers_target_code_offset = 240;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_absolute_address_offset = 712;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_not_address_offset = 696;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word
+ AOT_Thread_global_object_pool_offset = 1416;
+static constexpr dart::compiler::target::word
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word
+ AOT_Thread_exit_through_ffi_offset = 1472;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word
+ AOT_Thread_field_table_values_offset = 136;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ AOT_Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1416;
+ 1424;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1424;
+ AOT_Thread_saved_shadow_call_stack_offset = 1432;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1440;
+ AOT_Thread_safepoint_state_offset = 1448;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1448;
+ 1456;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1456;
+ AOT_Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -10475,8 +10486,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -10821,139 +10832,139 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
AOT_Thread_active_exception_offset = 1464;
static constexpr dart::compiler::target::word
AOT_Thread_active_stacktrace_offset = 1472;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
1560;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
+ AOT_Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
+ 608;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
AOT_Thread_execution_state_offset = 1504;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
+ AOT_Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
+ AOT_Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
+ AOT_Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
+ AOT_Thread_float_not_address_offset = 696;
static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
+ AOT_Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word
AOT_Thread_global_object_pool_offset = 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 1536;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
1488;
static constexpr dart::compiler::target::word
@@ -10961,39 +10972,40 @@
static constexpr dart::compiler::target::word
AOT_Thread_safepoint_state_offset = 1512;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -11068,9 +11080,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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;
@@ -11200,7 +11212,7 @@
AOT_ObjectPool_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ObjectPool_element_size = 8;
static constexpr dart::compiler::target::word AOT_Array_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -11220,7 +11232,7 @@
static constexpr dart::compiler::target::word
AOT_NativeEntry_kNumCallWrapperArguments = 2;
static constexpr dart::compiler::target::word AOT_String_kMaxElements =
- 2305843009213693951;
+ 536870911;
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -11240,7 +11252,7 @@
static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -11412,183 +11424,184 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
- AOT_Thread_active_exception_offset = 1392;
+ AOT_Thread_active_exception_offset = 1400;
static constexpr dart::compiler::target::word
- AOT_Thread_active_stacktrace_offset = 1400;
+ AOT_Thread_active_stacktrace_offset = 1408;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 1472;
+ 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 1488;
-static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
-static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
-static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
-static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
-static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
-static constexpr dart::compiler::target::word
- AOT_Thread_execution_state_offset = 1432;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
-static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
-static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
-static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
-static constexpr dart::compiler::target::word
- AOT_Thread_global_object_pool_offset = 1408;
-static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
-static constexpr dart::compiler::target::word
- AOT_Thread_exit_through_ffi_offset = 1464;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1496;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_dispatch_table_array_offset = 96;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
+ 608;
+static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_execution_state_offset = 1440;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
+static constexpr dart::compiler::target::word
+ AOT_Thread_fix_callers_target_code_offset = 240;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_absolute_address_offset = 712;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_negate_address_offset = 704;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_not_address_offset = 696;
+static constexpr dart::compiler::target::word
+ AOT_Thread_float_zerow_address_offset = 720;
+static constexpr dart::compiler::target::word
+ AOT_Thread_global_object_pool_offset = 1416;
+static constexpr dart::compiler::target::word
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
+static constexpr dart::compiler::target::word
+ AOT_Thread_exit_through_ffi_offset = 1472;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
+ 1504;
+static constexpr dart::compiler::target::word
+ AOT_Thread_field_table_values_offset = 136;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
+static constexpr dart::compiler::target::word
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
+static constexpr dart::compiler::target::word
+ AOT_Thread_marking_stack_block_offset = 168;
+static constexpr dart::compiler::target::word
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
+static constexpr dart::compiler::target::word
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
+static constexpr dart::compiler::target::word
+ 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;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
- 1416;
+ 1424;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_shadow_call_stack_offset = 1424;
+ AOT_Thread_saved_shadow_call_stack_offset = 1432;
static constexpr dart::compiler::target::word
- AOT_Thread_safepoint_state_offset = 1440;
+ AOT_Thread_safepoint_state_offset = 1448;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
- 1448;
+ 1456;
static constexpr dart::compiler::target::word
- AOT_Thread_callback_stack_return_offset = 1456;
+ AOT_Thread_callback_stack_return_offset = 1464;
static constexpr dart::compiler::target::word
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -11659,8 +11672,8 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, -1, -1, 1336, 1344,
- 1352, 1360, 1368, -1, 1376, 1384, -1, -1};
+ 1312, 1320, 1328, 1336, -1, -1, 1344, 1352,
+ 1360, 1368, 1376, -1, 1384, 1392, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
24;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -11790,7 +11803,7 @@
AOT_ObjectPool_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ObjectPool_element_size = 8;
static constexpr dart::compiler::target::word AOT_Array_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
static constexpr dart::compiler::target::word
@@ -11810,7 +11823,7 @@
static constexpr dart::compiler::target::word
AOT_NativeEntry_kNumCallWrapperArguments = 2;
static constexpr dart::compiler::target::word AOT_String_kMaxElements =
- 2305843009213693951;
+ 536870911;
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_kFunctionTypeArguments = 5;
static constexpr dart::compiler::target::word
@@ -11830,7 +11843,7 @@
static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult =
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
- 576460752303423487;
+ 134217727;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -12002,139 +12015,139 @@
static constexpr dart::compiler::target::word
AOT_SubtypeTestCache_cache_offset = 8;
static constexpr dart::compiler::target::word
- AOT_Thread_AllocateArray_entry_point_offset = 720;
+ AOT_Thread_AllocateArray_entry_point_offset = 728;
static constexpr dart::compiler::target::word
AOT_Thread_active_exception_offset = 1464;
static constexpr dart::compiler::target::word
AOT_Thread_active_stacktrace_offset = 1472;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_code_offset = 224;
+ AOT_Thread_array_write_barrier_code_offset = 232;
static constexpr dart::compiler::target::word
- AOT_Thread_array_write_barrier_entry_point_offset = 512;
+ AOT_Thread_array_write_barrier_entry_point_offset = 520;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 528;
+ AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
+ AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 536;
+ AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
+ AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_entry_point_offset = 544;
+ AOT_Thread_allocate_object_entry_point_offset = 552;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_stub_offset = 360;
+ AOT_Thread_allocate_object_stub_offset = 368;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_entry_point_offset = 552;
+ AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_parameterized_stub_offset = 368;
+ AOT_Thread_allocate_object_parameterized_stub_offset = 376;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_entry_point_offset = 560;
+ AOT_Thread_allocate_object_slow_entry_point_offset = 568;
static constexpr dart::compiler::target::word
- AOT_Thread_allocate_object_slow_stub_offset = 376;
+ AOT_Thread_allocate_object_slow_stub_offset = 384;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
1544;
static constexpr dart::compiler::target::word
- AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 648;
+ AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
- 208;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 200;
+ 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 = 632;
+ AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_entry_point_offset = 520;
+ AOT_Thread_call_to_runtime_entry_point_offset = 528;
static constexpr dart::compiler::target::word
- AOT_Thread_call_to_runtime_stub_offset = 256;
+ AOT_Thread_call_to_runtime_stub_offset = 264;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
1560;
static constexpr dart::compiler::target::word
- AOT_Thread_dispatch_table_array_offset = 88;
+ AOT_Thread_dispatch_table_array_offset = 96;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
- 600;
+ 608;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
- 432;
+ 440;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_entry_offset = 608;
+ AOT_Thread_deoptimize_entry_offset = 616;
static constexpr dart::compiler::target::word
- AOT_Thread_deoptimize_stub_offset = 440;
+ AOT_Thread_deoptimize_stub_offset = 448;
static constexpr dart::compiler::target::word
- AOT_Thread_double_abs_address_offset = 680;
+ AOT_Thread_double_abs_address_offset = 688;
static constexpr dart::compiler::target::word
- AOT_Thread_double_negate_address_offset = 672;
-static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
+ AOT_Thread_double_negate_address_offset = 680;
+static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
static constexpr dart::compiler::target::word
- AOT_Thread_enter_safepoint_stub_offset = 480;
+ AOT_Thread_enter_safepoint_stub_offset = 488;
static constexpr dart::compiler::target::word
AOT_Thread_execution_state_offset = 1504;
static constexpr dart::compiler::target::word
- AOT_Thread_exit_safepoint_stub_offset = 488;
+ AOT_Thread_exit_safepoint_stub_offset = 496;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_stub_offset = 496;
+ AOT_Thread_call_native_through_safepoint_stub_offset = 504;
static constexpr dart::compiler::target::word
- AOT_Thread_call_native_through_safepoint_entry_point_offset = 616;
+ AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_allocation_stub_code_offset = 240;
+ AOT_Thread_fix_allocation_stub_code_offset = 248;
static constexpr dart::compiler::target::word
- AOT_Thread_fix_callers_target_code_offset = 232;
+ AOT_Thread_fix_callers_target_code_offset = 240;
static constexpr dart::compiler::target::word
- AOT_Thread_float_absolute_address_offset = 704;
+ AOT_Thread_float_absolute_address_offset = 712;
static constexpr dart::compiler::target::word
- AOT_Thread_float_negate_address_offset = 696;
+ AOT_Thread_float_negate_address_offset = 704;
static constexpr dart::compiler::target::word
- AOT_Thread_float_not_address_offset = 688;
+ AOT_Thread_float_not_address_offset = 696;
static constexpr dart::compiler::target::word
- AOT_Thread_float_zerow_address_offset = 712;
+ AOT_Thread_float_zerow_address_offset = 720;
static constexpr dart::compiler::target::word
AOT_Thread_global_object_pool_offset = 1480;
static constexpr dart::compiler::target::word
- AOT_Thread_invoke_dart_code_stub_offset = 248;
+ AOT_Thread_invoke_dart_code_stub_offset = 256;
static constexpr dart::compiler::target::word
AOT_Thread_exit_through_ffi_offset = 1536;
-static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
+static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
1568;
static constexpr dart::compiler::target::word
- AOT_Thread_field_table_values_offset = 128;
+ AOT_Thread_field_table_values_offset = 136;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_return_stub_offset = 448;
+ AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_deopt_from_throw_stub_offset = 456;
+ AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
static constexpr dart::compiler::target::word
- AOT_Thread_lazy_specialize_type_test_stub_offset = 472;
+ AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
static constexpr dart::compiler::target::word
- AOT_Thread_marking_stack_block_offset = 160;
+ AOT_Thread_marking_stack_block_offset = 168;
static constexpr dart::compiler::target::word
- AOT_Thread_megamorphic_call_checked_entry_offset = 584;
+ AOT_Thread_megamorphic_call_checked_entry_offset = 592;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_entry_offset = 592;
+ AOT_Thread_switchable_call_miss_entry_offset = 600;
static constexpr dart::compiler::target::word
- AOT_Thread_switchable_call_miss_stub_offset = 400;
+ AOT_Thread_switchable_call_miss_stub_offset = 408;
static constexpr dart::compiler::target::word
- AOT_Thread_no_scope_native_wrapper_entry_point_offset = 640;
+ 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 = 272;
+ AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
static constexpr dart::compiler::target::word
AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
- 264;
+ 272;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 288;
+ AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
static constexpr dart::compiler::target::word
- AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 280;
+ AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 304;
+ AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
static constexpr dart::compiler::target::word
- AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 296;
+ AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 320;
+ AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
static constexpr dart::compiler::target::word
- AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 312;
+ AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 336;
+ AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
static constexpr dart::compiler::target::word
- AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 328;
+ AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
- 192;
+ 200;
static constexpr dart::compiler::target::word
- AOT_Thread_predefined_symbols_address_offset = 656;
+ AOT_Thread_predefined_symbols_address_offset = 664;
static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
1488;
static constexpr dart::compiler::target::word
@@ -12142,39 +12155,40 @@
static constexpr dart::compiler::target::word
AOT_Thread_safepoint_state_offset = 1512;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_stub_offset = 464;
+ AOT_Thread_slow_type_test_stub_offset = 472;
static constexpr dart::compiler::target::word
- AOT_Thread_slow_type_test_entry_point_offset = 624;
+ AOT_Thread_slow_type_test_entry_point_offset = 632;
static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
64;
static constexpr dart::compiler::target::word
- AOT_Thread_saved_stack_limit_offset = 112;
+ AOT_Thread_saved_stack_limit_offset = 120;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_flags_offset = 120;
+ AOT_Thread_stack_overflow_flags_offset = 128;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 576;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 392;
+ AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 568;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
static constexpr dart::compiler::target::word
- AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 384;
+ AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
static constexpr dart::compiler::target::word
- AOT_Thread_store_buffer_block_offset = 152;
+ AOT_Thread_store_buffer_block_offset = 160;
static constexpr dart::compiler::target::word
- AOT_Thread_top_exit_frame_info_offset = 144;
-static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
+ AOT_Thread_top_exit_frame_info_offset = 152;
+static constexpr dart::compiler::target::word AOT_Thread_top_offset = 104;
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
40;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_int64_runtime_arg_offset = 184;
-static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
+ AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
+static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_code_offset = 216;
+ AOT_Thread_write_barrier_code_offset = 224;
static constexpr dart::compiler::target::word
- AOT_Thread_write_barrier_entry_point_offset = 504;
+ AOT_Thread_write_barrier_entry_point_offset = 512;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 72;
+static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80;
static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
1520;
static constexpr dart::compiler::target::word
@@ -12249,9 +12263,9 @@
8, 24, 16, 32};
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
- 1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
- 1392, 1400, 1408, 1416, -1, -1, -1, -1, 1424, 1432, -1,
- -1, 1440, 1448, 1456, -1, -1, -1, -1, -1, -1};
+ 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
+ 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1,
+ -1, -1, 1448, 1456, -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;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index 2008f3f..e249228 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -258,6 +258,7 @@
FIELD(Thread, write_barrier_code_offset) \
FIELD(Thread, write_barrier_entry_point_offset) \
FIELD(Thread, write_barrier_mask_offset) \
+ FIELD(Thread, heap_base_offset) \
FIELD(Thread, callback_code_offset) \
FIELD(Thread, callback_stack_return_offset) \
FIELD(TimelineStream, enabled_offset) \
diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc
index c4ed124..e08b548 100644
--- a/runtime/vm/compiler/stub_code_compiler.cc
+++ b/runtime/vm/compiler/stub_code_compiler.cc
@@ -796,19 +796,6 @@
GenerateRangeError(assembler, /*with_fpu_regs=*/true);
}
-void StubCodeCompiler::GenerateFrameAwaitingMaterializationStub(
- Assembler* assembler) {
- __ Breakpoint(); // Marker stub.
-}
-
-void StubCodeCompiler::GenerateAsynchronousGapMarkerStub(Assembler* assembler) {
- __ Breakpoint(); // Marker stub.
-}
-
-void StubCodeCompiler::GenerateUnknownDartCodeStub(Assembler* assembler) {
- __ Breakpoint(); // Marker stub.
-}
-
} // namespace compiler
} // namespace dart
diff --git a/runtime/vm/compiler/stub_code_compiler_arm.cc b/runtime/vm/compiler/stub_code_compiler_arm.cc
index db3bb60..0dfaa61 100644
--- a/runtime/vm/compiler/stub_code_compiler_arm.cc
+++ b/runtime/vm/compiler/stub_code_compiler_arm.cc
@@ -3291,6 +3291,15 @@
CODE_REG, target::Code::entry_point_offset(CodeEntryKind::kMonomorphic)));
}
+void StubCodeCompiler::GenerateFrameAwaitingMaterializationStub(
+ Assembler* assembler) {
+ __ bkpt(0);
+}
+
+void StubCodeCompiler::GenerateAsynchronousGapMarkerStub(Assembler* assembler) {
+ __ bkpt(0);
+}
+
void StubCodeCompiler::GenerateNotLoadedStub(Assembler* assembler) {
__ EnterStubFrame();
__ CallRuntime(kNotLoadedRuntimeEntry, 0);
diff --git a/runtime/vm/compiler/stub_code_compiler_arm64.cc b/runtime/vm/compiler/stub_code_compiler_arm64.cc
index e5f2d4e..01b54d7 100644
--- a/runtime/vm/compiler/stub_code_compiler_arm64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_arm64.cc
@@ -559,9 +559,18 @@
Label length, smi_case;
// The user-controlled index might not fit into a Smi.
+#if !defined(DART_COMPRESSED_POINTERS)
__ adds(RangeErrorABI::kIndexReg, RangeErrorABI::kIndexReg,
compiler::Operand(RangeErrorABI::kIndexReg));
__ BranchIf(NO_OVERFLOW, &length);
+#else
+ __ mov(TMP, RangeErrorABI::kIndexReg);
+ __ SmiTag(RangeErrorABI::kIndexReg);
+ __ sxtw(RangeErrorABI::kIndexReg, RangeErrorABI::kIndexReg);
+ __ cmp(TMP,
+ compiler::Operand(RangeErrorABI::kIndexReg, ASR, kSmiTagSize));
+ __ BranchIf(EQ, &length);
+#endif
{
// Allocate a mint, reload the two registers and popualte the mint.
__ PushRegister(NULL_REG);
@@ -2172,8 +2181,14 @@
__ BranchIfNotSmi(TMP, not_smi_or_overflow);
switch (kind) {
case Token::kADD: {
- __ adds(R0, R1, Operand(R0)); // Adds.
+#if !defined(DART_COMPRESSED_POINTERS)
+ __ adds(R0, R1, Operand(R0)); // Add.
__ b(not_smi_or_overflow, VS); // Branch if overflow.
+#else
+ __ addsw(R0, R1, Operand(R0)); // Add (32-bit).
+ __ b(not_smi_or_overflow, VS); // Branch if overflow.
+ __ sxtw(R0, R0); // Sign extend.
+#endif
break;
}
case Token::kLT: {
@@ -3435,6 +3450,15 @@
__ br(R1);
}
+void StubCodeCompiler::GenerateFrameAwaitingMaterializationStub(
+ Assembler* assembler) {
+ __ brk(0);
+}
+
+void StubCodeCompiler::GenerateAsynchronousGapMarkerStub(Assembler* assembler) {
+ __ brk(0);
+}
+
void StubCodeCompiler::GenerateNotLoadedStub(Assembler* assembler) {
__ EnterStubFrame();
__ CallRuntime(kNotLoadedRuntimeEntry, 0);
diff --git a/runtime/vm/compiler/stub_code_compiler_ia32.cc b/runtime/vm/compiler/stub_code_compiler_ia32.cc
index d96a18b..229be66 100644
--- a/runtime/vm/compiler/stub_code_compiler_ia32.cc
+++ b/runtime/vm/compiler/stub_code_compiler_ia32.cc
@@ -2788,6 +2788,15 @@
__ int3(); // AOT only.
}
+void StubCodeCompiler::GenerateFrameAwaitingMaterializationStub(
+ Assembler* assembler) {
+ __ int3(); // Marker stub.
+}
+
+void StubCodeCompiler::GenerateAsynchronousGapMarkerStub(Assembler* assembler) {
+ __ int3(); // Marker stub.
+}
+
void StubCodeCompiler::GenerateNotLoadedStub(Assembler* assembler) {
__ EnterStubFrame();
__ CallRuntime(kNotLoadedRuntimeEntry, 0);
diff --git a/runtime/vm/compiler/stub_code_compiler_x64.cc b/runtime/vm/compiler/stub_code_compiler_x64.cc
index 8c4bb23..e852d5a 100644
--- a/runtime/vm/compiler/stub_code_compiler_x64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_x64.cc
@@ -502,8 +502,17 @@
Label length, smi_case;
// The user-controlled index might not fit into a Smi.
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(RangeErrorABI::kIndexReg, RangeErrorABI::kIndexReg);
__ BranchIf(NO_OVERFLOW, &length);
+#else
+ __ movq(TMP, RangeErrorABI::kIndexReg);
+ __ SmiTag(RangeErrorABI::kIndexReg);
+ __ sarq(TMP, Immediate(30));
+ __ addq(TMP, Immediate(1));
+ __ cmpq(TMP, Immediate(2));
+ __ j(BELOW, &length);
+#endif
{
// Allocate a mint, reload the two registers and popualte the mint.
__ PushImmediate(Immediate(0));
@@ -2099,8 +2108,14 @@
__ j(NOT_ZERO, not_smi_or_overflow);
switch (kind) {
case Token::kADD: {
+#if !defined(DART_COMPRESSED_POINTERS)
__ addq(RAX, RCX);
__ j(OVERFLOW, not_smi_or_overflow);
+#else
+ __ addl(RAX, RCX);
+ __ j(OVERFLOW, not_smi_or_overflow);
+ __ movsxd(RAX, RAX);
+#endif
break;
}
case Token::kLT: {
@@ -3365,6 +3380,15 @@
__ jmp(RCX);
}
+void StubCodeCompiler::GenerateFrameAwaitingMaterializationStub(
+ Assembler* assembler) {
+ __ int3();
+}
+
+void StubCodeCompiler::GenerateAsynchronousGapMarkerStub(Assembler* assembler) {
+ __ int3();
+}
+
void StubCodeCompiler::GenerateNotLoadedStub(Assembler* assembler) {
__ EnterStubFrame();
__ CallRuntime(kNotLoadedRuntimeEntry, 0);
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index 8227d64..16af371 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -52,9 +52,9 @@
R18 = 18, // reserved on iOS, shadow call stack on Fuchsia.
R19 = 19,
R20 = 20,
- R21 = 21,
+ R21 = 21, // DISPATCH_TABLE_REG
R22 = 22, // NULL_REG
- R23 = 23,
+ R23 = 23, // HEAP_BASE
R24 = 24,
R25 = 25,
R26 = 26, // THR
@@ -143,6 +143,7 @@
const Register CALLEE_SAVED_TEMP2 = R20;
const Register BARRIER_MASK = R28;
const Register NULL_REG = R22; // Caches NullObject() value.
+const Register HEAP_BASE = R23;
// ABI for catch-clause entry point.
const Register kExceptionObjectReg = R0;
@@ -345,12 +346,12 @@
const VRegister kAbiLastPreservedFpuReg = V15;
const int kAbiPreservedFpuRegCount = 8;
-const intptr_t kReservedCpuRegisters = R(SPREG) | // Dart SP
- R(FPREG) | R(TMP) | R(TMP2) | R(PP) |
- R(THR) | R(LR) | R(BARRIER_MASK) |
- R(NULL_REG) | R(R31) | // C++ SP
- R(R18) | R(DISPATCH_TABLE_REG);
-constexpr intptr_t kNumberOfReservedCpuRegisters = 12;
+const intptr_t kReservedCpuRegisters =
+ R(SPREG) | // Dart SP
+ R(FPREG) | R(TMP) | R(TMP2) | R(PP) | R(THR) | R(LR) | R(BARRIER_MASK) |
+ R(NULL_REG) | R(HEAP_BASE) | R(R31) | // C++ SP
+ R(R18) | R(DISPATCH_TABLE_REG);
+constexpr intptr_t kNumberOfReservedCpuRegisters = 13;
// CPU registers available to Dart allocator.
const RegList kDartAvailableCpuRegs =
kAllCpuRegistersList & ~kReservedCpuRegisters;
@@ -365,7 +366,7 @@
const int kDartVolatileFpuRegCount = 24;
// Two callee save scratch registers used by leaf runtime call sequence.
-const Register kCallLeafRuntimeCalleeSaveScratch1 = R23;
+const Register kCallLeafRuntimeCalleeSaveScratch1 = R20;
const Register kCallLeafRuntimeCalleeSaveScratch2 = R25;
static_assert((R(kCallLeafRuntimeCalleeSaveScratch1) & kAbiPreservedCpuRegs) !=
0,
@@ -940,14 +941,14 @@
enum Extend {
kNoExtend = -1,
- UXTB = 0,
- UXTH = 1,
- UXTW = 2,
- UXTX = 3,
- SXTB = 4,
- SXTH = 5,
- SXTW = 6,
- SXTX = 7,
+ UXTB = 0, // Zero extend byte.
+ UXTH = 1, // Zero extend halfword (16 bits).
+ UXTW = 2, // Zero extend word (32 bits).
+ UXTX = 3, // Zero extend doubleword (64 bits).
+ SXTB = 4, // Sign extend byte.
+ SXTH = 5, // Sign extend halfword (16 bits).
+ SXTW = 6, // Sign extend word (32 bits).
+ SXTX = 7, // Sign extend doubleword (64 bits).
kMaxExtend = 8,
};
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index 16cc361..acf1abd 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -1846,6 +1846,7 @@
Code& code = Code::Handle(zone);
Code& inlined_code = Code::Handle(zone);
Array& deopt_frame = Array::Handle(zone);
+ Smi& offset = Smi::Handle(zone);
Function& function = Function::Handle(zone);
constexpr intptr_t kDefaultStackAllocation = 8;
@@ -1853,7 +1854,8 @@
const auto& code_array = GrowableObjectArray::ZoneHandle(
zone, GrowableObjectArray::New(kDefaultStackAllocation));
- GrowableArray<uword> pc_offset_array(kDefaultStackAllocation);
+ const auto& pc_offset_array = GrowableObjectArray::ZoneHandle(
+ zone, GrowableObjectArray::New(kDefaultStackAllocation));
bool has_async = false;
std::function<void(StackFrame*)> on_sync_frame = [&](StackFrame* frame) {
@@ -1862,7 +1864,7 @@
&inlined_code, &deopt_frame);
};
- StackTraceUtils::CollectFramesLazy(thread, code_array, &pc_offset_array,
+ StackTraceUtils::CollectFramesLazy(thread, code_array, pc_offset_array,
/*skip_frames=*/0, &on_sync_frame,
&has_async);
@@ -1898,8 +1900,8 @@
continue;
}
- const uword pc_offset = pc_offset_array[i];
- const uword absolute_pc = code.PayloadStart() + pc_offset;
+ offset ^= pc_offset_array.At(i);
+ const uword absolute_pc = code.PayloadStart() + offset.Value();
stack_trace->AddAsyncCausalFrame(absolute_pc, code);
}
@@ -2134,7 +2136,8 @@
function = code.function();
if (function.is_visible()) {
ASSERT(function.ptr() == code.function());
- uword pc = code.PayloadStart() + ex_trace.PcOffsetAtFrame(i);
+ uword pc =
+ code.PayloadStart() + Smi::Value(ex_trace.PcOffsetAtFrame(i));
if (code.is_optimized() && ex_trace.expand_inlined()) {
// Traverse inlined frames.
for (InlinedFunctionsIterator it(code, pc); !it.Done();
diff --git a/runtime/vm/dwarf.cc b/runtime/vm/dwarf.cc
index 35df763..a818df9 100644
--- a/runtime/vm/dwarf.cc
+++ b/runtime/vm/dwarf.cc
@@ -146,7 +146,7 @@
// Dwarf object (which is currently true). Otherwise, need to copy.
code_to_name_.Insert({&code, name});
- if (code.IsFunctionCode() && !code.IsUnknownDartCode()) {
+ if (code.IsFunctionCode()) {
const Function& function = Function::Handle(zone_, code.function());
AddFunction(function);
}
@@ -364,7 +364,7 @@
for (intptr_t i = 0; i < codes_.length(); i++) {
const Code& code = *(codes_[i]);
RELEASE_ASSERT(!code.IsNull());
- if (!code.IsFunctionCode() || code.IsUnknownDartCode()) {
+ if (!code.IsFunctionCode()) {
continue;
}
diff --git a/runtime/vm/exceptions.cc b/runtime/vm/exceptions.cc
index 1d76750..e9464e3 100644
--- a/runtime/vm/exceptions.cc
+++ b/runtime/vm/exceptions.cc
@@ -35,7 +35,7 @@
StackTraceBuilder() {}
virtual ~StackTraceBuilder() {}
- virtual void AddFrame(const Object& code, uword pc_offset) = 0;
+ virtual void AddFrame(const Object& code, const Smi& offset) = 0;
};
class PreallocatedStackTraceBuilder : public StackTraceBuilder {
@@ -50,7 +50,7 @@
}
~PreallocatedStackTraceBuilder() {}
- void AddFrame(const Object& code, uword pc_offset) override;
+ virtual void AddFrame(const Object& code, const Smi& offset);
private:
static const int kNumTopframes = StackTrace::kPreallocatedStackdepth / 2;
@@ -63,10 +63,11 @@
};
void PreallocatedStackTraceBuilder::AddFrame(const Object& code,
- uword pc_offset) {
+ const Smi& offset) {
if (cur_index_ >= StackTrace::kPreallocatedStackdepth) {
// The number of frames is overflowing the preallocated stack trace object.
Object& frame_code = Object::Handle();
+ Smi& frame_offset = Smi::Handle();
intptr_t start = StackTrace::kPreallocatedStackdepth - (kNumTopframes - 1);
intptr_t null_slot = start - 2;
// We are going to drop one frame.
@@ -79,19 +80,20 @@
dropped_frames_++;
}
// Encode the number of dropped frames into the pc offset.
- stacktrace_.SetPcOffsetAtFrame(null_slot, dropped_frames_);
+ frame_offset = Smi::New(dropped_frames_);
+ stacktrace_.SetPcOffsetAtFrame(null_slot, frame_offset);
// Move frames one slot down so that we can accommodate the new frame.
for (intptr_t i = start; i < StackTrace::kPreallocatedStackdepth; i++) {
intptr_t prev = (i - 1);
frame_code = stacktrace_.CodeAtFrame(i);
- const uword frame_offset = stacktrace_.PcOffsetAtFrame(i);
+ frame_offset = stacktrace_.PcOffsetAtFrame(i);
stacktrace_.SetCodeAtFrame(prev, frame_code);
stacktrace_.SetPcOffsetAtFrame(prev, frame_offset);
}
cur_index_ = (StackTrace::kPreallocatedStackdepth - 1);
}
stacktrace_.SetCodeAtFrame(cur_index_, code);
- stacktrace_.SetPcOffsetAtFrame(cur_index_, pc_offset);
+ stacktrace_.SetPcOffsetAtFrame(cur_index_, offset);
cur_index_ += 1;
}
@@ -102,14 +104,15 @@
StackFrame* frame = frames.NextFrame();
ASSERT(frame != NULL); // We expect to find a dart invocation frame.
Code& code = Code::Handle();
+ Smi& offset = Smi::Handle();
for (; frame != NULL; frame = frames.NextFrame()) {
if (!frame->IsDartFrame()) {
continue;
}
code = frame->LookupDartCode();
ASSERT(code.ContainsInstructionAt(frame->pc()));
- const uword pc_offset = frame->pc() - code.PayloadStart();
- builder->AddFrame(code, pc_offset);
+ offset = Smi::New(frame->pc() - code.PayloadStart());
+ builder->AddFrame(code, offset);
}
}
diff --git a/runtime/vm/globals.h b/runtime/vm/globals.h
index 3ac014d..be0584f 100644
--- a/runtime/vm/globals.h
+++ b/runtime/vm/globals.h
@@ -20,7 +20,11 @@
namespace dart {
// Smi value range is from -(2^N) to (2^N)-1.
// N=30 (32-bit build) or N=62 (64-bit build).
+#if !defined(DART_COMPRESSED_POINTERS)
const intptr_t kSmiBits = kBitsPerWord - 2;
+#else
+const intptr_t kSmiBits = 30;
+#endif
const intptr_t kSmiMax = (static_cast<intptr_t>(1) << kSmiBits) - 1;
const intptr_t kSmiMin = -(static_cast<intptr_t>(1) << kSmiBits);
diff --git a/runtime/vm/instructions_arm.cc b/runtime/vm/instructions_arm.cc
index 1c45ff9..c2b7014 100644
--- a/runtime/vm/instructions_arm.cc
+++ b/runtime/vm/instructions_arm.cc
@@ -263,9 +263,10 @@
object_pool_.SetObjectAt(target_pool_index_, target_code);
}
-SwitchableCallPatternBase::SwitchableCallPatternBase(
- const ObjectPool& object_pool)
- : object_pool_(object_pool), data_pool_index_(-1), target_pool_index_(-1) {}
+SwitchableCallPatternBase::SwitchableCallPatternBase(const Code& code)
+ : object_pool_(ObjectPool::Handle(code.GetObjectPool())),
+ data_pool_index_(-1),
+ target_pool_index_(-1) {}
ObjectPtr SwitchableCallPatternBase::data() const {
return object_pool_.ObjectAt(data_pool_index_);
@@ -277,7 +278,7 @@
}
SwitchableCallPattern::SwitchableCallPattern(uword pc, const Code& code)
- : SwitchableCallPatternBase(ObjectPool::Handle(code.GetObjectPool())) {
+ : SwitchableCallPatternBase(code) {
ASSERT(code.ContainsInstructionAt(pc));
// Last instruction: blx lr.
ASSERT(*(reinterpret_cast<uint32_t*>(pc) - 1) == 0xe12fff3e);
@@ -301,9 +302,9 @@
object_pool_.SetObjectAt(target_pool_index_, target);
}
-BareSwitchableCallPattern::BareSwitchableCallPattern(uword pc)
- : SwitchableCallPatternBase(ObjectPool::Handle(
- IsolateGroup::Current()->object_store()->global_object_pool())) {
+BareSwitchableCallPattern::BareSwitchableCallPattern(uword pc, const Code& code)
+ : SwitchableCallPatternBase(code) {
+ ASSERT(code.ContainsInstructionAt(pc));
// Last instruction: blx lr.
ASSERT(*(reinterpret_cast<uint32_t*>(pc) - 1) == 0xe12fff3e);
diff --git a/runtime/vm/instructions_arm.h b/runtime/vm/instructions_arm.h
index a1e1f9b..7b7b43b 100644
--- a/runtime/vm/instructions_arm.h
+++ b/runtime/vm/instructions_arm.h
@@ -131,7 +131,7 @@
// call target.entry call stub.entry call stub.entry
class SwitchableCallPatternBase : public ValueObject {
public:
- explicit SwitchableCallPatternBase(const ObjectPool& object_pool);
+ explicit SwitchableCallPatternBase(const Code& code);
ObjectPtr data() const;
void SetData(const Object& data) const;
@@ -166,7 +166,7 @@
// of the monomorphic function or a stub entry point.
class BareSwitchableCallPattern : public SwitchableCallPatternBase {
public:
- explicit BareSwitchableCallPattern(uword pc);
+ BareSwitchableCallPattern(uword pc, const Code& code);
uword target_entry() const;
void SetTarget(const Code& target) const;
diff --git a/runtime/vm/instructions_arm64.cc b/runtime/vm/instructions_arm64.cc
index d193510..a38a07e 100644
--- a/runtime/vm/instructions_arm64.cc
+++ b/runtime/vm/instructions_arm64.cc
@@ -397,9 +397,10 @@
// No need to flush the instruction cache, since the code is not modified.
}
-SwitchableCallPatternBase::SwitchableCallPatternBase(
- const ObjectPool& object_pool)
- : object_pool_(object_pool), data_pool_index_(-1), target_pool_index_(-1) {}
+SwitchableCallPatternBase::SwitchableCallPatternBase(const Code& code)
+ : object_pool_(ObjectPool::Handle(code.GetObjectPool())),
+ data_pool_index_(-1),
+ target_pool_index_(-1) {}
ObjectPtr SwitchableCallPatternBase::data() const {
return object_pool_.ObjectAt(data_pool_index_);
@@ -411,7 +412,7 @@
}
SwitchableCallPattern::SwitchableCallPattern(uword pc, const Code& code)
- : SwitchableCallPatternBase(ObjectPool::Handle(code.GetObjectPool())) {
+ : SwitchableCallPatternBase(code) {
ASSERT(code.ContainsInstructionAt(pc));
// Last instruction: blr lr.
ASSERT(*(reinterpret_cast<uint32_t*>(pc) - 1) == 0xd63f03c0);
@@ -437,9 +438,9 @@
object_pool_.SetObjectAt(target_pool_index_, target);
}
-BareSwitchableCallPattern::BareSwitchableCallPattern(uword pc)
- : SwitchableCallPatternBase(ObjectPool::Handle(
- IsolateGroup::Current()->object_store()->global_object_pool())) {
+BareSwitchableCallPattern::BareSwitchableCallPattern(uword pc, const Code& code)
+ : SwitchableCallPatternBase(code) {
+ ASSERT(code.ContainsInstructionAt(pc));
// Last instruction: blr lr.
ASSERT(*(reinterpret_cast<uint32_t*>(pc) - 1) == 0xd63f03c0);
diff --git a/runtime/vm/instructions_arm64.h b/runtime/vm/instructions_arm64.h
index b450522..ae75539 100644
--- a/runtime/vm/instructions_arm64.h
+++ b/runtime/vm/instructions_arm64.h
@@ -141,7 +141,7 @@
// call target.entry call stub.entry call stub.entry
class SwitchableCallPatternBase : public ValueObject {
public:
- explicit SwitchableCallPatternBase(const ObjectPool& object_pool);
+ explicit SwitchableCallPatternBase(const Code& code);
ObjectPtr data() const;
void SetData(const Object& data) const;
@@ -176,7 +176,7 @@
// of the monomorphic function or a stub entry point.
class BareSwitchableCallPattern : public SwitchableCallPatternBase {
public:
- explicit BareSwitchableCallPattern(uword pc);
+ BareSwitchableCallPattern(uword pc, const Code& code);
uword target_entry() const;
void SetTarget(const Code& target) const;
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 286f4f1..1186974 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -75,7 +75,7 @@
namespace dart {
-DEFINE_FLAG(uint64_t,
+DEFINE_FLAG(int,
huge_method_cutoff_in_code_size,
200000,
"Huge method cutoff in unoptimized code size (in bytes).");
@@ -1059,11 +1059,6 @@
cls.set_is_declaration_loaded();
cls.set_is_type_finalized();
- cls = Class::New<FunctionType, RTN::FunctionType>(isolate_group);
- cls.set_is_allocate_finalized();
- cls.set_is_declaration_loaded();
- cls.set_is_type_finalized();
-
cls = dynamic_class_;
*dynamic_type_ =
Type::New(cls, Object::null_type_arguments(), Nullability::kNullable);
@@ -1370,12 +1365,6 @@
cls = isolate_group->class_table()->At(kForwardingCorpse);
cls.set_name(Symbols::ForwardingCorpse());
-#if defined(DART_PRECOMPILER)
- const auto& function =
- Function::Handle(StubCode::UnknownDartCode().function());
- function.set_name(Symbols::OptimizedOut());
-#endif // defined(DART_PRECOMPILER)
-
{
ASSERT(isolate_group == Dart::vm_isolate_group());
Thread* thread = Thread::Current();
@@ -16784,8 +16773,7 @@
#endif // !defined(DART_PRECOMPILED_RUNTIME)
bool Code::SlowFindRawCodeVisitor::FindObject(ObjectPtr raw_obj) const {
- return UntaggedCode::ContainsPC(raw_obj, pc_) &&
- !Code::IsUnknownDartCode(Code::RawCast(raw_obj));
+ return UntaggedCode::ContainsPC(raw_obj, pc_);
}
CodePtr Code::LookupCodeInIsolateGroup(IsolateGroup* isolate_group, uword pc) {
@@ -16940,10 +16928,6 @@
return OwnerClassId() == kFunctionCid;
}
-bool Code::IsUnknownDartCode(CodePtr code) {
- return code == StubCode::UnknownDartCode().ptr();
-}
-
void Code::DisableDartCode() const {
SafepointOperationScope safepoint(Thread::Current());
ASSERT(IsFunctionCode());
@@ -17060,41 +17044,6 @@
reader.DumpSourcePositions(relative_addresses ? 0 : PayloadStart());
}
-bool Code::CanBeOmittedFromAOTSnapshot() const {
- NoSafepointScope no_safepoint;
-
- // Code objects are stored in stack frames if not use_bare_instructions.
- // Code objects are used by stack traces if not dwarf_stack_traces.
- if (!FLAG_precompiled_mode || !FLAG_use_bare_instructions ||
- !FLAG_dwarf_stack_traces_mode) {
- return false;
- }
- // Only omit Code objects corresponding to Dart functions.
- if (!IsFunctionCode()) {
- return false;
- }
- // Retain Code object if it has exception handlers or PC descriptors.
- if ((exception_handlers() != Object::empty_exception_handlers().ptr()) ||
- (pc_descriptors() != Object::empty_descriptors().ptr())) {
- return false;
- }
- if (!owner()->IsHeapObject()) {
- // Can drop Code if precompiler dropped the Function and only left Smi
- // classId.
- return true;
- }
- // Retain Code objects corresponding to:
- // * invisible functions (to filter them from stack traces);
- // * async/async* closures (to construct async stacks).
- // * native functions (to find native implementation).
- const auto& func = Function::Handle(function());
- if (!func.is_visible() || func.is_native() || func.IsAsyncClosure() ||
- func.IsAsyncGenClosure()) {
- return false;
- }
- return true;
-}
-
intptr_t Context::GetLevel() const {
intptr_t level = 0;
Context& parent_ctx = Context::Handle(parent());
@@ -24717,17 +24666,15 @@
code_array.SetAt(frame_index, code);
}
-uword StackTrace::PcOffsetAtFrame(intptr_t frame_index) const {
- const TypedData& pc_offset_array =
- TypedData::Handle(untag()->pc_offset_array());
- return pc_offset_array.GetUintPtr(frame_index * kWordSize);
+SmiPtr StackTrace::PcOffsetAtFrame(intptr_t frame_index) const {
+ const Array& pc_offset_array = Array::Handle(untag()->pc_offset_array());
+ return static_cast<SmiPtr>(pc_offset_array.At(frame_index));
}
void StackTrace::SetPcOffsetAtFrame(intptr_t frame_index,
- uword pc_offset) const {
- const TypedData& pc_offset_array =
- TypedData::Handle(untag()->pc_offset_array());
- pc_offset_array.SetUintPtr(frame_index * kWordSize, pc_offset);
+ const Smi& pc_offset) const {
+ const Array& pc_offset_array = Array::Handle(untag()->pc_offset_array());
+ pc_offset_array.SetAt(frame_index, pc_offset);
}
void StackTrace::set_async_link(const StackTrace& async_link) const {
@@ -24738,7 +24685,7 @@
untag()->set_code_array(code_array.ptr());
}
-void StackTrace::set_pc_offset_array(const TypedData& pc_offset_array) const {
+void StackTrace::set_pc_offset_array(const Array& pc_offset_array) const {
untag()->set_pc_offset_array(pc_offset_array.ptr());
}
@@ -24751,7 +24698,7 @@
}
StackTracePtr StackTrace::New(const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
Heap::Space space) {
StackTrace& result = StackTrace::Handle();
{
@@ -24768,7 +24715,7 @@
}
StackTracePtr StackTrace::New(const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
const StackTrace& async_link,
bool skip_sync_start_in_parent_stack,
Heap::Space space) {
@@ -24955,8 +24902,9 @@
if ((i < (stack_trace.Length() - 1)) &&
(stack_trace.CodeAtFrame(i + 1) != Code::null())) {
buffer.AddString("...\n...\n");
+ ASSERT(stack_trace.PcOffsetAtFrame(i) != Smi::null());
// To account for gap frames.
- frame_index += stack_trace.PcOffsetAtFrame(i);
+ frame_index += Smi::Value(stack_trace.PcOffsetAtFrame(i));
}
continue;
}
@@ -24969,7 +24917,7 @@
continue;
}
- const uword pc_offset = stack_trace.PcOffsetAtFrame(i);
+ intptr_t pc_offset = Smi::Value(stack_trace.PcOffsetAtFrame(i));
ASSERT(code_object.IsCode());
code ^= code_object.ptr();
ASSERT(code.IsFunctionCode());
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 33d8942..5cf9f6c 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -5970,7 +5970,6 @@
uword PayloadStart() const { return PayloadStartOf(ptr()); }
static uword PayloadStartOf(const CodePtr code) {
#if defined(DART_PRECOMPILED_RUNTIME)
- if (IsUnknownDartCode(code)) return 0;
const uword entry_offset = HasMonomorphicEntry(code)
? Instructions::kPolymorphicEntryOffsetAOT
: 0;
@@ -6016,10 +6015,9 @@
}
// Returns the size of [instructions()].
- uword Size() const { return PayloadSizeOf(ptr()); }
- static uword PayloadSizeOf(const CodePtr code) {
+ intptr_t Size() const { return PayloadSizeOf(ptr()); }
+ static intptr_t PayloadSizeOf(const CodePtr code) {
#if defined(DART_PRECOMPILED_RUNTIME)
- if (IsUnknownDartCode(code)) return kUwordMax;
return code->untag()->instructions_length_;
#else
return Instructions::Size(InstructionsOf(code));
@@ -6349,11 +6347,6 @@
bool IsTypeTestStubCode() const;
bool IsFunctionCode() const;
- // Returns true if this Code object represents
- // Dart function code without any additional information.
- bool IsUnknownDartCode() const { return IsUnknownDartCode(ptr()); }
- static bool IsUnknownDartCode(CodePtr code);
-
void DisableDartCode() const;
void DisableStubCode() const;
@@ -6378,11 +6371,6 @@
untag()->set_object_pool(object_pool);
}
- // Returns true if given Code object can be omitted from
- // the AOT snapshot (when corresponding instructions are
- // included).
- bool CanBeOmittedFromAOTSnapshot() const;
-
private:
void set_state_bits(intptr_t bits) const;
@@ -10815,9 +10803,9 @@
ObjectPtr CodeAtFrame(intptr_t frame_index) const;
void SetCodeAtFrame(intptr_t frame_index, const Object& code) const;
- TypedDataPtr pc_offset_array() const { return untag()->pc_offset_array(); }
- uword PcOffsetAtFrame(intptr_t frame_index) const;
- void SetPcOffsetAtFrame(intptr_t frame_index, uword pc_offset) const;
+ ArrayPtr pc_offset_array() const { return untag()->pc_offset_array(); }
+ SmiPtr PcOffsetAtFrame(intptr_t frame_index) const;
+ void SetPcOffsetAtFrame(intptr_t frame_index, const Smi& pc_offset) const;
bool skip_sync_start_in_parent_stack() const;
void set_skip_sync_start_in_parent_stack(bool value) const;
@@ -10840,18 +10828,18 @@
return RoundedAllocationSize(sizeof(UntaggedStackTrace));
}
static StackTracePtr New(const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
Heap::Space space = Heap::kNew);
static StackTracePtr New(const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
const StackTrace& async_link,
bool skip_sync_start_in_parent_stack,
Heap::Space space = Heap::kNew);
private:
void set_code_array(const Array& code_array) const;
- void set_pc_offset_array(const TypedData& pc_offset_array) const;
+ void set_pc_offset_array(const Array& pc_offset_array) const;
bool expand_inlined() const;
FINAL_HEAP_OBJECT_IMPLEMENTATION(StackTrace, Instance);
diff --git a/runtime/vm/object_graph.cc b/runtime/vm/object_graph.cc
index 0b7cd00..8fc322a 100644
--- a/runtime/vm/object_graph.cc
+++ b/runtime/vm/object_graph.cc
@@ -963,11 +963,7 @@
ScrubAndWriteUtf8(static_cast<FunctionPtr>(obj)->untag()->name_);
} else if (cid == kCodeCid) {
ObjectPtr owner = static_cast<CodePtr>(obj)->untag()->owner_;
- if (!owner->IsHeapObject()) {
- // Precompiler removed owner object from the snapshot,
- // only leaving Smi classId.
- writer_->WriteUnsigned(kNoData);
- } else if (owner->IsFunction()) {
+ if (owner->IsFunction()) {
writer_->WriteUnsigned(kNameData);
ScrubAndWriteUtf8(static_cast<FunctionPtr>(owner)->untag()->name_);
} else if (owner->IsClass()) {
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 57343da..feb4803 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -53,9 +53,8 @@
static StackTracePtr CreatePreallocatedStackTrace(Zone* zone) {
const Array& code_array = Array::Handle(
zone, Array::New(StackTrace::kPreallocatedStackdepth, Heap::kOld));
- const TypedData& pc_offset_array = TypedData::Handle(
- zone, TypedData::New(kUintPtrCid, StackTrace::kPreallocatedStackdepth,
- Heap::kOld));
+ const Array& pc_offset_array = Array::Handle(
+ zone, Array::New(StackTrace::kPreallocatedStackdepth, Heap::kOld));
const StackTrace& stack_trace =
StackTrace::Handle(zone, StackTrace::New(code_array, pc_offset_array));
// Expansion of inlined functions requires additional memory at run time,
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index cad9d62..f09faae 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -374,7 +374,7 @@
EXPECT(Smi::IsValid(-15));
EXPECT(Smi::IsValid(0xFFu));
// Upper two bits must be either 00 or 11.
-#if defined(ARCH_IS_64_BIT)
+#if defined(ARCH_IS_64_BIT) && !defined(DART_COMPRESSED_POINTERS)
EXPECT(!Smi::IsValid(kMaxInt64));
EXPECT(Smi::IsValid(0x3FFFFFFFFFFFFFFF));
EXPECT(Smi::IsValid(-1));
@@ -502,7 +502,7 @@
ISOLATE_UNIT_TEST_CASE(Mint) {
// On 64-bit architectures a Smi is stored in a 64 bit word. A Midint cannot
// be allocated if it does fit into a Smi.
-#if !defined(ARCH_IS_64_BIT)
+#if !defined(ARCH_IS_64_BIT) || defined(DART_COMPRESSED_POINTERS)
{
Mint& med = Mint::Handle();
EXPECT(med.IsNull());
diff --git a/runtime/vm/pointer_tagging.h b/runtime/vm/pointer_tagging.h
index 587bffa..a26c158 100644
--- a/runtime/vm/pointer_tagging.h
+++ b/runtime/vm/pointer_tagging.h
@@ -84,6 +84,12 @@
kSmiTagShift = 1,
};
+#if !defined(DART_COMPRESSED_POINTERS)
+static constexpr uintptr_t kHeapBaseMask = 0;
+#else
+static constexpr uintptr_t kHeapBaseMask = ~(4LL * GB - 1);
+#endif
+
} // namespace dart
#endif // RUNTIME_VM_POINTER_TAGGING_H_
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 684d7f3..f0d9d2c 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -1410,7 +1410,7 @@
~CodeLookupTableBuilder() {}
void VisitObject(ObjectPtr raw_obj) {
- if (raw_obj->IsCode() && !Code::IsUnknownDartCode(Code::RawCast(raw_obj))) {
+ if (raw_obj->IsCode()) {
table_->Add(Code::Handle(Code::RawCast(raw_obj)));
}
}
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc
index 0ba5912..599885b 100644
--- a/runtime/vm/profiler_service.cc
+++ b/runtime/vm/profiler_service.cc
@@ -70,9 +70,6 @@
return NULL;
}
const Script& script = Script::Handle(function_.script());
- if (script.IsNull()) {
- return NULL;
- }
const String& uri = String::Handle(script.resolved_url());
if (uri.IsNull()) {
return NULL;
diff --git a/runtime/vm/profiler_test.cc b/runtime/vm/profiler_test.cc
index 40f1a09..d4e62d2 100644
--- a/runtime/vm/profiler_test.cc
+++ b/runtime/vm/profiler_test.cc
@@ -2288,7 +2288,7 @@
static uword FindPCForTokenPosition(const Code& code, TokenPosition tp) {
GrowableArray<const Function*> functions;
GrowableArray<TokenPosition> token_positions;
- for (uword pc_offset = 0; pc_offset < code.Size(); pc_offset++) {
+ for (intptr_t pc_offset = 0; pc_offset < code.Size(); pc_offset++) {
code.GetInlinedFunctionsAtInstruction(pc_offset, &functions,
&token_positions);
if (token_positions[0] == tp) {
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 160185c..1ac32d0 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -2835,18 +2835,10 @@
// Define an aliases for intptr_t.
#if defined(ARCH_IS_32_BIT)
#define kIntPtrCid kTypedDataInt32ArrayCid
-#define GetIntPtr GetInt32
#define SetIntPtr SetInt32
-#define kUintPtrCid kTypedDataUint32ArrayCid
-#define GetUintPtr GetUint32
-#define SetUintPtr SetUint32
#elif defined(ARCH_IS_64_BIT)
#define kIntPtrCid kTypedDataInt64ArrayCid
-#define GetIntPtr GetInt64
#define SetIntPtr SetInt64
-#define kUintPtrCid kTypedDataUint64ArrayCid
-#define GetUintPtr GetUint64
-#define SetUintPtr SetUint64
#else
#error Architecture is not 32-bit or 64-bit.
#endif // ARCH_IS_32_BIT
@@ -2925,8 +2917,7 @@
async_link); // Link to parent async stack trace.
POINTER_FIELD(ArrayPtr,
code_array); // Code object for each frame in the stack trace.
- POINTER_FIELD(TypedDataPtr, pc_offset_array); // Offset of PC for each frame.
-
+ POINTER_FIELD(ArrayPtr, pc_offset_array); // Offset of PC for each frame.
VISIT_TO(ObjectPtr, pc_offset_array)
ObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
diff --git a/runtime/vm/regexp.cc b/runtime/vm/regexp.cc
index 9b880c8..782ecd1 100644
--- a/runtime/vm/regexp.cc
+++ b/runtime/vm/regexp.cc
@@ -2683,18 +2683,28 @@
intptr_t eats_at_least) {
intptr_t preload_characters =
Utils::Minimum(static_cast<intptr_t>(4), eats_at_least);
- if (compiler->macro_assembler()->CanReadUnaligned()) {
- bool one_byte = compiler->one_byte();
- if (one_byte) {
- if (preload_characters > 4) preload_characters = 4;
- // We can't preload 3 characters because there is no machine instruction
- // to do that. We can't just load 4 because we could be reading
- // beyond the end of the string, which could cause a memory fault.
- if (preload_characters == 3) preload_characters = 2;
- } else {
- if (preload_characters > 2) preload_characters = 2;
- }
+ if (compiler->one_byte()) {
+#if !defined(DART_COMPRESSED_POINTERS)
+ if (preload_characters > 4) preload_characters = 4;
+ // We can't preload 3 characters because there is no machine instruction
+ // to do that. We can't just load 4 because we could be reading
+ // beyond the end of the string, which could cause a memory fault.
+ if (preload_characters == 3) preload_characters = 2;
+#else
+ // Ensure LoadCodeUnitsInstr can always produce a Smi. See
+ // https://github.com/dart-lang/sdk/issues/29951
+ if (preload_characters > 2) preload_characters = 2;
+#endif
} else {
+#if !defined(DART_COMPRESSED_POINTERS)
+ if (preload_characters > 2) preload_characters = 2;
+#else
+ // Ensure LoadCodeUnitsInstr can always produce a Smi. See
+ // https://github.com/dart-lang/sdk/issues/29951
+ if (preload_characters > 1) preload_characters = 1;
+#endif
+ }
+ if (!compiler->macro_assembler()->CanReadUnaligned()) {
if (preload_characters > 1) preload_characters = 1;
}
return preload_characters;
diff --git a/runtime/vm/reverse_pc_lookup_cache.cc b/runtime/vm/reverse_pc_lookup_cache.cc
index 70f06df..dad8849 100644
--- a/runtime/vm/reverse_pc_lookup_cache.cc
+++ b/runtime/vm/reverse_pc_lookup_cache.cc
@@ -10,9 +10,9 @@
namespace dart {
-CodePtr ReversePc::LookupInGroup(IsolateGroup* group,
- uword pc,
- bool is_return_address) {
+CodePtr ReversePc::Lookup(IsolateGroup* group,
+ uword pc,
+ bool is_return_address) {
#if defined(DART_PRECOMPILED_RUNTIME)
// This can run in the middle of GC and must not allocate handles.
NoSafepointScope no_safepoint;
@@ -67,35 +67,4 @@
return Code::null();
}
-CodePtr ReversePc::Lookup(IsolateGroup* group,
- uword pc,
- bool is_return_address) {
- ASSERT(FLAG_precompiled_mode && FLAG_use_bare_instructions);
- NoSafepointScope no_safepoint;
-
- CodePtr code = LookupInGroup(group, pc, is_return_address);
- if (code == Code::null()) {
- code = LookupInGroup(Dart::vm_isolate_group(), pc, is_return_address);
- }
- return code;
-}
-
-CompressedStackMapsPtr ReversePc::FindCompressedStackMaps(
- IsolateGroup* group,
- uword pc,
- bool is_return_address,
- uword* code_start) {
- ASSERT(FLAG_precompiled_mode && FLAG_use_bare_instructions);
- NoSafepointScope no_safepoint;
-
- CodePtr code = Lookup(group, pc, is_return_address);
- if (code != Code::null()) {
- *code_start = Code::PayloadStartOf(code);
- return code->untag()->compressed_stackmaps();
- }
-
- *code_start = 0;
- return CompressedStackMaps::null();
-}
-
} // namespace dart
diff --git a/runtime/vm/reverse_pc_lookup_cache.h b/runtime/vm/reverse_pc_lookup_cache.h
index 9eb0558..8c45bb1 100644
--- a/runtime/vm/reverse_pc_lookup_cache.h
+++ b/runtime/vm/reverse_pc_lookup_cache.h
@@ -13,28 +13,11 @@
class IsolateGroup;
-// This class provides mechanism to find Code and CompressedStackMaps
-// objects corresponding to the given PC.
-// Can only be used in AOT runtime with bare instructions.
class ReversePc : public AllStatic {
public:
- // Looks for Code object corresponding to |pc| in the
- // given isolate |group| and vm isolate group.
- static CodePtr Lookup(IsolateGroup* group, uword pc, bool is_return_address);
-
- // Looks for CompressedStackMaps corresponding to |pc| in the
- // given isolate |group| and vm isolate group.
- // Sets |code_start| to the beginning of the instructions corresponding
- // to |pc| (like Code::PayloadStart()).
- static CompressedStackMapsPtr FindCompressedStackMaps(IsolateGroup* group,
- uword pc,
- bool is_return_address,
- uword* code_start);
-
- private:
- static CodePtr LookupInGroup(IsolateGroup* group,
- uword pc,
- bool is_return_address);
+ static CodePtr Lookup(IsolateGroup* group,
+ uword pc,
+ bool is_return_address = false);
};
} // namespace dart
diff --git a/runtime/vm/runtime_entry_arm64.cc b/runtime/vm/runtime_entry_arm64.cc
index 93a80fd..9e48050 100644
--- a/runtime/vm/runtime_entry_arm64.cc
+++ b/runtime/vm/runtime_entry_arm64.cc
@@ -75,6 +75,12 @@
__ mov(CSP, kCallLeafRuntimeCalleeSaveScratch1);
COMPILE_ASSERT(IsAbiPreservedRegister(THR));
COMPILE_ASSERT(IsAbiPreservedRegister(PP));
+ COMPILE_ASSERT(IsAbiPreservedRegister(NULL_REG));
+ COMPILE_ASSERT(IsAbiPreservedRegister(BARRIER_MASK));
+ COMPILE_ASSERT(IsAbiPreservedRegister(HEAP_BASE));
+ COMPILE_ASSERT(IsAbiPreservedRegister(DISPATCH_TABLE_REG));
+ // These registers must be preserved by the runtime functions, otherwise
+ // we'd need to restore them here.
} else {
// Argument count is not checked here, but in the runtime entry for a more
// informative error message.
diff --git a/runtime/vm/service_test.cc b/runtime/vm/service_test.cc
index 7dec0a8..c078398 100644
--- a/runtime/vm/service_test.cc
+++ b/runtime/vm/service_test.cc
@@ -259,7 +259,7 @@
// Use the entry of the code object as it's reference.
uword entry = code_c.PayloadStart();
int64_t compile_timestamp = code_c.compile_timestamp();
- EXPECT_GT(code_c.Size(), 16u);
+ EXPECT_GT(code_c.Size(), 16);
uword last = entry + code_c.Size();
// Build a mock message handler and wrap it in a dart port.
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index e5eb2d0..fe2911c 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -3745,6 +3745,9 @@
set_register(NULL, PP, pp);
set_register(NULL, BARRIER_MASK, thread->write_barrier_mask());
set_register(NULL, NULL_REG, static_cast<int64_t>(Object::null()));
+#if defined(DART_COMPRESSED_POINTERS)
+ set_register(NULL, HEAP_BASE, thread->heap_base());
+#endif
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
set_register(NULL, DISPATCH_TABLE_REG,
reinterpret_cast<int64_t>(thread->dispatch_table_array()));
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index 16bce51..7ee9e11 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -232,7 +232,7 @@
// here covers most of the 64-bit range. On 32-bit platforms the smi
// range covers most of the 32-bit range and values outside that
// range are also represented as mints.
-#if defined(ARCH_IS_64_BIT)
+#if defined(ARCH_IS_64_BIT) && !defined(DART_COMPRESSED_POINTERS)
EXPECT_EQ(Dart_CObject_kInt64, mint_cobject->type);
EXPECT_EQ(value, mint_cobject->value.as_int64);
#else
diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc
index 037e70d..51c1722 100644
--- a/runtime/vm/stack_frame.cc
+++ b/runtime/vm/stack_frame.cc
@@ -105,9 +105,6 @@
}
bool StackFrame::IsBareInstructionsDartFrame() const {
- if (!(FLAG_precompiled_mode && FLAG_use_bare_instructions)) {
- return false;
- }
NoSafepointScope no_safepoint;
Code code;
@@ -118,14 +115,18 @@
ASSERT(cid == kNullCid || cid == kClassCid || cid == kFunctionCid);
return cid == kFunctionCid;
}
+ code = ReversePc::Lookup(Dart::vm_isolate_group(), pc(),
+ /*is_return_address=*/true);
+ if (!code.IsNull()) {
+ auto const cid = code.OwnerClassId();
+ ASSERT(cid == kNullCid || cid == kClassCid || cid == kFunctionCid);
+ return cid == kFunctionCid;
+ }
return false;
}
bool StackFrame::IsBareInstructionsStubFrame() const {
- if (!(FLAG_precompiled_mode && FLAG_use_bare_instructions)) {
- return false;
- }
NoSafepointScope no_safepoint;
Code code;
@@ -136,6 +137,13 @@
ASSERT(cid == kNullCid || cid == kClassCid || cid == kFunctionCid);
return cid == kNullCid || cid == kClassCid;
}
+ code = ReversePc::Lookup(Dart::vm_isolate_group(), pc(),
+ /*is_return_address=*/true);
+ if (!code.IsNull()) {
+ auto const cid = code.OwnerClassId();
+ ASSERT(cid == kNullCid || cid == kClassCid || cid == kFunctionCid);
+ return cid == kNullCid || cid == kClassCid;
+ }
return false;
}
@@ -217,13 +225,9 @@
// helper functions to the raw object interface.
NoSafepointScope no_safepoint;
Code code;
- CompressedStackMaps maps;
- uword code_start;
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- maps = ReversePc::FindCompressedStackMaps(isolate_group(), pc(),
- /*is_return_address=*/true,
- &code_start);
+ code = GetCodeObject();
} else {
ObjectPtr pc_marker = *(reinterpret_cast<ObjectPtr*>(
fp() + (runtime_frame_layout.code_from_fp * kWordSize)));
@@ -232,23 +236,23 @@
visitor->VisitPointer(&pc_marker);
if (pc_marker->IsHeapObject() && (pc_marker->GetClassId() == kCodeCid)) {
code ^= pc_marker;
- code_start = code.PayloadStart();
- maps = code.compressed_stackmaps();
- ASSERT(!maps.IsNull());
} else {
ASSERT(pc_marker == Object::null());
}
}
- if (!maps.IsNull()) {
+ if (!code.IsNull()) {
// Optimized frames have a stack map. We need to visit the frame based
// on the stack map.
+ CompressedStackMaps maps;
+ maps = code.compressed_stackmaps();
CompressedStackMaps global_table;
global_table =
isolate_group()->object_store()->canonicalized_stack_map_entries();
CompressedStackMaps::Iterator it(maps, global_table);
- const uint32_t pc_offset = pc() - code_start;
+ const uword start = code.PayloadStart();
+ const uint32_t pc_offset = pc() - start;
if (it.Find(pc_offset)) {
ObjectPtr* first = reinterpret_cast<ObjectPtr*>(sp());
ObjectPtr* last = reinterpret_cast<ObjectPtr*>(
@@ -301,14 +305,8 @@
// unoptimized code, code with no stack map information at all, or the entry
// to an osr function. In each of these cases, all stack slots contain
// tagged pointers, so fall through.
-#if defined(DEBUG)
- if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- ASSERT(IsStubFrame());
- } else {
- ASSERT(!code.is_optimized() ||
- (pc_offset == code.EntryPoint() - code.PayloadStart()));
- }
-#endif // defined(DEBUG)
+ ASSERT(!code.is_optimized() || maps.IsNull() ||
+ (pc_offset == code.EntryPoint() - code.PayloadStart()));
}
// For normal unoptimized Dart frames and Stub frames each slot
@@ -350,23 +348,15 @@
CodePtr StackFrame::GetCodeObject() const {
#if defined(DART_PRECOMPILED_RUNTIME)
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
- NoSafepointScope no_safepoint;
- Code code;
- code = ReversePc::Lookup(isolate_group(), pc(),
+ CodePtr code = ReversePc::Lookup(isolate_group(), pc(),
+ /*is_return_address=*/true);
+ if (code != Code::null()) {
+ return code;
+ }
+ code = ReversePc::Lookup(Dart::vm_isolate_group(), pc(),
/*is_return_address=*/true);
- if (!code.IsNull()) {
- // This is needed in order to test stack traces with the future
- // behavior of ReversePc::Lookup which will return
- // StubCode::UnknownDartCode() if code object is omitted from
- // the snapshot.
- if (FLAG_dwarf_stack_traces_mode && code.CanBeOmittedFromAOTSnapshot()) {
- ASSERT(StubCode::UnknownDartCode().PayloadStart() == 0);
- ASSERT(StubCode::UnknownDartCode().Size() == kUwordMax);
- ASSERT(StubCode::UnknownDartCode().IsFunctionCode());
- ASSERT(StubCode::UnknownDartCode().IsUnknownDartCode());
- return StubCode::UnknownDartCode().ptr();
- }
- return code.ptr();
+ if (code != Code::null()) {
+ return code;
}
UNREACHABLE();
}
diff --git a/runtime/vm/stack_trace.cc b/runtime/vm/stack_trace.cc
index f200269..e392260 100644
--- a/runtime/vm/stack_trace.cc
+++ b/runtime/vm/stack_trace.cc
@@ -429,17 +429,19 @@
void StackTraceUtils::UnwindAwaiterChain(
Zone* zone,
const GrowableObjectArray& code_array,
- GrowableArray<uword>* pc_offset_array,
+ const GrowableObjectArray& pc_offset_array,
CallerClosureFinder* caller_closure_finder,
const Closure& leaf_closure) {
auto& code = Code::Handle(zone);
auto& function = Function::Handle(zone);
auto& closure = Closure::Handle(zone, leaf_closure.ptr());
auto& pc_descs = PcDescriptors::Handle(zone);
+ auto& offset = Smi::Handle(zone);
// Inject async suspension marker.
code_array.Add(StubCode::AsynchronousGapMarker());
- pc_offset_array->Add(0);
+ offset = Smi::New(0);
+ pc_offset_array.Add(offset);
// Traverse the trail of async futures all the way up.
for (; !closure.IsNull();
@@ -453,22 +455,23 @@
RELEASE_ASSERT(!code.IsNull());
code_array.Add(code);
pc_descs = code.pc_descriptors();
- const intptr_t pc_offset = FindPcOffset(pc_descs, GetYieldIndex(closure));
+ offset = Smi::New(FindPcOffset(pc_descs, GetYieldIndex(closure)));
// Unlike other sources of PC offsets, the offset may be 0 here if we
// reach a non-async closure receiving the yielded value.
- ASSERT(pc_offset >= 0);
- pc_offset_array->Add(pc_offset);
+ ASSERT(offset.Value() >= 0);
+ pc_offset_array.Add(offset);
// Inject async suspension marker.
code_array.Add(StubCode::AsynchronousGapMarker());
- pc_offset_array->Add(0);
+ offset = Smi::New(0);
+ pc_offset_array.Add(offset);
}
}
void StackTraceUtils::CollectFramesLazy(
Thread* thread,
const GrowableObjectArray& code_array,
- GrowableArray<uword>* pc_offset_array,
+ const GrowableObjectArray& pc_offset_array,
int skip_frames,
std::function<void(StackFrame*)>* on_sync_frames,
bool* has_async) {
@@ -486,6 +489,7 @@
}
auto& code = Code::Handle(zone);
+ auto& offset = Smi::Handle(zone);
auto& closure = Closure::Handle(zone);
CallerClosureFinder caller_closure_finder(zone);
@@ -509,9 +513,10 @@
// Add the current synchronous frame.
code = frame->LookupDartCode();
code_array.Add(code);
- const uword pc_offset = frame->pc() - code.PayloadStart();
+ const intptr_t pc_offset = frame->pc() - code.PayloadStart();
ASSERT(pc_offset > 0 && pc_offset <= code.Size());
- pc_offset_array->Add(pc_offset);
+ offset = Smi::New(pc_offset);
+ pc_offset_array.Add(offset);
// Callback for sync frame.
if (on_sync_frames != nullptr) {
(*on_sync_frames)(frame);
@@ -588,7 +593,7 @@
intptr_t StackTraceUtils::CollectFrames(Thread* thread,
const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
intptr_t array_offset,
intptr_t count,
int skip_frames) {
@@ -597,6 +602,7 @@
StackFrame* frame = frames.NextFrame();
ASSERT(frame != NULL); // We expect to find a dart invocation frame.
Code& code = Code::Handle(zone);
+ Smi& offset = Smi::Handle(zone);
intptr_t collected_frames_count = 0;
for (; (frame != NULL) && (collected_frames_count < count);
frame = frames.NextFrame()) {
@@ -605,9 +611,9 @@
continue;
}
code = frame->LookupDartCode();
- const intptr_t pc_offset = frame->pc() - code.PayloadStart();
+ offset = Smi::New(frame->pc() - code.PayloadStart());
code_array.SetAt(array_offset, code);
- pc_offset_array.SetUintPtr(array_offset * kWordSize, pc_offset);
+ pc_offset_array.SetAt(array_offset, offset);
array_offset++;
collected_frames_count++;
}
diff --git a/runtime/vm/stack_trace.h b/runtime/vm/stack_trace.h
index c2eb02a..a08221f 100644
--- a/runtime/vm/stack_trace.h
+++ b/runtime/vm/stack_trace.h
@@ -107,7 +107,7 @@
static void UnwindAwaiterChain(Zone* zone,
const GrowableObjectArray& code_array,
- GrowableArray<uword>* pc_offset_array,
+ const GrowableObjectArray& pc_offset_array,
CallerClosureFinder* caller_closure_finder,
const Closure& leaf_closure);
@@ -130,7 +130,7 @@
static void CollectFramesLazy(
Thread* thread,
const GrowableObjectArray& code_array,
- GrowableArray<uword>* pc_offset_array,
+ const GrowableObjectArray& pc_offset_array,
int skip_frames,
std::function<void(StackFrame*)>* on_sync_frames = nullptr,
bool* has_async = nullptr);
@@ -151,7 +151,7 @@
/// Returns the number of frames collected.
static intptr_t CollectFrames(Thread* thread,
const Array& code_array,
- const TypedData& pc_offset_array,
+ const Array& pc_offset_array,
intptr_t array_offset,
intptr_t count,
int skip_frames);
diff --git a/runtime/vm/stub_code.cc b/runtime/vm/stub_code.cc
index a78d1b0..e41c642 100644
--- a/runtime/vm/stub_code.cc
+++ b/runtime/vm/stub_code.cc
@@ -60,30 +60,6 @@
for (size_t i = 0; i < ARRAY_SIZE(entries_); i++) {
entries_[i].code->set_object_pool(object_pool.ptr());
}
-
-#if defined(DART_PRECOMPILER)
- {
- // Set Function owner for UnknownDartCode stub so it pretends to
- // be a Dart code.
- Zone* zone = Thread::Current()->zone();
- const auto& signature = FunctionType::Handle(zone, FunctionType::New());
- auto& owner = Object::Handle(zone);
- owner = Object::void_class();
- ASSERT(!owner.IsNull());
- owner = Function::New(signature, Object::null_string(),
- UntaggedFunction::kRegularFunction,
- /*is_static=*/true,
- /*is_const=*/false,
- /*is_abstract=*/false,
- /*is_external=*/false,
- /*is_native=*/false, owner, TokenPosition::kNoSource);
- StubCode::UnknownDartCode().set_owner(owner);
- StubCode::UnknownDartCode().set_exception_handlers(
- Object::empty_exception_handlers());
- StubCode::UnknownDartCode().set_pc_descriptors(Object::empty_descriptors());
- ASSERT(StubCode::UnknownDartCode().IsFunctionCode());
- }
-#endif // defined(DART_PRECOMPILER)
}
#undef STUB_CODE_GENERATE
diff --git a/runtime/vm/stub_code_list.h b/runtime/vm/stub_code_list.h
index d99a661..c08bfd6 100644
--- a/runtime/vm/stub_code_list.h
+++ b/runtime/vm/stub_code_list.h
@@ -128,8 +128,7 @@
V(InstantiateTypeArguments) \
V(InstantiateTypeArgumentsMayShareInstantiatorTA) \
V(InstantiateTypeArgumentsMayShareFunctionTA) \
- V(NoSuchMethodDispatcher) \
- V(UnknownDartCode)
+ V(NoSuchMethodDispatcher)
} // namespace dart
diff --git a/runtime/vm/tagged_pointer.h b/runtime/vm/tagged_pointer.h
index c191404..63b446f 100644
--- a/runtime/vm/tagged_pointer.h
+++ b/runtime/vm/tagged_pointer.h
@@ -193,7 +193,7 @@
ASSERT(IsHeapObject());
ASSERT(!IsInstructions());
ASSERT(!IsInstructionsSection());
- return tagged_pointer_ & ~(4ULL * GB - 1);
+ return tagged_pointer_ & kHeapBaseMask;
}
protected:
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 3308788..15f07a5 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -62,6 +62,7 @@
: ThreadState(false),
stack_limit_(0),
write_barrier_mask_(UntaggedObject::kGenerationalBarrierMask),
+ heap_base_(0),
isolate_(NULL),
dispatch_table_array_(NULL),
saved_stack_limit_(0),
@@ -176,6 +177,8 @@
} float_zerow_constant = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000};
void Thread::InitVMConstants() {
+ heap_base_ = Object::null()->heap_base();
+
#define ASSERT_VM_HEAP(type_name, member_name, init_expr, default_init_value) \
ASSERT((init_expr)->IsOldObject());
CACHED_VM_OBJECTS_LIST(ASSERT_VM_HEAP)
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 43372a6..816ec27 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -325,10 +325,12 @@
};
uword write_barrier_mask() const { return write_barrier_mask_; }
+ uword heap_base() const { return heap_base_; }
static intptr_t write_barrier_mask_offset() {
return OFFSET_OF(Thread, write_barrier_mask_);
}
+ static intptr_t heap_base_offset() { return OFFSET_OF(Thread, heap_base_); }
static intptr_t stack_overflow_flags_offset() {
return OFFSET_OF(Thread, stack_overflow_flags_);
}
@@ -930,6 +932,7 @@
// different architectures. See also CheckOffsets in dart.cc.
RelaxedAtomic<uword> stack_limit_;
uword write_barrier_mask_;
+ uword heap_base_;
Isolate* isolate_;
const uword* dispatch_table_array_;
uword top_ = 0;
diff --git a/tools/VERSION b/tools/VERSION
index f0413ea..d193f51 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 51
+PRERELEASE 52
PRERELEASE_PATCH 0
\ No newline at end of file