Version 2.13.0-2.0.dev
Merge commit 'd052156ea4b38367eb71bb4da6b873070bb94947' into 'dev'
diff --git a/pkg/analysis_server/lib/src/cider/fixes.dart b/pkg/analysis_server/lib/src/cider/fixes.dart
index 60f649e..d0ca2c8 100644
--- a/pkg/analysis_server/lib/src/cider/fixes.dart
+++ b/pkg/analysis_server/lib/src/cider/fixes.dart
@@ -31,17 +31,16 @@
CiderFixesComputer(this._logger, this._fileResolver);
/// Compute quick fixes for errors on the line with the [offset].
- Future<List<CiderErrorFixes>> compute(String path, int offset) async {
+ Future<List<CiderErrorFixes>> compute(String path, int lineNumber) async {
var result = <CiderErrorFixes>[];
var resolvedUnit = _fileResolver.resolve(path: path);
var lineInfo = resolvedUnit.lineInfo;
- var requestLine = lineInfo.getLocation(offset).lineNumber;
await _logger.runAsync('Compute fixes', () async {
for (var error in resolvedUnit.errors) {
var errorLine = lineInfo.getLocation(error.offset).lineNumber;
- if (errorLine == requestLine) {
+ if (errorLine == lineNumber) {
var workspace = DartChangeWorkspace([resolvedUnit.session]);
var context = DartFixContextImpl(
InstrumentationService.NULL_SERVICE,
diff --git a/pkg/analysis_server/test/src/cider/fixes_test.dart b/pkg/analysis_server/test/src/cider/fixes_test.dart
index b9157d5..4f4b240 100644
--- a/pkg/analysis_server/test/src/cider/fixes_test.dart
+++ b/pkg/analysis_server/test/src/cider/fixes_test.dart
@@ -76,7 +76,7 @@
fileResolver,
).compute(
convertPath(testPath),
- _correctionContext.offset,
+ _correctionContext.line,
);
}
@@ -105,8 +105,8 @@
_correctionContext = _CorrectionContext(
content,
offset,
- location.lineNumber - 1,
- location.columnNumber - 1,
+ location.lineNumber,
+ location.columnNumber,
);
}
}
diff --git a/pkg/smith/lib/configuration.dart b/pkg/smith/lib/configuration.dart
index 9544b3a..0c4138a 100644
--- a/pkg/smith/lib/configuration.dart
+++ b/pkg/smith/lib/configuration.dart
@@ -574,26 +574,32 @@
class Architecture extends NamedEnum {
static const ia32 = Architecture._('ia32');
static const x64 = Architecture._('x64');
+ static const x64c = Architecture._('x64c');
static const arm = Architecture._('arm');
static const arm_x64 = Architecture._('arm_x64');
static const armv6 = Architecture._('armv6');
static const arm64 = Architecture._('arm64');
+ static const arm64c = Architecture._('arm64c');
static const simarm = Architecture._('simarm');
static const simarmv6 = Architecture._('simarmv6');
static const simarm64 = Architecture._('simarm64');
+ static const simarm64c = Architecture._('simarm64c');
static final List<String> names = _all.keys.toList();
static final _all = Map<String, Architecture>.fromIterable([
ia32,
x64,
+ x64c,
arm,
armv6,
arm_x64,
arm64,
+ arm64c,
simarm,
simarmv6,
simarm64,
+ simarm64c,
], key: (architecture) => (architecture as Architecture).name);
static Architecture find(String name) {
diff --git a/pkg/vm/lib/transformations/ffi.dart b/pkg/vm/lib/transformations/ffi.dart
index 1c16b1b..5ead392 100644
--- a/pkg/vm/lib/transformations/ffi.dart
+++ b/pkg/vm/lib/transformations/ffi.dart
@@ -237,7 +237,6 @@
final Map<NativeType, Procedure> loadMethods;
final Map<NativeType, Procedure> storeMethods;
final Map<NativeType, Procedure> elementAtMethods;
- final Procedure loadStructMethod;
final Procedure memCopy;
final Procedure allocationTearoff;
final Procedure asFunctionTearoff;
@@ -322,7 +321,6 @@
final name = nativeTypeClassNames[t.index];
return index.getTopLevelMember('dart:ffi', "_elementAt$name");
}),
- loadStructMethod = index.getTopLevelMember('dart:ffi', '_loadStruct'),
memCopy = index.getTopLevelMember('dart:ffi', '_memCopy'),
allocationTearoff = index.getMember(
'dart:ffi', 'AllocatorAlloc', LibraryIndex.tearoffPrefix + 'call'),
diff --git a/runtime/lib/ffi.cc b/runtime/lib/ffi.cc
index 3a6bb40..0724681 100644
--- a/runtime/lib/ffi.cc
+++ b/runtime/lib/ffi.cc
@@ -88,45 +88,8 @@
UNREACHABLE();
}
-static ObjectPtr LoadValueStruct(Zone* zone,
- const Pointer& target,
- const AbstractType& instance_type_arg) {
- // Result is a struct class -- find <class name>.#fromTypedDataBase
- // constructor and call it.
- const Class& cls = Class::Handle(zone, instance_type_arg.type_class());
- const Function& constructor =
- Function::Handle(cls.LookupFunctionAllowPrivate(String::Handle(
- String::Concat(String::Handle(String::Concat(
- String::Handle(cls.Name()), Symbols::Dot())),
- Symbols::StructFromTypedDataBase()))));
- ASSERT(!constructor.IsNull());
- ASSERT(constructor.IsGenerativeConstructor());
- ASSERT(!Object::Handle(constructor.VerifyCallEntryPoint()).IsError());
- const Instance& new_object = Instance::Handle(Instance::New(cls));
- ASSERT(cls.is_allocated() || Dart::vm_snapshot_kind() != Snapshot::kFullAOT);
- const Array& args = Array::Handle(zone, Array::New(2));
- args.SetAt(0, new_object);
- args.SetAt(1, target);
- const Object& constructorResult =
- Object::Handle(DartEntry::InvokeFunction(constructor, args));
- ASSERT(!constructorResult.IsError());
- return new_object.ptr();
-}
-
DEFINE_NATIVE_ENTRY(Ffi_loadStruct, 0, 2) {
- GET_NON_NULL_NATIVE_ARGUMENT(Pointer, pointer, arguments->NativeArgAt(0));
- const AbstractType& pointer_type_arg =
- AbstractType::Handle(arguments->NativeTypeArgAt(0));
- GET_NON_NULL_NATIVE_ARGUMENT(Integer, index, arguments->NativeArgAt(1));
-
- // TODO(36370): Make representation consistent with kUnboxedFfiIntPtr.
- const size_t address =
- pointer.NativeAddress() + static_cast<intptr_t>(index.AsInt64Value()) *
- SizeOf(zone, pointer_type_arg);
- const Pointer& pointer_offset =
- Pointer::Handle(zone, Pointer::New(pointer_type_arg, address));
-
- return LoadValueStruct(zone, pointer_offset, pointer_type_arg);
+ UNREACHABLE();
}
#define DEFINE_NATIVE_ENTRY_STORE(type) \
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index cc14ad3..ec47b19 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -1452,11 +1452,8 @@
HeapIterationScope his(T);
IG->shared_class_table()->Remap(old_to_new_cid);
- IG->ForEachIsolate(
- [&](Isolate* I) {
- I->set_remapping_cids(true);
- },
- /*is_at_safepoint=*/true);
+ IG->set_remapping_cids(true);
+
// Update the class table. Do it before rewriting cids in headers, as
// the heap walkers load an object's size *after* calling the visitor.
IG->class_table()->Remap(old_to_new_cid);
@@ -1468,11 +1465,7 @@
IG->heap()->VisitObjects(&visitor);
}
- IG->ForEachIsolate(
- [&](Isolate* I) {
- I->set_remapping_cids(false);
- },
- /*is_at_safepoint=*/true);
+ IG->set_remapping_cids(false);
#if defined(DEBUG)
IG->class_table()->Validate();
#endif
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 392fd84..855cdca 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -2504,7 +2504,7 @@
if (!error_.IsNull()) {
Jump(error_);
}
- I->set_all_classes_finalized(true);
+ IG->set_all_classes_finalized(true);
}
void PrecompileParsedFunctionHelper::FinalizeCompilation(
diff --git a/runtime/vm/compiler/backend/block_scheduler.cc b/runtime/vm/compiler/backend/block_scheduler.cc
index ccc10b1..bcf2908 100644
--- a/runtime/vm/compiler/backend/block_scheduler.cc
+++ b/runtime/vm/compiler/backend/block_scheduler.cc
@@ -63,7 +63,7 @@
DeoptId::kNone, "BlockScheduler: ICData array cleared");
}
if (ic_data_array.IsNull()) {
- DEBUG_ASSERT(Isolate::Current()->HasAttemptedReload() ||
+ DEBUG_ASSERT(IsolateGroup::Current()->HasAttemptedReload() ||
function.ForceOptimize());
return;
}
diff --git a/runtime/vm/compiler/backend/flow_graph.cc b/runtime/vm/compiler/backend/flow_graph.cc
index 5b8b058..26198ca 100644
--- a/runtime/vm/compiler/backend/flow_graph.cc
+++ b/runtime/vm/compiler/backend/flow_graph.cc
@@ -482,7 +482,7 @@
FlowGraph::ToCheck FlowGraph::CheckForInstanceCall(
InstanceCallInstr* call,
UntaggedFunction::Kind kind) const {
- if (!FLAG_use_cha_deopt && !isolate()->all_classes_finalized()) {
+ if (!FLAG_use_cha_deopt && !isolate_group()->all_classes_finalized()) {
// Even if class or function are private, lazy class finalization
// may later add overriding methods.
return ToCheck::kCheckCid;
diff --git a/runtime/vm/compiler/backend/type_propagator.cc b/runtime/vm/compiler/backend/type_propagator.cc
index 5f224b06..075f0cf 100644
--- a/runtime/vm/compiler/backend/type_propagator.cc
+++ b/runtime/vm/compiler/backend/type_propagator.cc
@@ -731,7 +731,7 @@
// Type of a private class cannot change through later loaded libs.
cid_ = type_class.id();
} else if (FLAG_use_cha_deopt ||
- thread->isolate()->all_classes_finalized()) {
+ thread->isolate_group()->all_classes_finalized()) {
if (FLAG_trace_cha) {
THR_Print(" **(CHA) Compile type not subclassed: %s\n",
type_class.ToCString());
@@ -1096,7 +1096,7 @@
cid = type_class.id();
} else {
if (FLAG_use_cha_deopt ||
- thread->isolate()->all_classes_finalized()) {
+ thread->isolate_group()->all_classes_finalized()) {
if (FLAG_trace_cha) {
THR_Print(
" **(CHA) Computing exact type of receiver, "
@@ -1463,7 +1463,7 @@
}
if (field.needs_load_guard()) {
// Should be kept in sync with Slot::Get.
- DEBUG_ASSERT(Isolate::Current()->HasAttemptedReload());
+ DEBUG_ASSERT(IsolateGroup::Current()->HasAttemptedReload());
return CompileType::Dynamic();
}
return CompileType(is_nullable, cid, abstract_type);
diff --git a/runtime/vm/compiler/call_specializer.cc b/runtime/vm/compiler/call_specializer.cc
index b6f5265..f81fd02 100644
--- a/runtime/vm/compiler/call_specializer.cc
+++ b/runtime/vm/compiler/call_specializer.cc
@@ -1161,7 +1161,7 @@
if (!type_class.IsPrivate()) {
// In AOT mode we can't use CHA deoptimizations.
ASSERT(!CompilerState::Current().is_aot() || !FLAG_use_cha_deopt);
- if (FLAG_use_cha_deopt || isolate()->all_classes_finalized()) {
+ if (FLAG_use_cha_deopt || isolate_group()->all_classes_finalized()) {
if (FLAG_trace_cha) {
THR_Print(
" **(CHA) Typecheck as class equality since no "
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 054b900..abaedc1 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -3422,7 +3422,7 @@
body += NullConstant();
} else if (is_getter && is_method) {
ASSERT(!field.needs_load_guard()
- NOT_IN_PRODUCT(|| I->HasAttemptedReload()));
+ NOT_IN_PRODUCT(|| IG->HasAttemptedReload()));
body += LoadLocal(parsed_function_->ParameterVariable(0));
body += LoadField(
field, /*calls_initializer=*/field.NeedsInitializationCheckOnLoad());
@@ -3455,7 +3455,7 @@
#if defined(PRODUCT)
UNREACHABLE();
#else
- ASSERT(Isolate::Current()->HasAttemptedReload());
+ ASSERT(IsolateGroup::Current()->HasAttemptedReload());
body += CheckAssignable(AbstractType::Handle(Z, field.type()),
Symbols::FunctionResult());
#endif
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.cc b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
index 7474941..06aeae2 100644
--- a/runtime/vm/compiler/frontend/kernel_translation_helper.cc
+++ b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
@@ -526,7 +526,7 @@
static void CheckStaticLookup(const Object& target) {
if (target.IsNull()) {
#ifndef PRODUCT
- ASSERT(Isolate::Current()->HasAttemptedReload());
+ ASSERT(IsolateGroup::Current()->HasAttemptedReload());
Report::LongJump(LanguageError::Handle(LanguageError::New(String::Handle(
String::New("Unimplemented handling of missing static target")))));
#else
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 1485555..8ee2201 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -961,9 +961,7 @@
// TODO(27003)
return;
}
- if (HasAttemptedReload()) {
- return;
- }
+
// Verify that all canonical instances are correctly setup in the
// corresponding canonical tables.
BackgroundCompiler::Stop(this);
@@ -1993,8 +1991,8 @@
new IsolateGroupReloadContext(this, shared_class_table, js));
group_reload_context_ = group_reload_context;
+ SetHasAttemptedReload(true);
ForEachIsolate([&](Isolate* isolate) {
- isolate->SetHasAttemptedReload(true);
isolate->program_reload_context_ =
new ProgramReloadContext(group_reload_context_, isolate);
});
@@ -2026,8 +2024,8 @@
new IsolateGroupReloadContext(this, shared_class_table, js));
group_reload_context_ = group_reload_context;
+ SetHasAttemptedReload(true);
ForEachIsolate([&](Isolate* isolate) {
- isolate->SetHasAttemptedReload(true);
isolate->program_reload_context_ =
new ProgramReloadContext(group_reload_context_, isolate);
});
@@ -2448,7 +2446,7 @@
#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
if (FLAG_check_reloaded && is_runnable() && !Isolate::IsSystemIsolate(this)) {
- if (!HasAttemptedReload()) {
+ if (!group()->HasAttemptedReload()) {
FATAL(
"Isolate did not reload before exiting and "
"--check-reloaded is enabled.\n");
@@ -2817,7 +2815,7 @@
raw_class = group()->class_table()->At(cid);
#endif // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
ASSERT(raw_class != nullptr);
- ASSERT(remapping_cids() || raw_class->untag()->id_ == cid);
+ ASSERT(group()->remapping_cids() || raw_class->untag()->id_ == cid);
return raw_class;
}
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index 794225c..2eb9f41 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -474,6 +474,20 @@
return null_safety() || FLAG_strict_null_safety_checks;
}
+#if !defined(PRODUCT)
+#if !defined(DART_PRECOMPILED_RUNTIME)
+ bool HasAttemptedReload() const {
+ return HasAttemptedReloadBit::decode(isolate_group_flags_);
+ }
+ void SetHasAttemptedReload(bool value) {
+ isolate_group_flags_ =
+ HasAttemptedReloadBit::update(value, isolate_group_flags_);
+ }
+#else
+ bool HasAttemptedReload() const { return false; }
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
+#endif // !defined(PRODUCT)
+
#if defined(PRODUCT)
void set_use_osr(bool use_osr) { ASSERT(!use_osr); }
#else // defined(PRODUCT)
@@ -690,6 +704,23 @@
CompactionInProgressBit::update(value, isolate_group_flags_);
}
+ // In precompilation we finalize all regular classes before compiling.
+ bool all_classes_finalized() const {
+ return AllClassesFinalizedBit::decode(isolate_group_flags_);
+ }
+ void set_all_classes_finalized(bool value) {
+ isolate_group_flags_ =
+ AllClassesFinalizedBit::update(value, isolate_group_flags_);
+ }
+
+ bool remapping_cids() const {
+ return RemappingCidsBit::decode(isolate_group_flags_);
+ }
+ void set_remapping_cids(bool value) {
+ isolate_group_flags_ =
+ RemappingCidsBit::update(value, isolate_group_flags_);
+ }
+
uword FindPendingDeoptAtSafepoint(uword fp);
// Used by background compiler which field became boxed and must trigger
@@ -739,9 +770,12 @@
friend class NoReloadScope; // no_reload_scope_depth_
#define ISOLATE_GROUP_FLAG_BITS(V) \
+ V(AllClassesFinalized) \
V(CompactionInProgress) \
V(EnableAsserts) \
+ V(HasAttemptedReload) \
V(NullSafety) \
+ V(RemappingCids) \
V(NullSafetySet) \
V(Obfuscate) \
V(UseFieldGuards) \
@@ -1239,13 +1273,6 @@
void DeleteReloadContext();
- bool HasAttemptedReload() const {
- return HasAttemptedReloadBit::decode(isolate_flags_);
- }
- void SetHasAttemptedReload(bool value) {
- isolate_flags_ = HasAttemptedReloadBit::update(value, isolate_flags_);
- }
-
bool CanReload() const;
#else
bool IsReloading() const { return false; }
@@ -1303,21 +1330,6 @@
ErrorPtr sticky_error() const { return sticky_error_; }
DART_WARN_UNUSED_RESULT ErrorPtr StealStickyError();
- // In precompilation we finalize all regular classes before compiling.
- bool all_classes_finalized() const {
- return AllClassesFinalizedBit::decode(isolate_flags_);
- }
- void set_all_classes_finalized(bool value) {
- isolate_flags_ = AllClassesFinalizedBit::update(value, isolate_flags_);
- }
-
- bool remapping_cids() const {
- return RemappingCidsBit::decode(isolate_flags_);
- }
- void set_remapping_cids(bool value) {
- isolate_flags_ = RemappingCidsBit::update(value, isolate_flags_);
- }
-
#ifndef PRODUCT
ErrorPtr InvokePendingServiceExtensionCalls();
void AppendServiceExtensionCall(const Instance& closure,
@@ -1564,10 +1576,7 @@
V(IsRunnable) \
V(IsServiceIsolate) \
V(IsKernelIsolate) \
- V(AllClassesFinalized) \
- V(RemappingCids) \
V(ResumeRequest) \
- V(HasAttemptedReload) \
V(HasAttemptedStepping) \
V(ShouldPausePostServiceRequest) \
V(CopyParentCode) \
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 88567bf..7ad3137 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3806,7 +3806,7 @@
void Class::Finalize() const {
auto thread = Thread::Current();
auto isolate_group = thread->isolate_group();
- ASSERT(!thread->isolate()->all_classes_finalized());
+ ASSERT(!thread->isolate_group()->all_classes_finalized());
ASSERT(!is_finalized());
// Prefinalized classes have a VM internal representation and no Dart fields.
// Their instance size is precomputed and field offsets are known.
@@ -5812,7 +5812,7 @@
// Shape changes lose the canonical bit because they may result/ in merging
// constants. E.g., [x1, y1], [x1, y2] -> [x1].
DEBUG_ASSERT(constant.IsCanonical() ||
- Isolate::Current()->HasAttemptedReload());
+ IsolateGroup::Current()->HasAttemptedReload());
InsertCanonicalConstant(zone, constant);
}
set.Release();
@@ -8976,7 +8976,7 @@
Function::Handle(zone, Resolver::ResolveFunction(zone, owner, func_name));
if (!target.IsNull() && (target.ptr() != parent.ptr())) {
- DEBUG_ASSERT(Isolate::Current()->HasAttemptedReload());
+ DEBUG_ASSERT(IsolateGroup::Current()->HasAttemptedReload());
if ((target.is_static() != parent.is_static()) ||
(target.kind() != parent.kind())) {
target = Function::null();
@@ -10299,8 +10299,8 @@
FLAG_precompiled_mode || isolate_group->use_field_guards();
#else
const bool use_guarded_cid =
- FLAG_precompiled_mode ||
- (isolate_group->use_field_guards() && !isolate->HasAttemptedReload());
+ FLAG_precompiled_mode || (isolate_group->use_field_guards() &&
+ !isolate_group->HasAttemptedReload());
#endif // !defined(PRODUCT)
result.set_guarded_cid_unsafe(use_guarded_cid ? kIllegalCid : kDynamicCid);
result.set_is_nullable_unsafe(use_guarded_cid ? false : true);
@@ -10594,7 +10594,7 @@
UNREACHABLE();
#else
SafepointMutexLocker ml(
- thread->isolate()->group()->initializer_functions_mutex());
+ thread->isolate_group()->initializer_functions_mutex());
// Double check after grabbing the lock.
initializer = InitializerFunction();
if (initializer.IsNull()) {
@@ -18390,7 +18390,7 @@
const intptr_t instance_size = SizeFromClass();
ASSERT(instance_size != 0);
const auto unboxed_fields_bitmap =
- thread->isolate()->group()->shared_class_table()->GetUnboxedFieldsMapAt(
+ thread->isolate_group()->shared_class_table()->GetUnboxedFieldsMapAt(
class_id);
for (intptr_t offset = Instance::NextFieldOffset(); offset < instance_size;
offset += kWordSize) {
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 6dbacbf..e67fa97 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -451,26 +451,26 @@
}
HierarchyInfo* hierarchy_info() const {
- ASSERT(isolate_ != NULL);
+ ASSERT(isolate_group_ != nullptr);
return hierarchy_info_;
}
void set_hierarchy_info(HierarchyInfo* value) {
- ASSERT(isolate_ != NULL);
- ASSERT((hierarchy_info_ == NULL && value != NULL) ||
- (hierarchy_info_ != NULL && value == NULL));
+ ASSERT(isolate_group_ != nullptr);
+ ASSERT((hierarchy_info_ == nullptr && value != nullptr) ||
+ (hierarchy_info_ != nullptr && value == nullptr));
hierarchy_info_ = value;
}
TypeUsageInfo* type_usage_info() const {
- ASSERT(isolate_ != NULL);
+ ASSERT(isolate_group_ != nullptr);
return type_usage_info_;
}
void set_type_usage_info(TypeUsageInfo* value) {
- ASSERT(isolate_ != NULL);
- ASSERT((type_usage_info_ == NULL && value != NULL) ||
- (type_usage_info_ != NULL && value == NULL));
+ ASSERT(isolate_group_ != nullptr);
+ ASSERT((type_usage_info_ == nullptr && value != nullptr) ||
+ (type_usage_info_ != nullptr && value == nullptr));
type_usage_info_ = value;
}
diff --git a/sdk/lib/_internal/vm/lib/ffi_patch.dart b/sdk/lib/_internal/vm/lib/ffi_patch.dart
index dd18559..3a43c2b 100644
--- a/sdk/lib/_internal/vm/lib/ffi_patch.dart
+++ b/sdk/lib/_internal/vm/lib/ffi_patch.dart
@@ -204,16 +204,6 @@
Pointer<S> _loadPointer<S extends NativeType>(
Pointer pointer, int offsetInBytes) native "Ffi_loadPointer";
-S _loadStructNoStruct<S extends Struct>(Pointer<S> pointer, int index) {
- if (S == Struct) {
- throw ArgumentError("S should be a subtype of Struct.");
- }
- return _loadStruct(pointer, index);
-}
-
-S _loadStruct<S extends Struct>(Pointer<S> pointer, int index)
- native "Ffi_loadStruct";
-
@pragma("vm:recognized", "other")
void _storeInt8(Pointer pointer, int offsetInBytes, int value)
native "Ffi_storeInt8";
@@ -518,10 +508,12 @@
extension StructPointer<T extends Struct> on Pointer<T> {
@patch
- T get ref => _loadStructNoStruct(this, 0);
+ T get ref =>
+ throw "UNREACHABLE: This case should have been rewritten in the CFE.";
@patch
- T operator [](int index) => _loadStructNoStruct(this, index);
+ T operator [](int index) =>
+ throw "UNREACHABLE: This case should have been rewritten in the CFE.";
}
extension NativePort on SendPort {
diff --git a/sdk/lib/async/schedule_microtask.dart b/sdk/lib/async/schedule_microtask.dart
index bb6d600..314d474 100644
--- a/sdk/lib/async/schedule_microtask.dart
+++ b/sdk/lib/async/schedule_microtask.dart
@@ -125,6 +125,7 @@
/// * [The Event Loop and Dart](https://dart.dev/articles/event-loop/):
/// Learn how Dart handles the event queue and microtask queue, so you can write
/// better asynchronous code with fewer surprises.
+@pragma('vm:entry-point', 'call')
void scheduleMicrotask(void Function() callback) {
_Zone currentZone = Zone._current;
if (identical(_rootZone, currentZone)) {
diff --git a/tools/VERSION b/tools/VERSION
index 79ef3203..28914ae 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 1
+PRERELEASE 2
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 764388f..4d2a870 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -272,16 +272,20 @@
"benchmarks/",
"out/DebugIA32/",
"out/DebugX64/",
+ "out/DebugX64C/",
"out/DebugSIMARM/",
"out/DebugSIMARM64/",
+ "out/DebugSIMARM64C/",
"out/DebugSIMARM_X64/",
"out/DebugAndroidARM/",
"out/DebugAndroidARM_X64/",
"out/DebugAndroidARM64/",
"out/ReleaseIA32/",
"out/ReleaseX64/",
+ "out/ReleaseX64C/",
"out/ReleaseSIMARM/",
"out/ReleaseSIMARM64/",
+ "out/ReleaseSIMARM64C/",
"out/ReleaseSIMARM_X64/",
"out/ReleaseAndroidARM/",
"out/ReleaseAndroidARM_X64/",
@@ -294,20 +298,27 @@
"out/ReleaseXARM64/",
"out/ProductIA32/",
"out/ProductX64/",
+ "out/ProductX64C/",
"out/ProductSIMARM/",
"out/ProductSIMARM64/",
+ "out/ProductSIMARM64C/",
"out/ProductSIMARM_X64/",
"out/ProductAndroidARM/",
"out/ProductAndroidARM64/",
"xcodebuild/DebugIA32/",
"xcodebuild/DebugSIMARM/",
"xcodebuild/DebugSIMARM64/",
+ "xcodebuild/DebugSIMARM64C/",
"xcodebuild/DebugX64/",
+ "xcodebuild/DebugX64C/",
"xcodebuild/ProductX64/",
+ "xcodebuild/ProductX64C/",
"xcodebuild/ReleaseIA32/",
"xcodebuild/ReleaseSIMARM/",
"xcodebuild/ReleaseSIMARM64/",
+ "xcodebuild/ReleaseSIMARM64C/",
"xcodebuild/ReleaseX64/",
+ "xcodebuild/ReleaseX64C/",
"samples/",
"samples_2/",
"samples-dev/",
@@ -730,13 +741,13 @@
"use-elf": true
}
},
- "dartkp-android-(debug|product|release)-(arm|arm64)": {
+ "dartkp-android-(debug|product|release)-(arm|arm64|arm64c)": {
"options": {
"use-elf": true
}
},
- "dartk-android-(debug|product|release)-(arm|arm64)": {},
- "dartkp-(linux|win|mac)-(debug|product|release)-(arm64|simarm|simarm64)": {
+ "dartk-android-(debug|product|release)-(arm|arm64|arm64c)": {},
+ "dartkp-(linux|win|mac)-(debug|product|release)-(arm64|arm64c|simarm|simarm64|simarm64c)": {
"options": {
"use-elf": true
}
@@ -762,19 +773,19 @@
"use-elf": true
}
},
- "dartkp-win-(product|release)-x64": {
+ "dartkp-win-(product|release)-(x64|x64c)": {
"options": {
"use-elf": true
}
},
- "dartkp-win-debug-x64": {
+ "dartkp-win-debug-(x64|x64c)": {
"options": {
"use-elf": true,
"vm-options": []
}
},
- "dartkp-(linux|mac)-(product|release)-x64": {},
- "dartkp-obfuscate-(linux|mac|win)-(debug|product|release)-x64": {
+ "dartkp-(linux|mac)-(product|release)-(x64|x64c)": {},
+ "dartkp-obfuscate-(linux|mac|win)-(debug|product|release)-(x64|x64c)": {
"options": {
"builder-tag": "obfuscated",
"vm-options": [
@@ -782,19 +793,19 @@
]
}
},
- "dartkp-(linux|mac)-debug-x64": {
+ "dartkp-(linux|mac)-debug-(x64|x64c)": {
"options": {
"vm-options": []
}
},
- "dartkp-no-bare-(linux|mac|win)-(debug|product|release)-x64": {
+ "dartkp-no-bare-(linux|mac|win)-(debug|product|release)-(x64|x64c)": {
"options": {
"vm-options": [
"--no-use-bare-instructions"
]
}
},
- "dartkp-no-bare-(linux|mac|win)-(debug|product|release)-(simarm|simarm64)": {
+ "dartkp-no-bare-(linux|mac|win)-(debug|product|release)-(simarm|simarm64|simarm64c)": {
"options": {
"vm-options": [
"--no-use-bare-instructions"
@@ -802,68 +813,68 @@
"use-elf": true
}
},
- "dartk-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {},
- "dartk-fuchsia-(debug|product|release)-x64": {},
+ "dartk-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c)": {},
+ "dartk-fuchsia-(debug|product|release)-(x64|x64c)": {},
"dartk-linux-debug-(ia32|x64)-canary": {
"options": {
"builder-tag": "canary"
}
},
- "dartkp-weak-asserts-(linux|mac)-(debug|product|release)-x64": {
+ "dartkp-weak-asserts-(linux|mac)-(debug|product|release)-(x64|x64c)": {
"options": {
"enable-asserts": true,
"builder-tag": "vm_nnbd"
}
},
- "dartkp-weak-asserts-(linux|mac)-(debug|product|release)-(simarm|simarm64)": {
+ "dartkp-weak-asserts-(linux|mac)-(debug|product|release)-(simarm|simarm64|simarm64c)": {
"options": {
"enable-asserts": true,
"use-elf": true,
"builder-tag": "vm_nnbd"
}
},
- "dartkp-weak-asserts-win-(debug|product|release)-(simarm64|x64)": {
+ "dartkp-weak-asserts-win-(debug|product|release)-(simarm64|simarm64c|x64|x64c)": {
"options": {
"enable-asserts": true,
"use-elf": true,
"builder-tag": "vm_nnbd"
}
},
- "dartk-weak-asserts-(linux|mac|win)-(debug|product|release)-(ia32|simarm|simarm64|x64)": {
+ "dartk-weak-asserts-(linux|mac|win)-(debug|product|release)-(ia32|simarm|simarm64|simarm64c|x64|x64c)": {
"options": {
"enable-asserts": true,
"builder-tag": "vm_nnbd"
}
},
- "dartk-strong-(linux|mac|win)-(debug|product|release)-(ia32|simarm|simarm64|x64)": {
+ "dartk-strong-(linux|mac|win)-(debug|product|release)-(ia32|simarm|simarm64|simarm64c|x64|x64c)": {
"options": {
"builder-tag": "vm_nnbd"
}
},
- "dartkp-strong-(linux|mac)-(debug|product|release)-x64": {
+ "dartkp-strong-(linux|mac)-(debug|product|release)-(x64|x64c)": {
"options": {
"builder-tag": "vm_nnbd"
}
},
- "dartkp-strong-(linux|mac)-(debug|product|release)-(simarm|simarm64)": {
+ "dartkp-strong-(linux|mac)-(debug|product|release)-(simarm|simarm64|simarm64c)": {
"options": {
"use-elf": true,
"builder-tag": "vm_nnbd"
}
},
- "dartkp-strong-win-(debug|product|release)-(simarm64|x64)": {
+ "dartkp-strong-win-(debug|product|release)-(simarm64|simarm64c|x64|x64c)": {
"options": {
"use-elf": true,
"builder-tag": "vm_nnbd"
}
},
- "dartk-checked-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {
+ "dartk-checked-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c)": {
"options": {
"enable-asserts": true
}
},
- "dartk-(linux|mac|win)-(debug|product|release)-(arm64|simarm|simarm64)": {},
- "dartk-optcounter-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {
+ "dartk-(linux|mac|win)-(debug|product|release)-(arm64|arm64c|simarm|simarm64|simarm64c)": {},
+ "dartk-optcounter-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c|simarm|simarm64|simarm64c)": {
"options": {
"builder-tag": "optimization_counter_threshold",
"vm-options": [
@@ -872,27 +883,27 @@
]
}
},
- "dartk-reload-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {
+ "dartk-reload-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c)": {
"options": {
"hot-reload": true
}
},
- "dartk-reload-rollback-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {
+ "dartk-reload-rollback-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c)": {
"options": {
"hot-reload-rollback": true
}
},
- "dartk-linux-(debug|product|release)-(arm|arm64)-qemu": {
+ "dartk-linux-(debug|product|release)-(arm|arm64|arm64c)-qemu": {
"options": {
"use-qemu": true
}
},
- "dartkp-linux-(debug|product|release)-(arm|arm64)-qemu": {
+ "dartkp-linux-(debug|product|release)-(arm|arm64|arm64c)-qemu": {
"options": {
"use-qemu": true
}
},
- "app_jitk-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {},
+ "app_jitk-(linux|mac|win)-(debug|product|release)-(ia32|x64|x64c)": {},
"dartdevk-checked-(linux|mac|win)-(debug|product|release)-(chrome|firefox)": {
"options": {
"checked": true,
@@ -1133,7 +1144,8 @@
"builders": [
"vm-kernel-precomp-android-release-arm",
"vm-kernel-precomp-android-release-arm_x64",
- "vm-kernel-precomp-android-release-arm64"
+ "vm-kernel-precomp-android-release-arm64",
+ "vm-kernel-precomp-android-release-arm64c"
],
"meta": {
"description": "This configuration is used by the vm precomp builders on Android."
@@ -1162,10 +1174,13 @@
{
"builders": [
"vm-ffi-android-debug-arm64",
+ "vm-ffi-android-debug-arm64c",
"vm-ffi-android-debug-arm",
"vm-ffi-android-release-arm64",
+ "vm-ffi-android-release-arm64c",
"vm-ffi-android-release-arm",
"vm-ffi-android-product-arm64",
+ "vm-ffi-android-product-arm64c",
"vm-ffi-android-product-arm"
],
"meta": {
@@ -1245,9 +1260,13 @@
"builders": [
"vm-kernel-precomp-nnbd-linux-debug-x64",
"vm-kernel-precomp-nnbd-linux-release-simarm64",
+ "vm-kernel-precomp-nnbd-linux-release-simarm64c",
"vm-kernel-precomp-nnbd-linux-release-x64",
+ "vm-kernel-precomp-nnbd-linux-release-x64c",
"vm-kernel-precomp-nnbd-mac-release-simarm64",
- "vm-kernel-precomp-nnbd-win-release-x64"
+ "vm-kernel-precomp-nnbd-mac-release-simarm64c",
+ "vm-kernel-precomp-nnbd-win-release-x64",
+ "vm-kernel-precomp-nnbd-win-release-x64c"
],
"meta": {
"description": "This configuration is for the VM AOT nnbd builder group."
@@ -1354,10 +1373,14 @@
{
"builders": [
"vm-kernel-precomp-linux-product-x64",
+ "vm-kernel-precomp-linux-product-x64c",
"vm-kernel-precomp-linux-release-simarm",
"vm-kernel-precomp-linux-release-simarm64",
+ "vm-kernel-precomp-linux-release-simarm64c",
"vm-kernel-precomp-mac-release-simarm64",
- "vm-kernel-precomp-win-release-x64"
+ "vm-kernel-precomp-mac-release-simarm64c",
+ "vm-kernel-precomp-win-release-x64",
+ "vm-kernel-precomp-win-release-x64c"
],
"meta": {
"description": "This configuration is used by the vm kernel precomp builders."
@@ -1383,7 +1406,8 @@
},
{
"builders": [
- "vm-kernel-precomp-linux-debug-x64"
+ "vm-kernel-precomp-linux-debug-x64",
+ "vm-kernel-precomp-linux-debug-x64c"
],
"meta": {
"description": "This configuration is used by the vm kernel precomp debug builders. It uses 15 shards for testing to avoid 1 hour shard timeouts."
@@ -1410,8 +1434,10 @@
{
"builders": [
"vm-kernel-precomp-bare-linux-release-x64",
+ "vm-kernel-precomp-bare-linux-release-x64c",
"vm-kernel-precomp-bare-linux-release-simarm",
- "vm-kernel-precomp-bare-linux-release-simarm64"
+ "vm-kernel-precomp-bare-linux-release-simarm64",
+ "vm-kernel-precomp-bare-linux-release-simarm64c"
],
"meta": {
"description": "This configuration is used by the vm kernel precomp builders using bare instructions."
@@ -1437,7 +1463,8 @@
},
{
"builders": [
- "vm-kernel-precomp-obfuscate-linux-release-x64"
+ "vm-kernel-precomp-obfuscate-linux-release-x64",
+ "vm-kernel-precomp-obfuscate-linux-release-x64c"
],
"meta": {
"description": "This configuration is used by the obfuscated vm kernel precomp builders."
@@ -1599,10 +1626,13 @@
"builders": [
"vm-kernel-linux-release-simarm",
"vm-kernel-linux-release-simarm64",
+ "vm-kernel-linux-release-simarm64c",
"vm-kernel-linux-release-ia32",
"vm-kernel-win-debug-ia32",
"vm-kernel-win-debug-x64",
+ "vm-kernel-win-debug-x64c",
"vm-kernel-win-product-x64",
+ "vm-kernel-win-product-x64c",
"vm-kernel-win-release-ia32"
],
"meta": {
@@ -1630,15 +1660,22 @@
"builders": [
"vm-kernel-nnbd-linux-debug-ia32",
"vm-kernel-nnbd-linux-debug-x64",
+ "vm-kernel-nnbd-linux-debug-x64c",
"vm-kernel-nnbd-linux-release-ia32",
"vm-kernel-nnbd-linux-release-simarm",
"vm-kernel-nnbd-linux-release-simarm64",
+ "vm-kernel-nnbd-linux-release-simarm64c",
"vm-kernel-nnbd-linux-release-x64",
+ "vm-kernel-nnbd-linux-release-x64c",
"vm-kernel-nnbd-mac-debug-x64",
+ "vm-kernel-nnbd-mac-debug-x64c",
"vm-kernel-nnbd-mac-release-x64",
+ "vm-kernel-nnbd-mac-release-x64c",
"vm-kernel-nnbd-win-release-ia32",
"vm-kernel-nnbd-win-debug-x64",
- "vm-kernel-nnbd-win-release-x64"
+ "vm-kernel-nnbd-win-debug-x64c",
+ "vm-kernel-nnbd-win-release-x64",
+ "vm-kernel-nnbd-win-release-x64c"
],
"meta": {
"description": "This configuration is for the VM nnbd builder group."
@@ -1710,13 +1747,20 @@
{
"builders": [
"vm-kernel-linux-product-x64",
+ "vm-kernel-linux-product-x64c",
"vm-kernel-linux-release-x64",
+ "vm-kernel-linux-release-x64c",
"vm-kernel-linux-debug-ia32",
"vm-kernel-linux-debug-x64",
+ "vm-kernel-linux-debug-x64c",
"vm-kernel-mac-product-x64",
+ "vm-kernel-mac-product-x64c",
"vm-kernel-mac-release-x64",
+ "vm-kernel-mac-release-x64c",
"vm-kernel-mac-debug-x64",
- "vm-kernel-win-release-x64"
+ "vm-kernel-mac-debug-x64c",
+ "vm-kernel-win-release-x64",
+ "vm-kernel-win-release-x64c"
],
"meta": {
"description": "This configuration is for the co19_2 kernel builder group."
@@ -1750,7 +1794,8 @@
},
{
"builders": [
- "vm-kernel-checked-linux-release-x64"
+ "vm-kernel-checked-linux-release-x64",
+ "vm-kernel-checked-linux-release-x64c"
],
"meta": {
"description": "This configuration is for the kernel builder group in checked mode."
@@ -1766,7 +1811,7 @@
{
"name": "vm tests",
"arguments": [
- "-ndartk-checked-linux-release-x64"
+ "-ndartk-checked-linux-release-${arch}"
],
"fileset": "vm-kernel",
"shards": 10
@@ -1797,7 +1842,8 @@
},
{
"builders": [
- "cross-vm-linux-release-arm64"
+ "cross-vm-linux-release-arm64",
+ "cross-vm-linux-release-arm64c"
],
"meta": {
"description": "This configuration is for the cross arm builders."
@@ -1822,7 +1868,8 @@
},
{
"builders": [
- "cross-vm-precomp-linux-release-arm64"
+ "cross-vm-precomp-linux-release-arm64",
+ "cross-vm-precomp-linux-release-arm64c"
],
"meta": {
"description": "This configuration is for the cross arm AOT builders."
@@ -1850,8 +1897,11 @@
{
"builders": [
"app-kernel-linux-debug-x64",
+ "app-kernel-linux-debug-x64c",
"app-kernel-linux-product-x64",
- "app-kernel-linux-release-x64"
+ "app-kernel-linux-product-x64c",
+ "app-kernel-linux-release-x64",
+ "app-kernel-linux-release-x64c"
],
"meta": {
"description": "This configuration is used by the vm kernel app builder group."
@@ -1867,7 +1917,7 @@
{
"name": "vm tests",
"arguments": [
- "-napp_jitk-linux-${mode}-x64"
+ "-napp_jitk-linux-${mode}-${arch}"
],
"shards": 6,
"fileset": "vm-kernel"
@@ -2147,7 +2197,11 @@
{
"builders": [
"vm-kernel-optcounter-threshold-linux-release-ia32",
- "vm-kernel-optcounter-threshold-linux-release-x64"
+ "vm-kernel-optcounter-threshold-linux-release-x64",
+ "vm-kernel-optcounter-threshold-linux-release-x64c",
+ "vm-kernel-optcounter-threshold-linux-release-simarm",
+ "vm-kernel-optcounter-threshold-linux-release-simarm64",
+ "vm-kernel-optcounter-threshold-linux-release-simarm64c"
],
"meta": {
"description": "This is the configuration for the kernel optcounter builders, under the vm-kernel group. They run the same tests as the ordinary VM kernel builders, but add extra options to the vm."
@@ -2173,7 +2227,9 @@
{
"builders": [
"vm-kernel-reload-linux-debug-x64",
- "vm-kernel-reload-linux-release-x64"
+ "vm-kernel-reload-linux-debug-x64c",
+ "vm-kernel-reload-linux-release-x64",
+ "vm-kernel-reload-linux-release-x64c"
],
"meta": {
"description": "This is the configuration for the kernel hot reload builders."
@@ -2199,7 +2255,9 @@
{
"builders": [
"vm-kernel-reload-rollback-linux-debug-x64",
- "vm-kernel-reload-rollback-linux-release-x64"
+ "vm-kernel-reload-rollback-linux-debug-x64c",
+ "vm-kernel-reload-rollback-linux-release-x64",
+ "vm-kernel-reload-rollback-linux-release-x64c"
],
"meta": {
"description": "This is the configuration for kernel reload rollback builders."
@@ -2215,7 +2273,7 @@
{
"name": "vm tests",
"arguments": [
- "-ndartk-reload-rollback-linux-${mode}-x64"
+ "-ndartk-reload-rollback-linux-${mode}-${arch}"
],
"fileset": "vm-kernel",
"shards": 10
diff --git a/tools/gn.py b/tools/gn.py
index 52ae73b..ce133c3 100755
--- a/tools/gn.py
+++ b/tools/gn.py
@@ -71,8 +71,7 @@
if arch in ['ia32', 'arm', 'armv6', 'simarm', 'simarmv6', 'simarm_x64']:
return 'x86'
if arch in [
- 'x64', 'arm64', 'simarm64', 'arm_x64', 'x64_comp_ptr',
- 'arm64_comp_ptr', 'simarm64_comp_ptr'
+ 'x64', 'arm64', 'simarm64', 'arm_x64', 'x64c', 'arm64c', 'simarm64c'
]:
return 'x64'
@@ -81,13 +80,11 @@
def TargetCpuForArch(arch, target_os):
if arch in ['ia32', 'simarm', 'simarmv6']:
return 'x86'
- if arch in [
- 'x64', 'simarm64', 'simarm_x64', 'x64_comp_ptr', 'simarm64_comp_ptr'
- ]:
+ if arch in ['x64', 'simarm64', 'simarm_x64', 'x64c', 'simarm64c']:
return 'x64'
if arch == 'arm_x64':
return 'arm'
- if arch == 'arm64_comp_ptr':
+ if arch == 'arm64c':
return 'arm64'
return arch
@@ -96,19 +93,19 @@
def DartTargetCpuForArch(arch):
if arch in ['ia32']:
return 'ia32'
- if arch in ['x64', 'x64_comp_ptr']:
+ if arch in ['x64', 'x64c']:
return 'x64'
if arch in ['arm', 'simarm', 'simarm_x64', 'arm_x64']:
return 'arm'
if arch in ['armv6', 'simarmv6']:
return 'armv6'
- if arch in ['arm64', 'simarm64', 'arm64_comp_ptr', 'simarm64_comp_ptr']:
+ if arch in ['arm64', 'simarm64', 'arm64c', 'simarm64c']:
return 'arm64'
return arch
def IsCompressedPointerArch(arch):
- return arch in ['x64_comp_ptr', 'arm64_comp_ptr', 'simarm64_comp_ptr']
+ return arch in ['x64c', 'arm64c', 'simarm64c']
def HostOsForGn(host_os):
@@ -297,7 +294,7 @@
def ProcessOptions(args):
if args.arch == 'all':
- args.arch = 'ia32,x64,simarm,simarm64'
+ args.arch = 'ia32,x64,simarm,simarm64,x64c,simarm64c'
if args.mode == 'all':
args.mode = 'debug,release,product'
if args.os == 'all':
diff --git a/tools/run_offsets_extractor.sh b/tools/run_offsets_extractor.sh
index c9c011b..52b1376 100755
--- a/tools/run_offsets_extractor.sh
+++ b/tools/run_offsets_extractor.sh
@@ -43,8 +43,8 @@
run release x64 ReleaseX64
run release ia32 ReleaseIA32
run release simarm64 ReleaseSIMARM64
-run release x64_comp_ptr ReleaseX64_COMP_PTR
-run release simarm64_comp_ptr ReleaseSIMARM64_COMP_PTR
+run release x64c ReleaseX64C
+run release simarm64c ReleaseSIMARM64C
echo "" >>"$TEMP_JIT"
echo "" >>"$TEMP_AOT"
echo "#else // !defined(PRODUCT)" >>"$TEMP_JIT"
@@ -53,8 +53,8 @@
run product x64 ProductX64
run product ia32 ProductIA32
run product simarm64 ProductSIMARM64
-run product x64_comp_ptr ProductX64_COMP_PTR
-run product simarm64_comp_ptr ProductSIMARM64_COMP_PTR
+run product x64c ProductX64C
+run product simarm64c ProductSIMARM64C
echo "" >>"$TEMP_JIT"
echo "" >>"$TEMP_AOT"
echo "#endif // !defined(PRODUCT)" >>"$TEMP_JIT"
diff --git a/tools/utils.py b/tools/utils.py
index 2a5aeac..dcb68a5 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -72,9 +72,9 @@
'simarmv6': 'ia32',
'simarm64': 'ia32',
'simarm_x64': 'ia32',
- 'x64_comp_ptr': 'ia32',
- 'arm64_comp_ptr': 'arm',
- 'simarm64_comp_ptr': 'ia32',
+ 'x64c': 'ia32',
+ 'arm64c': 'arm',
+ 'simarm64c': 'ia32',
}
BASE_DIR = os.path.abspath(os.path.join(os.curdir, '..'))