diff --git a/runtime/vm/app_snapshot.cc b/runtime/vm/app_snapshot.cc index ad17e415cbb..44e2d74c530 100644 --- a/runtime/vm/app_snapshot.cc +++ b/runtime/vm/app_snapshot.cc @@ -4046,10 +4046,6 @@ class LibraryPrefixDeserializationCluster : public DeserializationCluster { } }; -// Used to pack nullability into other serialized values. -static constexpr intptr_t kNullabilityBitSize = 2; -static constexpr intptr_t kNullabilityBitMask = (1 << kNullabilityBitSize) - 1; - #if !defined(DART_PRECOMPILED_RUNTIME) class TypeSerializationCluster : public CanonicalSetSerializationCluster< @@ -4073,9 +4069,9 @@ class TypeSerializationCluster PushFromTo(type); - ASSERT(type->untag()->type_class_id_ != kIllegalCid); + ASSERT(type->untag()->type_class_id() != kIllegalCid); ClassPtr type_class = - s->isolate_group()->class_table()->At(type->untag()->type_class_id_); + s->isolate_group()->class_table()->At(type->untag()->type_class_id()); s->Push(type_class); } @@ -4108,7 +4104,7 @@ class TypeSerializationCluster // Keep in sync with Type::Canonicalize. virtual bool IsInCanonicalSet(Serializer* s, TypePtr type) { ClassPtr type_class = - s->isolate_group()->class_table()->At(type->untag()->type_class_id_); + s->isolate_group()->class_table()->At(type->untag()->type_class_id()); if (type_class->untag()->declaration_type() != type) { return true; } @@ -4123,25 +4119,12 @@ class TypeSerializationCluster #if defined(DART_PRECOMPILER) if (FLAG_write_v8_snapshot_profile_to != nullptr) { ClassPtr type_class = - s->isolate_group()->class_table()->At(type->untag()->type_class_id_); + s->isolate_group()->class_table()->At(type->untag()->type_class_id()); s->AttributePropertyRef(type_class, ""); } #endif WriteFromTo(type); - COMPILE_ASSERT( - std::is_unsigned::value); - s->WriteUnsigned(type->untag()->type_class_id_); - ASSERT(type->untag()->type_state_ < (1 << UntaggedType::kTypeStateBitSize)); - ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize)); - static_assert(UntaggedType::kTypeStateBitSize + kNullabilityBitSize <= - kBitsPerByte * sizeof(uint8_t), - "Cannot pack type_state_ and nullability_ into a uint8_t"); - const uint8_t combined = - (type->untag()->type_state_ << kNullabilityBitSize) | - type->untag()->nullability_; - ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize); - ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask); - s->Write(combined); + s->WriteUnsigned(type->untag()->flags_); } }; #endif // !DART_PRECOMPILED_RUNTIME @@ -4170,12 +4153,7 @@ class TypeDeserializationCluster Deserializer::InitializeHeader(type, kTypeCid, Type::InstanceSize(), mark_canonical); d.ReadFromTo(type); - COMPILE_ASSERT( - std::is_unsigned::value); - type->untag()->type_class_id_ = d.ReadUnsigned(); - const uint8_t combined = d.Read(); - type->untag()->type_state_ = combined >> kNullabilityBitSize; - type->untag()->nullability_ = combined & kNullabilityBitMask; + type->untag()->flags_ = d.ReadUnsigned(); } } @@ -4257,19 +4235,8 @@ class FunctionTypeSerializationCluster void WriteFunctionType(Serializer* s, FunctionTypePtr type) { AutoTraceObject(type); WriteFromTo(type); - ASSERT(type->untag()->type_state_ < - (1 << UntaggedFunctionType::kTypeStateBitSize)); - ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize)); - static_assert( - UntaggedFunctionType::kTypeStateBitSize + kNullabilityBitSize <= - kBitsPerByte * sizeof(uint8_t), - "Cannot pack type_state_ and nullability_ into a uint8_t"); - const uint8_t combined = - (type->untag()->type_state_ << kNullabilityBitSize) | - type->untag()->nullability_; - ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize); - ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask); - s->Write(combined); + ASSERT(Utils::IsUint(8, type->untag()->flags_)); + s->Write(type->untag()->flags_); s->Write(type->untag()->packed_parameter_counts_); s->Write(type->untag()->packed_type_parameter_counts_); } @@ -4300,9 +4267,7 @@ class FunctionTypeDeserializationCluster Deserializer::InitializeHeader( type, kFunctionTypeCid, FunctionType::InstanceSize(), mark_canonical); d.ReadFromTo(type); - const uint8_t combined = d.Read(); - type->untag()->type_state_ = combined >> kNullabilityBitSize; - type->untag()->nullability_ = combined & kNullabilityBitMask; + type->untag()->flags_ = d.Read(); type->untag()->packed_parameter_counts_ = d.Read(); type->untag()->packed_type_parameter_counts_ = d.Read(); } @@ -4386,18 +4351,8 @@ class RecordTypeSerializationCluster void WriteRecordType(Serializer* s, RecordTypePtr type) { AutoTraceObject(type); WriteFromTo(type); - ASSERT(type->untag()->type_state_ < - (1 << UntaggedRecordType::kTypeStateBitSize)); - ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize)); - static_assert(UntaggedRecordType::kTypeStateBitSize + kNullabilityBitSize <= - kBitsPerByte * sizeof(uint8_t), - "Cannot pack type_state_ and nullability_ into a uint8_t"); - const uint8_t combined = - (type->untag()->type_state_ << kNullabilityBitSize) | - type->untag()->nullability_; - ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize); - ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask); - s->Write(combined); + ASSERT(Utils::IsUint(8, type->untag()->flags_)); + s->Write(type->untag()->flags_); } }; #endif // !DART_PRECOMPILED_RUNTIME @@ -4425,9 +4380,7 @@ class RecordTypeDeserializationCluster Deserializer::InitializeHeader( type, kRecordTypeCid, RecordType::InstanceSize(), mark_canonical); d.ReadFromTo(type); - const uint8_t combined = d.Read(); - type->untag()->type_state_ = combined >> kNullabilityBitSize; - type->untag()->nullability_ = combined & kNullabilityBitMask; + type->untag()->flags_ = d.Read(); } } @@ -4534,16 +4487,20 @@ class TypeRefDeserializationCluster : public DeserializationCluster { } TypeRef& type_ref = TypeRef::Handle(d->zone()); + AbstractType& type = AbstractType::Handle(d->zone()); Code& stub = Code::Handle(d->zone()); + const bool includes_code = Snapshot::IncludesCode(d->kind()); - if (Snapshot::IncludesCode(d->kind())) { - for (intptr_t id = start_index_, n = stop_index_; id < n; id++) { - type_ref ^= refs.At(id); + for (intptr_t id = start_index_, n = stop_index_; id < n; id++) { + type_ref ^= refs.At(id); + + // Refresh finalization state and nullability. + type = type_ref.type(); + type_ref.set_type(type); + + if (includes_code) { type_ref.UpdateTypeTestingStubEntryPoint(); - } - } else { - for (intptr_t id = start_index_, n = stop_index_; id < n; id++) { - type_ref ^= refs.At(id); + } else { stub = TypeTestingStubGenerator::DefaultCodeForType(type_ref); type_ref.InitializeTypeTestingStubNonAtomic(stub); } @@ -4599,16 +4556,8 @@ class TypeParameterSerializationCluster s->Write(type->untag()->parameterized_class_id_); s->Write(type->untag()->base_); s->Write(type->untag()->index_); - ASSERT(type->untag()->flags_ < (1 << UntaggedTypeParameter::kFlagsBitSize)); - ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize)); - static_assert(UntaggedTypeParameter::kFlagsBitSize + kNullabilityBitSize <= - kBitsPerByte * sizeof(uint8_t), - "Cannot pack flags_ and nullability_ into a uint8_t"); - const uint8_t combined = (type->untag()->flags_ << kNullabilityBitSize) | - type->untag()->nullability_; - ASSERT_EQUAL(type->untag()->flags_, combined >> kNullabilityBitSize); - ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask); - s->Write(combined); + ASSERT(Utils::IsUint(8, type->untag()->flags_)); + s->Write(type->untag()->flags_); } }; #endif // !DART_PRECOMPILED_RUNTIME @@ -4641,9 +4590,7 @@ class TypeParameterDeserializationCluster type->untag()->parameterized_class_id_ = d.Read(); type->untag()->base_ = d.Read(); type->untag()->index_ = d.Read(); - const uint8_t combined = d.Read(); - type->untag()->flags_ = combined >> kNullabilityBitSize; - type->untag()->nullability_ = combined & kNullabilityBitMask; + type->untag()->flags_ = d.Read(); } } diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc index b5db3e72d92..c7a1028341c 100644 --- a/runtime/vm/class_finalizer.cc +++ b/runtime/vm/class_finalizer.cc @@ -659,6 +659,11 @@ void ClassFinalizer::FillAndFinalizeTypeArguments( AbstractType& unfinalized_type = AbstractType::Handle(zone); if (super_type_arg.IsTypeRef()) { unfinalized_type = TypeRef::Cast(super_type_arg).type(); + if (unfinalized_type.IsFinalized()) { + super_type_arg.SetIsFinalized(); + arguments.SetTypeAt(i, super_type_arg); + continue; + } } else { ASSERT(super_type_arg.IsType()); unfinalized_type = super_type_arg.ptr(); @@ -755,10 +760,13 @@ AbstractTypePtr ClassFinalizer::FinalizeType(const AbstractType& type, // is_being_finalized mark bit. return type.ptr(); } + type.SetIsBeingFinalized(); AbstractType& ref_type = AbstractType::Handle(zone, TypeRef::Cast(type).type()); ref_type = FinalizeType(ref_type, finalization, pending_types); + ASSERT(ref_type.IsFinalized()); TypeRef::Cast(type).set_type(ref_type); + ASSERT(type.IsFinalized()); return type.ptr(); } @@ -1563,7 +1571,7 @@ class CidRewriteVisitor : public ObjectVisitor { Map(param->untag()->parameterized_class_id_); } else if (obj->IsType()) { TypePtr type = Type::RawCast(obj); - type->untag()->type_class_id_ = Map(type->untag()->type_class_id_); + type->untag()->set_type_class_id(Map(type->untag()->type_class_id())); } else { intptr_t old_cid = obj->GetClassId(); intptr_t new_cid = Map(old_cid); @@ -1619,7 +1627,7 @@ void ClassFinalizer::RemapClassIds(intptr_t* old_to_new_cid) { // In the Dart VM heap the following instances directly use cids for the // computation of canonical hash codes: // -// * TypePtr (due to UntaggedType::type_class_id_) +// * TypePtr (due to UntaggedType::type_class_id) // * TypeParameterPtr (due to UntaggedTypeParameter::parameterized_class_id_) // // The following instances use cids for the computation of canonical hash codes diff --git a/runtime/vm/compiler/asm_intrinsifier_arm.cc b/runtime/vm/compiler/asm_intrinsifier_arm.cc index 78907610a27..de81be7708d 100644 --- a/runtime/vm/compiler/asm_intrinsifier_arm.cc +++ b/runtime/vm/compiler/asm_intrinsifier_arm.cc @@ -1296,8 +1296,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, // Check nullability. __ Bind(&equiv_cids); - __ ldrb(R1, FieldAddress(R1, target::Type::nullability_offset())); - __ ldrb(R2, FieldAddress(R2, target::Type::nullability_offset())); + __ LoadAbstractTypeNullability(R1, R1); + __ LoadAbstractTypeNullability(R2, R2); __ cmp(R1, Operand(R2)); __ b(&check_legacy, NE); // Fall through to equal case if nullability is strictly equal. diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc index 0b9255d44fe..ab1c62c3a32 100644 --- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc +++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc @@ -1463,10 +1463,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, // Check nullability. __ Bind(&equiv_cids); - __ ldr(R1, FieldAddress(R1, target::Type::nullability_offset()), - kUnsignedByte); - __ ldr(R2, FieldAddress(R2, target::Type::nullability_offset()), - kUnsignedByte); + __ LoadAbstractTypeNullability(R1, R1); + __ LoadAbstractTypeNullability(R2, R2); __ cmp(R1, Operand(R2)); __ b(&check_legacy, NE); // Fall through to equal case if nullability is strictly equal. diff --git a/runtime/vm/compiler/asm_intrinsifier_ia32.cc b/runtime/vm/compiler/asm_intrinsifier_ia32.cc index fa431d92100..962fc6202ad 100644 --- a/runtime/vm/compiler/asm_intrinsifier_ia32.cc +++ b/runtime/vm/compiler/asm_intrinsifier_ia32.cc @@ -1432,8 +1432,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, // Check nullability. __ Bind(&equiv_cids); - __ movzxb(EDI, FieldAddress(EDI, target::Type::nullability_offset())); - __ movzxb(EBX, FieldAddress(EBX, target::Type::nullability_offset())); + __ LoadAbstractTypeNullability(EDI, EDI); + __ LoadAbstractTypeNullability(EBX, EBX); __ cmpl(EDI, EBX); __ j(NOT_EQUAL, &check_legacy, Assembler::kNearJump); // Fall through to equal case if nullability is strictly equal. diff --git a/runtime/vm/compiler/asm_intrinsifier_riscv.cc b/runtime/vm/compiler/asm_intrinsifier_riscv.cc index e14eb6df7c2..a7a4a7c6ed4 100644 --- a/runtime/vm/compiler/asm_intrinsifier_riscv.cc +++ b/runtime/vm/compiler/asm_intrinsifier_riscv.cc @@ -1487,8 +1487,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, // Check nullability. __ Bind(&equiv_cids); - __ lbu(A0, FieldAddress(A0, target::Type::nullability_offset())); - __ lbu(A1, FieldAddress(A1, target::Type::nullability_offset())); + __ LoadAbstractTypeNullability(A0, A0); + __ LoadAbstractTypeNullability(A1, A1); __ bne(A0, A1, &check_legacy); // Fall through to equal case if nullability is strictly equal. diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc index 24928d64586..4e5953a1754 100644 --- a/runtime/vm/compiler/asm_intrinsifier_x64.cc +++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc @@ -1341,8 +1341,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, // Check nullability. __ Bind(&equiv_cids); - __ movzxb(RCX, FieldAddress(RCX, target::Type::nullability_offset())); - __ movzxb(RDX, FieldAddress(RDX, target::Type::nullability_offset())); + __ LoadAbstractTypeNullability(RCX, RCX); + __ LoadAbstractTypeNullability(RDX, RDX); __ cmpq(RCX, RDX); __ j(NOT_EQUAL, &check_legacy, Assembler::kNearJump); // Fall through to equal case if nullability is strictly equal. diff --git a/runtime/vm/compiler/assembler/assembler_arm.h b/runtime/vm/compiler/assembler/assembler_arm.h index 01015987c5f..326f47cf52f 100644 --- a/runtime/vm/compiler/assembler/assembler_arm.h +++ b/runtime/vm/compiler/assembler/assembler_arm.h @@ -441,17 +441,17 @@ class Assembler : public AssemblerBase { cmp(value, Operand(TMP)); } - void CompareFunctionTypeNullabilityWith(Register type, - int8_t value) override { - EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP); - ldrb(TMP, FieldAddress( - type, compiler::target::FunctionType::nullability_offset())); - cmp(TMP, Operand(value)); + void LoadAbstractTypeNullability(Register dst, Register type) override { + ldrb(dst, + FieldAddress(type, compiler::target::AbstractType::flags_offset())); + and_(dst, dst, + Operand(compiler::target::UntaggedAbstractType::kNullabilityMask)); } - void CompareTypeNullabilityWith(Register type, int8_t value) override { - EnsureHasClassIdInDEBUG(kTypeCid, type, TMP); - ldrb(TMP, FieldAddress(type, compiler::target::Type::nullability_offset())); - cmp(TMP, Operand(value)); + void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) override { + LoadAbstractTypeNullability(scratch, type); + cmp(scratch, Operand(value)); } // Misc. functionality @@ -869,6 +869,13 @@ class Assembler : public AssemblerBase { void LslImmediate(Register rd, int32_t shift) { LslImmediate(rd, rd, shift); } + void LsrImmediate(Register rd, Register rn, int32_t shift) { + ASSERT((shift >= 0) && (shift < kBitsPerInt32)); + Lsr(rd, rn, Operand(shift)); + } + void LsrImmediate(Register rd, int32_t shift) override { + LsrImmediate(rd, rd, shift); + } // Test rn and immediate. May clobber IP. void TestImmediate(Register rn, int32_t imm, Condition cond = AL); diff --git a/runtime/vm/compiler/assembler/assembler_arm64.h b/runtime/vm/compiler/assembler/assembler_arm64.h index 300071fbf40..494e06663fd 100644 --- a/runtime/vm/compiler/assembler/assembler_arm64.h +++ b/runtime/vm/compiler/assembler/assembler_arm64.h @@ -648,20 +648,17 @@ class Assembler : public AssemblerBase { cmp(value, Operand(TMP), sz); } - void CompareFunctionTypeNullabilityWith(Register type, - int8_t value) override { - EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP); - ldr(TMP, - FieldAddress(type, - compiler::target::FunctionType::nullability_offset()), + void LoadAbstractTypeNullability(Register dst, Register type) override { + ldr(dst, FieldAddress(type, compiler::target::AbstractType::flags_offset()), kUnsignedByte); - cmp(TMP, Operand(value)); + AndImmediate(dst, dst, + compiler::target::UntaggedAbstractType::kNullabilityMask); } - void CompareTypeNullabilityWith(Register type, int8_t value) override { - EnsureHasClassIdInDEBUG(kTypeCid, type, TMP); - ldr(TMP, FieldAddress(type, compiler::target::Type::nullability_offset()), - kUnsignedByte); - cmp(TMP, Operand(value)); + void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) override { + LoadAbstractTypeNullability(scratch, type); + cmp(scratch, Operand(value)); } bool use_far_branches() const { @@ -1707,6 +1704,9 @@ class Assembler : public AssemblerBase { ASSERT((shift >= 0) && (shift < reg_size)); ubfm(rd, rn, shift, reg_size - 1, sz); } + void LsrImmediate(Register rd, int32_t shift) override { + LsrImmediate(rd, rd, shift); + } void AsrImmediate(Register rd, Register rn, int shift, diff --git a/runtime/vm/compiler/assembler/assembler_base.h b/runtime/vm/compiler/assembler/assembler_base.h index 2d268476fa6..dbb00a3113f 100644 --- a/runtime/vm/compiler/assembler/assembler_base.h +++ b/runtime/vm/compiler/assembler/assembler_base.h @@ -782,30 +782,24 @@ class AssemblerBase : public StackResource { Register address, int32_t offset = 0) = 0; - // Retrieves nullability from a FunctionTypePtr in [type] and compares it - // to [value]. - // - // TODO(dartbug.com/47034): Change how nullability is stored so that it - // can be accessed without checking the class id first. - virtual void CompareFunctionTypeNullabilityWith(Register type, - int8_t value) = 0; + // Loads nullability from an AbstractType [type] to [dst]. + virtual void LoadAbstractTypeNullability(Register dst, Register type) = 0; + // Loads nullability from an AbstractType [type] and compares it + // to [value]. Clobbers [scratch]. + virtual void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) = 0; - // Retrieves nullability from a TypePtr in [type] and compares it to [value]. - // - // TODO(dartbug.com/47034): Change how nullability is stored so that it - // can be accessed without checking the class id first. - virtual void CompareTypeNullabilityWith(Register type, int8_t value) = 0; + virtual void LsrImmediate(Register dst, int32_t shift) = 0; void LoadTypeClassId(Register dst, Register src) { #if !defined(TARGET_ARCH_IA32) EnsureHasClassIdInDEBUG(kTypeCid, src, TMP); #endif - ASSERT(!compiler::target::UntaggedType::kTypeClassIdIsSigned); - ASSERT_EQUAL(compiler::target::UntaggedType::kTypeClassIdBitSize, - kBitsPerInt16); LoadFieldFromOffset(dst, src, - compiler::target::Type::type_class_id_offset(), - kUnsignedTwoBytes); + compiler::target::AbstractType::flags_offset(), + kUnsignedFourBytes); + LsrImmediate(dst, compiler::target::UntaggedType::kTypeClassIdShift); } virtual void EnsureHasClassIdInDEBUG(intptr_t cid, diff --git a/runtime/vm/compiler/assembler/assembler_ia32.h b/runtime/vm/compiler/assembler/assembler_ia32.h index d9ab00b526e..3ce1e5f943a 100644 --- a/runtime/vm/compiler/assembler/assembler_ia32.h +++ b/runtime/vm/compiler/assembler/assembler_ia32.h @@ -766,6 +766,9 @@ class Assembler : public AssemblerBase { void LslImmediate(Register dst, int32_t shift) { shll(dst, Immediate(shift)); } + void LsrImmediate(Register dst, int32_t shift) override { + shrl(dst, Immediate(shift)); + } void CompareImmediate(Register reg, int32_t immediate) { cmpl(reg, Immediate(immediate)); @@ -878,15 +881,17 @@ class Assembler : public AssemblerBase { cmpxchgl(address, reg); } - void CompareFunctionTypeNullabilityWith(Register type, - int8_t value) override { - cmpb(FieldAddress(type, - compiler::target::FunctionType::nullability_offset()), - Immediate(value)); + void LoadAbstractTypeNullability(Register dst, Register type) override { + movzxb(dst, + FieldAddress(type, compiler::target::AbstractType::flags_offset())); + andl(dst, + Immediate(compiler::target::UntaggedAbstractType::kNullabilityMask)); } - void CompareTypeNullabilityWith(Register type, int8_t value) override { - cmpb(FieldAddress(type, compiler::target::Type::nullability_offset()), - Immediate(value)); + void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) override { + LoadAbstractTypeNullability(scratch, type); + cmpl(scratch, Immediate(value)); } void EnterFrame(intptr_t frame_space); diff --git a/runtime/vm/compiler/assembler/assembler_riscv.cc b/runtime/vm/compiler/assembler/assembler_riscv.cc index 7b4cf3fc6cd..11a8c877472 100644 --- a/runtime/vm/compiler/assembler/assembler_riscv.cc +++ b/runtime/vm/compiler/assembler/assembler_riscv.cc @@ -2389,17 +2389,16 @@ void Assembler::CompareWithMemoryValue(Register value, Address address) { CompareRegisters(value, TMP2); } -void Assembler::CompareFunctionTypeNullabilityWith(Register type, - int8_t value) { - EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP); - lbu(TMP, - FieldAddress(type, compiler::target::FunctionType::nullability_offset())); - CompareImmediate(TMP, value); +void Assembler::LoadAbstractTypeNullability(Register dst, Register type) { + lbu(dst, FieldAddress(type, compiler::target::AbstractType::flags_offset())); + andi(dst, dst, compiler::target::UntaggedAbstractType::kNullabilityMask); } -void Assembler::CompareTypeNullabilityWith(Register type, int8_t value) { - EnsureHasClassIdInDEBUG(kTypeCid, type, TMP); - lbu(TMP, FieldAddress(type, compiler::target::Type::nullability_offset())); - CompareImmediate(TMP, value); + +void Assembler::CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) { + LoadAbstractTypeNullability(scratch, type); + CompareImmediate(scratch, value); } void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) { diff --git a/runtime/vm/compiler/assembler/assembler_riscv.h b/runtime/vm/compiler/assembler/assembler_riscv.h index 4e020016c81..e5da2e43ab9 100644 --- a/runtime/vm/compiler/assembler/assembler_riscv.h +++ b/runtime/vm/compiler/assembler/assembler_riscv.h @@ -846,8 +846,10 @@ class Assembler : public MicroAssembler { void CompareWithMemoryValue(Register value, Address address); - void CompareFunctionTypeNullabilityWith(Register type, int8_t value) override; - void CompareTypeNullabilityWith(Register type, int8_t value) override; + void LoadAbstractTypeNullability(Register dst, Register type) override; + void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) override; // Debugging and bringup support. void Breakpoint() override { trap(); } @@ -986,6 +988,9 @@ class Assembler : public MicroAssembler { void LslImmediate(Register rd, int32_t shift) { slli(rd, rd, shift); } + void LsrImmediate(Register rd, int32_t shift) override { + srli(rd, rd, shift); + } void TestImmediate(Register rn, intx_t imm, OperandSize sz = kWordBytes); void CompareImmediate(Register rn, intx_t imm, OperandSize sz = kWordBytes); diff --git a/runtime/vm/compiler/assembler/assembler_x64.h b/runtime/vm/compiler/assembler/assembler_x64.h index 1fd2feed96e..0d7e0fbe274 100644 --- a/runtime/vm/compiler/assembler/assembler_x64.h +++ b/runtime/vm/compiler/assembler/assembler_x64.h @@ -594,6 +594,9 @@ class Assembler : public AssemblerBase { void LslImmediate(Register dst, int32_t shift) { shlq(dst, Immediate(shift)); } + void LsrImmediate(Register dst, int32_t shift) override { + shrq(dst, Immediate(shift)); + } void shldq(Register dst, Register src, Register shifter) { ASSERT(shifter == RCX); @@ -1219,17 +1222,17 @@ class Assembler : public AssemblerBase { OBJ(cmp)(value, FieldAddress(base, offset)); } - void CompareFunctionTypeNullabilityWith(Register type, - int8_t value) override { - EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP); - cmpb(FieldAddress(type, - compiler::target::FunctionType::nullability_offset()), - Immediate(value)); + void LoadAbstractTypeNullability(Register dst, Register type) override { + movzxb(dst, + FieldAddress(type, compiler::target::AbstractType::flags_offset())); + andl(dst, + Immediate(compiler::target::UntaggedAbstractType::kNullabilityMask)); } - void CompareTypeNullabilityWith(Register type, int8_t value) override { - EnsureHasClassIdInDEBUG(kTypeCid, type, TMP); - cmpb(FieldAddress(type, compiler::target::Type::nullability_offset()), - Immediate(value)); + void CompareAbstractTypeNullabilityWith(Register type, + /*Nullability*/ int8_t value, + Register scratch) override { + LoadAbstractTypeNullability(scratch, type); + cmpl(scratch, Immediate(value)); } void RestoreCodePointer(); diff --git a/runtime/vm/compiler/backend/slot.h b/runtime/vm/compiler/backend/slot.h index 9cf74041030..61d395b1907 100644 --- a/runtime/vm/compiler/backend/slot.h +++ b/runtime/vm/compiler/backend/slot.h @@ -183,8 +183,7 @@ NONNULLABLE_BOXED_NATIVE_SLOTS_LIST(FOR_EACH_NATIVE_SLOT) V(FunctionType, UntaggedFunctionType, packed_type_parameter_counts, Uint16, \ FINAL) \ V(PointerBase, UntaggedPointerBase, data, IntPtr, VAR) \ - V(Record, UntaggedRecord, num_fields, Int32, FINAL) \ - V(TypeParameter, UntaggedTypeParameter, flags, Uint8, FINAL) + V(Record, UntaggedRecord, num_fields, Int32, FINAL) // For uses that do not need the exact_type (boxed) or representation (unboxed) // or whether a boxed native slot is nullable. (Generally, such users only need diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc index d0cf78605f9..5e72adebe51 100644 --- a/runtime/vm/compiler/runtime_api.cc +++ b/runtime/vm/compiler/runtime_api.cc @@ -391,12 +391,15 @@ const word UntaggedObject::kTagBitsSizeTagPos = const word UntaggedAbstractType::kTypeStateFinalizedInstantiated = dart::UntaggedAbstractType::kFinalizedInstantiated; +const word UntaggedAbstractType::kTypeStateShift = + dart::UntaggedAbstractType::kTypeStateShift; +const word UntaggedAbstractType::kTypeStateBits = + dart::UntaggedAbstractType::kTypeStateBits; +const word UntaggedAbstractType::kNullabilityMask = + dart::UntaggedAbstractType::kNullabilityMask; -const bool UntaggedType::kTypeClassIdIsSigned = - std::is_signed::value; - -const word UntaggedType::kTypeClassIdBitSize = - sizeof(dart::UntaggedType::type_class_id_) * kBitsPerByte; +const word UntaggedType::kTypeClassIdShift = + dart::UntaggedType::kTypeClassIdShift; const word UntaggedObject::kBarrierOverlapShift = dart::UntaggedObject::kBarrierOverlapShift; diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h index 38fe9a6cbb6..86be8077062 100644 --- a/runtime/vm/compiler/runtime_api.h +++ b/runtime/vm/compiler/runtime_api.h @@ -432,12 +432,14 @@ class UntaggedObject : public AllStatic { class UntaggedAbstractType : public AllStatic { public: static const word kTypeStateFinalizedInstantiated; + static const word kTypeStateShift; + static const word kTypeStateBits; + static const word kNullabilityMask; }; class UntaggedType : public AllStatic { public: - static const bool kTypeClassIdIsSigned; - static const word kTypeClassIdBitSize; + static const word kTypeClassIdShift; }; class Object : public AllStatic { @@ -695,6 +697,7 @@ class Pointer : public AllStatic { class AbstractType : public AllStatic { public: + static word flags_offset(); static word type_test_stub_entry_point_offset(); static word InstanceSize(); FINAL_CLASS(); @@ -703,10 +706,7 @@ class AbstractType : public AllStatic { class Type : public AllStatic { public: static word hash_offset(); - static word type_state_offset(); static word arguments_offset(); - static word type_class_id_offset(); - static word nullability_offset(); static word InstanceSize(); FINAL_CLASS(); }; @@ -714,13 +714,11 @@ class Type : public AllStatic { class FunctionType : public AllStatic { public: static word hash_offset(); - static word type_state_offset(); static word packed_parameter_counts_offset(); static word packed_type_parameter_counts_offset(); static word named_parameter_names_offset(); static word parameter_types_offset(); static word type_parameters_offset(); - static word nullability_offset(); static word InstanceSize(); FINAL_CLASS(); }; @@ -966,12 +964,10 @@ class Bool : public AllStatic { class TypeParameter : public AllStatic { public: static word bound_offset(); - static word flags_offset(); static word InstanceSize(); FINAL_CLASS(); static word parameterized_class_id_offset(); static word index_offset(); - static word nullability_offset(); }; class LibraryPrefix : public AllStatic { diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h index 5fccbc4fa44..8100475a1e8 100644 --- a/runtime/vm/compiler/runtime_offsets_extracted.h +++ b/runtime/vm/compiler/runtime_offsets_extracted.h @@ -96,6 +96,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -502,11 +503,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -527,24 +525,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -556,9 +550,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -584,7 +577,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -615,7 +608,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -667,7 +660,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -764,6 +757,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -1176,11 +1170,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -1201,24 +1192,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -1230,9 +1217,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -1259,7 +1245,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 1552, 1560, 1568, 1576, -1, -1, 1584, 1592, 1600, 1608, 1616, -1, 1624, 1632, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -1290,7 +1276,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -1341,9 +1327,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -1437,6 +1423,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -1843,11 +1830,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -1868,24 +1852,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -1897,9 +1877,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -1922,7 +1901,7 @@ static constexpr dart::compiler::target::word WeakReference_type_arguments_offset = 8; static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 4, 12, 8, 16}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -1953,7 +1932,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -2005,7 +1984,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -2102,6 +2081,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -2514,11 +2494,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -2539,24 +2516,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -2568,9 +2541,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -2598,7 +2570,7 @@ static constexpr dart::compiler::target::word 1552, 1560, 1568, 1576, 1584, 1592, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1, -1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -2629,7 +2601,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -2680,9 +2652,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -2776,6 +2748,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -3190,9 +3163,6 @@ static constexpr dart::compiler::target::word TimelineStream_enabled_offset = static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word Type_arguments_offset = 24; static constexpr dart::compiler::target::word Type_hash_offset = 28; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 32; -static constexpr dart::compiler::target::word Type_type_state_offset = 34; -static constexpr dart::compiler::target::word Type_nullability_offset = 35; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word Finalizer_callback_offset = 32; @@ -3216,8 +3186,6 @@ static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = static constexpr dart::compiler::target::word FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 51; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -3229,8 +3197,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 37; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 12; @@ -3243,7 +3209,6 @@ static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 16; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36; static constexpr dart::compiler::target::word TypeRef_type_offset = 24; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = @@ -3352,7 +3317,7 @@ static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word Type_InstanceSize = 40; +static constexpr dart::compiler::target::word Type_InstanceSize = 32; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24; static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; @@ -3449,6 +3414,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -3863,9 +3829,6 @@ static constexpr dart::compiler::target::word TimelineStream_enabled_offset = static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word Type_arguments_offset = 24; static constexpr dart::compiler::target::word Type_hash_offset = 28; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 32; -static constexpr dart::compiler::target::word Type_type_state_offset = 34; -static constexpr dart::compiler::target::word Type_nullability_offset = 35; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word Finalizer_callback_offset = 32; @@ -3889,8 +3852,6 @@ static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = static constexpr dart::compiler::target::word FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 51; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -3902,8 +3863,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 37; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 12; @@ -3916,7 +3875,6 @@ static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 16; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36; static constexpr dart::compiler::target::word TypeRef_type_offset = 24; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = @@ -4026,7 +3984,7 @@ static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word Type_InstanceSize = 40; +static constexpr dart::compiler::target::word Type_InstanceSize = 32; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24; static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; @@ -4123,6 +4081,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -4529,11 +4488,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -4554,24 +4510,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -4583,9 +4535,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -4613,7 +4564,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 788, 792, 796, -1, -1, 800, 804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832, 836, 840, -1, -1, -1, -1, 844, 848, 852, 856}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -4644,7 +4595,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -4696,7 +4647,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -4793,6 +4744,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -5205,11 +5157,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -5230,24 +5179,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -5259,9 +5204,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -5289,7 +5233,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 1552, 1560, 1568, -1, -1, 1576, 1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -5320,7 +5264,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -5371,9 +5315,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -5466,6 +5410,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -5867,11 +5812,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -5892,24 +5834,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -5921,9 +5859,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -5949,7 +5886,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -5980,7 +5917,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -6032,7 +5969,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -6126,6 +6063,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -6533,11 +6471,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -6558,24 +6493,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -6587,9 +6518,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -6616,7 +6546,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 1552, 1560, 1568, 1576, -1, -1, 1584, 1592, 1600, 1608, 1616, -1, 1624, 1632, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -6647,7 +6577,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -6698,9 +6628,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -6791,6 +6721,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -7192,11 +7123,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -7217,24 +7145,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -7246,9 +7170,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -7271,7 +7194,7 @@ static constexpr dart::compiler::target::word WeakReference_type_arguments_offset = 8; static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 4, 12, 8, 16}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -7302,7 +7225,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -7354,7 +7277,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -7448,6 +7371,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -7855,11 +7779,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -7880,24 +7801,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -7909,9 +7826,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -7939,7 +7855,7 @@ static constexpr dart::compiler::target::word 1552, 1560, 1568, 1576, 1584, 1592, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1, -1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -7970,7 +7886,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -8021,9 +7937,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -8114,6 +8030,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -8523,9 +8440,6 @@ static constexpr dart::compiler::target::word TimelineStream_enabled_offset = static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word Type_arguments_offset = 24; static constexpr dart::compiler::target::word Type_hash_offset = 28; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 32; -static constexpr dart::compiler::target::word Type_type_state_offset = 34; -static constexpr dart::compiler::target::word Type_nullability_offset = 35; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word Finalizer_callback_offset = 32; @@ -8549,8 +8463,6 @@ static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = static constexpr dart::compiler::target::word FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 51; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -8562,8 +8474,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 37; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 12; @@ -8576,7 +8486,6 @@ static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 16; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36; static constexpr dart::compiler::target::word TypeRef_type_offset = 24; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = @@ -8685,7 +8594,7 @@ static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word Type_InstanceSize = 40; +static constexpr dart::compiler::target::word Type_InstanceSize = 32; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24; static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; @@ -8779,6 +8688,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -9188,9 +9098,6 @@ static constexpr dart::compiler::target::word TimelineStream_enabled_offset = static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word Type_arguments_offset = 24; static constexpr dart::compiler::target::word Type_hash_offset = 28; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 32; -static constexpr dart::compiler::target::word Type_type_state_offset = 34; -static constexpr dart::compiler::target::word Type_nullability_offset = 35; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word Finalizer_callback_offset = 32; @@ -9214,8 +9121,6 @@ static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = static constexpr dart::compiler::target::word FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 51; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -9227,8 +9132,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 37; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 12; @@ -9241,7 +9144,6 @@ static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 16; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36; static constexpr dart::compiler::target::word TypeRef_type_offset = 24; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = @@ -9351,7 +9253,7 @@ static constexpr dart::compiler::target::word SubtypeTestCache_InstanceSize = static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word Type_InstanceSize = 40; +static constexpr dart::compiler::target::word Type_InstanceSize = 32; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24; static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; @@ -9445,6 +9347,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -9846,11 +9749,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = 16; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word Type_arguments_offset = 12; -static constexpr dart::compiler::target::word Type_hash_offset = 16; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 20; -static constexpr dart::compiler::target::word Type_type_state_offset = 22; -static constexpr dart::compiler::target::word Type_nullability_offset = 23; +static constexpr dart::compiler::target::word Type_arguments_offset = 16; +static constexpr dart::compiler::target::word Type_hash_offset = 20; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 20; @@ -9871,24 +9771,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 12; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 24; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 39; + FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 32; + FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 36; + FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 20; + FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 12; + FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 20; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 23; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 25; + TypeParameter_parameterized_class_id_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 27; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word TypeArguments_length_offset = 8; @@ -9900,9 +9796,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 8; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24; -static constexpr dart::compiler::target::word TypeRef_type_offset = 12; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20; +static constexpr dart::compiler::target::word TypeRef_type_offset = 16; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 12; @@ -9930,7 +9825,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 788, 792, 796, -1, -1, 800, 804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832, 836, 840, -1, -1, -1, -1, 844, 848, 852, 856}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_header_size = 12; static constexpr dart::compiler::target::word Bool_InstanceSize = 8; @@ -9961,7 +9856,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 24; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 88; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 16; @@ -10013,7 +9908,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Type_InstanceSize = 24; static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20; @@ -10107,6 +10002,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AbstractType_flags_offset = 16; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -10514,11 +10410,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word Type_arguments_offset = 24; -static constexpr dart::compiler::target::word Type_hash_offset = 32; -static constexpr dart::compiler::target::word Type_type_class_id_offset = 40; -static constexpr dart::compiler::target::word Type_type_state_offset = 42; -static constexpr dart::compiler::target::word Type_nullability_offset = 43; +static constexpr dart::compiler::target::word Type_arguments_offset = 32; +static constexpr dart::compiler::target::word Type_hash_offset = 40; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word Finalizer_callback_offset = 40; @@ -10539,24 +10432,20 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 24; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 48; -static constexpr dart::compiler::target::word FunctionType_nullability_offset = - 71; + FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - FunctionType_packed_parameter_counts_offset = 64; + FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - FunctionType_packed_type_parameter_counts_offset = 68; + FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 40; + FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 24; + FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - TypeParameter_parameterized_class_id_offset = 40; -static constexpr dart::compiler::target::word TypeParameter_index_offset = 43; -static constexpr dart::compiler::target::word TypeParameter_nullability_offset = - 45; + TypeParameter_parameterized_class_id_offset = 48; +static constexpr dart::compiler::target::word TypeParameter_index_offset = 51; static constexpr dart::compiler::target::word TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word TypeArguments_length_offset = 16; @@ -10568,9 +10457,8 @@ static constexpr dart::compiler::target::word TypeParameters_flags_offset = 16; static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24; static constexpr dart::compiler::target::word TypeParameters_defaults_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32; -static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44; -static constexpr dart::compiler::target::word TypeRef_type_offset = 24; +static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40; +static constexpr dart::compiler::target::word TypeRef_type_offset = 32; static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word TypedDataView_typed_data_offset = 24; @@ -10598,7 +10486,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 1552, 1560, 1568, -1, -1, 1576, 1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_header_size = 24; static constexpr dart::compiler::target::word Bool_InstanceSize = 16; @@ -10629,7 +10517,7 @@ static constexpr dart::compiler::target::word NativeFinalizer_InstanceSize = 48; static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word Function_InstanceSize = 128; -static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72; +static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80; static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize = 32; @@ -10680,9 +10568,9 @@ static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 32; static constexpr dart::compiler::target::word TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word Type_InstanceSize = 48; -static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48; +static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56; static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24; static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40; @@ -10785,6 +10673,7 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word @@ -11229,12 +11118,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 20; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -11261,25 +11146,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 24; + AOT_FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 39; + AOT_FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 32; + AOT_FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 36; + AOT_FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 20; + AOT_FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 12; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 20; + AOT_TypeParameter_parameterized_class_id_offset = 24; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 23; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 25; + 27; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -11297,10 +11178,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 16; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 16; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 24; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12; + 20; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word @@ -11329,7 +11208,7 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { 788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 12; + 16; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Array_header_size = 12; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8; @@ -11364,7 +11243,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 40; + 44; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 16; @@ -11424,7 +11303,7 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 12; @@ -11529,6 +11408,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -11975,12 +11856,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -12007,25 +11884,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -12043,10 +11916,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -12077,7 +11948,7 @@ static constexpr dart::compiler::target::word 1552, 1560, 1568, 1576, -1, -1, 1584, 1592, 1600, 1608, 1616, -1, 1624, 1632, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -12112,7 +11983,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -12169,10 +12040,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; @@ -12280,6 +12151,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -12726,12 +12599,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -12758,25 +12627,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -12794,10 +12659,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -12829,7 +12692,7 @@ static constexpr dart::compiler::target::word 1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1, -1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -12864,7 +12727,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -12921,10 +12784,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; @@ -13028,6 +12891,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -13476,10 +13341,6 @@ static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 32; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -13509,8 +13370,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word AOT_FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 51; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -13523,8 +13382,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 37; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -13543,8 +13400,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 36; static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 20; @@ -13666,7 +13521,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40; +static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = @@ -13775,6 +13630,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -14223,10 +14080,6 @@ static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 32; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -14256,8 +14109,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word AOT_FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 51; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -14270,8 +14121,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 37; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -14290,8 +14139,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 36; static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 20; @@ -14414,7 +14261,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40; +static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = @@ -14523,6 +14370,7 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word @@ -14967,12 +14815,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 20; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -14999,25 +14843,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 24; + AOT_FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 39; + AOT_FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 32; + AOT_FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 36; + AOT_FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 20; + AOT_FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 12; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 20; + AOT_TypeParameter_parameterized_class_id_offset = 24; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 23; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 25; + 27; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -15035,10 +14875,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 16; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 16; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 24; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12; + 20; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word @@ -15069,7 +14907,7 @@ static constexpr dart::compiler::target::word 804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832, 836, 840, -1, -1, -1, -1, 844, 848, 852, 856}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 12; + 16; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Array_header_size = 12; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8; @@ -15104,7 +14942,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 40; + 44; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 16; @@ -15164,7 +15002,7 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 12; @@ -15269,6 +15107,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -15715,12 +15555,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -15747,25 +15583,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -15783,10 +15615,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -15818,7 +15648,7 @@ static constexpr dart::compiler::target::word 1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -15853,7 +15683,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -15910,10 +15740,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; @@ -16016,6 +15846,7 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word @@ -16454,12 +16285,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 20; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -16486,25 +16313,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 24; + AOT_FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 39; + AOT_FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 32; + AOT_FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 36; + AOT_FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 20; + AOT_FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 12; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 20; + AOT_TypeParameter_parameterized_class_id_offset = 24; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 23; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 25; + 27; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -16522,10 +16345,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 16; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 16; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 24; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12; + 20; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word @@ -16554,7 +16375,7 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { 788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 12; + 16; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Array_header_size = 12; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8; @@ -16589,7 +16410,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 40; + 44; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 16; @@ -16649,7 +16470,7 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 12; @@ -16751,6 +16572,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -17191,12 +17014,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -17223,25 +17042,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -17259,10 +17074,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -17293,7 +17106,7 @@ static constexpr dart::compiler::target::word 1552, 1560, 1568, 1576, -1, -1, 1584, 1592, 1600, 1608, 1616, -1, 1624, 1632, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -17328,7 +17141,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -17385,10 +17198,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; @@ -17493,6 +17306,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -17933,12 +17748,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -17965,25 +17776,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -18001,10 +17808,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -18036,7 +17841,7 @@ static constexpr dart::compiler::target::word 1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1, -1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -18071,7 +17876,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -18128,10 +17933,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; @@ -18232,6 +18037,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -18674,10 +18481,6 @@ static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 32; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -18707,8 +18510,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word AOT_FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 51; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -18721,8 +18522,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 37; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -18741,8 +18540,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 36; static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 20; @@ -18864,7 +18661,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40; +static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = @@ -18970,6 +18767,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -19412,10 +19211,6 @@ static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 32; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 36; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -19445,8 +19240,6 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 40; static constexpr dart::compiler::target::word AOT_FunctionType_named_parameter_names_offset = 36; -static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 51; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 44; static constexpr dart::compiler::target::word @@ -19459,8 +19252,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_parameterized_class_id_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 35; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 37; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -19479,8 +19270,6 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 20; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = 28; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 36; static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 20; @@ -19603,7 +19392,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; -static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40; +static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = @@ -19709,6 +19498,7 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 268435455; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 4; static constexpr dart::compiler::target::word @@ -20147,12 +19937,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 20; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -20179,25 +19965,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 20; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 24; + AOT_FunctionType_named_parameter_names_offset = 28; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 39; + AOT_FunctionType_packed_parameter_counts_offset = 36; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 32; + AOT_FunctionType_packed_type_parameter_counts_offset = 40; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 36; + AOT_FunctionType_parameter_types_offset = 24; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 20; + AOT_FunctionType_type_parameters_offset = 16; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 12; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 20; + AOT_TypeParameter_parameterized_class_id_offset = 24; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 23; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 25; + 27; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 4; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -20215,10 +19997,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 16; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 16; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 24; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12; + 20; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 8; static constexpr dart::compiler::target::word @@ -20249,7 +20029,7 @@ static constexpr dart::compiler::target::word 804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832, 836, 840, -1, -1, -1, -1, 844, 848, 852, 856}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 12; + 16; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Array_header_size = 12; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8; @@ -20284,7 +20064,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 40; + 44; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 16; @@ -20344,7 +20124,7 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = 28; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 20; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 12; @@ -20446,6 +20226,8 @@ static constexpr dart::compiler::target::word AOT_SubtypeTestCache_kTestResult = 0; static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 576460752303423487; +static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = + 16; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 8; static constexpr dart::compiler::target::word @@ -20886,12 +20668,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 16; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24; -static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32; -static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset = - 40; -static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42; -static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 48; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -20918,25 +20696,21 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 40; -static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 48; + AOT_FunctionType_named_parameter_names_offset = 56; static constexpr dart::compiler::target::word - AOT_FunctionType_nullability_offset = 71; + AOT_FunctionType_packed_parameter_counts_offset = 72; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_parameter_counts_offset = 64; + AOT_FunctionType_packed_type_parameter_counts_offset = 76; static constexpr dart::compiler::target::word - AOT_FunctionType_packed_type_parameter_counts_offset = 68; + AOT_FunctionType_parameter_types_offset = 48; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 40; + AOT_FunctionType_type_parameters_offset = 32; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 24; -static constexpr dart::compiler::target::word - AOT_TypeParameter_parameterized_class_id_offset = 40; + AOT_TypeParameter_parameterized_class_id_offset = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = - 43; -static constexpr dart::compiler::target::word - AOT_TypeParameter_nullability_offset = 45; + 51; static constexpr dart::compiler::target::word AOT_TypeArguments_instantiations_offset = 8; static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset = @@ -20954,10 +20728,8 @@ static constexpr dart::compiler::target::word AOT_TypeParameters_bounds_offset = static constexpr dart::compiler::target::word AOT_TypeParameters_defaults_offset = 32; static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset = - 32; -static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset = - 44; -static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24; + 40; +static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32; static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset = 16; static constexpr dart::compiler::target::word @@ -20989,7 +20761,7 @@ static constexpr dart::compiler::target::word 1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 24; + 32; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_Array_header_size = 24; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16; @@ -21024,7 +20796,7 @@ static constexpr dart::compiler::target::word AOT_Float32x4_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80; static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize = - 72; + 80; static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16; static constexpr dart::compiler::target::word AOT_GrowableObjectArray_InstanceSize = 32; @@ -21081,10 +20853,10 @@ static constexpr dart::compiler::target::word AOT_TransferableTypedData_InstanceSize = 8; static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48; static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize = - 48; + 56; static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize = 40; -static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32; +static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40; static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24; static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize = 24; diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h index a5840516a0b..4ed9792496d 100644 --- a/runtime/vm/compiler/runtime_offsets_list.h +++ b/runtime/vm/compiler/runtime_offsets_list.h @@ -88,6 +88,7 @@ CONSTANT(SubtypeTestCache, kTestEntryLength) \ CONSTANT(SubtypeTestCache, kTestResult) \ CONSTANT(TypeArguments, kMaxElements) \ + FIELD(AbstractType, flags_offset) \ FIELD(AbstractType, type_test_stub_entry_point_offset) \ FIELD(ArgumentsDescriptor, count_offset) \ FIELD(ArgumentsDescriptor, size_offset) \ @@ -336,9 +337,6 @@ FIELD(TwoByteString, data_offset) \ FIELD(Type, arguments_offset) \ FIELD(Type, hash_offset) \ - FIELD(Type, type_class_id_offset) \ - FIELD(Type, type_state_offset) \ - FIELD(Type, nullability_offset) \ FIELD(Finalizer, type_arguments_offset) \ FIELD(Finalizer, callback_offset) \ FIELD(FinalizerBase, all_entries_offset) \ @@ -354,14 +352,12 @@ FIELD(NativeFinalizer, callback_offset) \ FIELD(FunctionType, hash_offset) \ FIELD(FunctionType, named_parameter_names_offset) \ - FIELD(FunctionType, nullability_offset) \ FIELD(FunctionType, packed_parameter_counts_offset) \ FIELD(FunctionType, packed_type_parameter_counts_offset) \ FIELD(FunctionType, parameter_types_offset) \ FIELD(FunctionType, type_parameters_offset) \ FIELD(TypeParameter, parameterized_class_id_offset) \ FIELD(TypeParameter, index_offset) \ - FIELD(TypeParameter, nullability_offset) \ FIELD(TypeArguments, instantiations_offset) \ FIELD(TypeArguments, length_offset) \ FIELD(TypeArguments, nullability_offset) \ @@ -371,7 +367,6 @@ FIELD(TypeParameters, bounds_offset) \ FIELD(TypeParameters, defaults_offset) \ FIELD(TypeParameter, bound_offset) \ - FIELD(TypeParameter, flags_offset) \ FIELD(TypeRef, type_offset) \ FIELD(TypedDataBase, length_offset) \ FIELD(TypedDataView, typed_data_offset) \ diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc index ed096816291..992bd372a2b 100644 --- a/runtime/vm/compiler/stub_code_compiler.cc +++ b/runtime/vm/compiler/stub_code_compiler.cc @@ -312,50 +312,27 @@ static void BuildInstantiateTypeParameterStub(Assembler* assembler, __ LoadClassId(InstantiateTypeABI::kScratchReg, InstantiateTypeABI::kResultTypeReg); - // The loaded value from the TAV can be [Type], [FunctionType] or [TypeRef]. + // Handle/unwrap TypeRefs in runtime. + __ CompareImmediate(InstantiateTypeABI::kScratchReg, kTypeRefCid); + __ BranchIf(EQUAL, &runtime_call); - // Handle [Type]s. - __ CompareImmediate(InstantiateTypeABI::kScratchReg, kTypeCid); - __ BranchIf(NOT_EQUAL, &type_parameter_value_is_not_type); switch (nullability) { case Nullability::kNonNullable: __ Ret(); break; case Nullability::kNullable: - __ CompareTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( InstantiateTypeABI::kResultTypeReg, - static_cast(Nullability::kNullable)); + static_cast(Nullability::kNullable), + InstantiateTypeABI::kScratchReg); __ BranchIf(NOT_EQUAL, &runtime_call); __ Ret(); break; case Nullability::kLegacy: - __ CompareTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( InstantiateTypeABI::kResultTypeReg, - static_cast(Nullability::kNonNullable)); - __ BranchIf(EQUAL, &runtime_call); - __ Ret(); - } - - // TODO(dartbug.com/49719) - // Handle [FunctionType]s. - __ Bind(&type_parameter_value_is_not_type); - __ CompareImmediate(InstantiateTypeABI::kScratchReg, kFunctionTypeCid); - __ BranchIf(NOT_EQUAL, &runtime_call); - switch (nullability) { - case Nullability::kNonNullable: - __ Ret(); - break; - case Nullability::kNullable: - __ CompareFunctionTypeNullabilityWith( - InstantiateTypeABI::kResultTypeReg, - static_cast(Nullability::kNullable)); - __ BranchIf(NOT_EQUAL, &runtime_call); - __ Ret(); - break; - case Nullability::kLegacy: - __ CompareFunctionTypeNullabilityWith( - InstantiateTypeABI::kResultTypeReg, - static_cast(Nullability::kNonNullable)); + static_cast(Nullability::kNonNullable), + InstantiateTypeABI::kScratchReg); __ BranchIf(EQUAL, &runtime_call); __ Ret(); } @@ -520,8 +497,9 @@ static void GenerateTypeIsTopTypeForSubtyping(Assembler* assembler, __ BranchIf(NOT_EQUAL, &done, compiler::Assembler::kNearJump); if (null_safety) { // Instance type isn't a top type if non-nullable in null safe mode. - __ CompareTypeNullabilityWith( - scratch1_reg, static_cast(Nullability::kNonNullable)); + __ CompareAbstractTypeNullabilityWith( + scratch1_reg, static_cast(Nullability::kNonNullable), + scratch2_reg); __ BranchIf(EQUAL, &done, compiler::Assembler::kNearJump); } __ Bind(&is_top_type); @@ -619,8 +597,9 @@ static void GenerateNullIsAssignableToType(Assembler* assembler, compiler::Label is_not_type; __ CompareClassId(kCurrentTypeReg, kTypeCid, kScratchReg); __ BranchIf(NOT_EQUAL, &is_not_type, compiler::Assembler::kNearJump); - __ CompareTypeNullabilityWith( - kCurrentTypeReg, static_cast(Nullability::kNonNullable)); + __ CompareAbstractTypeNullabilityWith( + kCurrentTypeReg, static_cast(Nullability::kNonNullable), + kScratchReg); __ BranchIf(NOT_EQUAL, &is_assignable); // FutureOr is a special case because it may have the non-nullable bit set, // but FutureOr functions as the union of T and Future, so it must be @@ -644,11 +623,9 @@ static void GenerateNullIsAssignableToType(Assembler* assembler, __ Bind(&is_not_type); // Null is assignable to a type parameter only if it is nullable or if the // instantiation is nullable. - __ LoadFieldFromOffset( - kScratchReg, kCurrentTypeReg, - compiler::target::TypeParameter::nullability_offset(), kByte); - __ CompareImmediate(kScratchReg, - static_cast(Nullability::kNonNullable)); + __ CompareAbstractTypeNullabilityWith( + kCurrentTypeReg, static_cast(Nullability::kNonNullable), + kScratchReg); __ BranchIf(NOT_EQUAL, &is_assignable); // Don't set kScratchReg in here as on IA32, that's the function TAV reg. @@ -878,10 +855,15 @@ void StubCodeCompiler::GenerateSlowTypeTestStub(Assembler* assembler) { // Check whether this [Type] is instantiated/uninstantiated. __ LoadFieldFromOffset(TypeTestABI::kScratchReg, TypeTestABI::kDstTypeReg, - target::Type::type_state_offset(), kByte); + target::AbstractType::flags_offset(), kByte); + __ AndImmediate( + TypeTestABI::kScratchReg, + Utils::NBitMask(target::UntaggedAbstractType::kTypeStateBits) + << target::UntaggedAbstractType::kTypeStateShift); __ CompareImmediate( TypeTestABI::kScratchReg, - target::UntaggedAbstractType::kTypeStateFinalizedInstantiated); + target::UntaggedAbstractType::kTypeStateFinalizedInstantiated + << target::UntaggedAbstractType::kTypeStateShift); __ BranchIf(NOT_EQUAL, &is_complex_case, Assembler::kNearJump); // This [Type] could be a FutureOr. Subtype2TestCache does not support Smi. diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index 5b0c61a9318..2123257ce25 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc @@ -10554,20 +10554,15 @@ FunctionTypePtr FunctionType::New(intptr_t num_parent_type_arguments, result.set_packed_type_parameter_counts(0); result.set_named_parameter_names(Object::empty_array()); result.SetNumParentTypeArguments(num_parent_type_arguments); - result.set_nullability(nullability); result.SetHash(0); - result.StoreNonPointer(&result.untag()->type_state_, - UntaggedType::kAllocated); + result.set_flags(0); + result.set_nullability(nullability); + result.set_type_state(UntaggedAbstractType::kAllocated); result.InitializeTypeTestingStubNonAtomic( Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result))); return result.ptr(); } -void FunctionType::set_type_state(uint8_t state) const { - ASSERT(state <= UntaggedFunctionType::kFinalizedUninstantiated); - StoreNonPointer(&untag()->type_state_, state); -} - const char* FunctionType::ToUserVisibleCString() const { Zone* zone = Thread::Current()->zone(); ZoneTextBuffer printer(zone); @@ -20133,12 +20128,6 @@ void AbstractType::set_arguments(const TypeArguments& value) const { UNREACHABLE(); } -Nullability AbstractType::nullability() const { - // AbstractType is an abstract class. - UNREACHABLE(); - return Nullability::kNullable; -} - bool AbstractType::IsStrictlyNonNullable() const { // Null can be assigned to legacy and nullable types. if (!IsNonNullable()) { @@ -20259,26 +20248,32 @@ bool AbstractType::IsInstantiated(Genericity genericity, return false; } -bool AbstractType::IsFinalized() const { - // AbstractType is an abstract class. - UNREACHABLE(); - return false; -} - void AbstractType::SetIsFinalized() const { - // AbstractType is an abstract class. - UNREACHABLE(); -} - -bool AbstractType::IsBeingFinalized() const { - // AbstractType is an abstract class. - UNREACHABLE(); - return false; + ASSERT(!IsFinalized()); + set_type_state(IsInstantiated() + ? UntaggedAbstractType::kFinalizedInstantiated + : UntaggedAbstractType::kFinalizedUninstantiated); } void AbstractType::SetIsBeingFinalized() const { - // AbstractType is an abstract class. - UNREACHABLE(); + ASSERT(!IsFinalized() && !IsBeingFinalized()); + set_type_state(UntaggedAbstractType::kBeingFinalized); +} + +void AbstractType::set_flags(uint32_t value) const { + StoreNonPointer(&untag()->flags_, value); +} + +void AbstractType::set_type_state(UntaggedAbstractType::TypeState value) const { + ASSERT(!IsCanonical()); + set_flags( + UntaggedAbstractType::TypeStateBits::update(value, untag()->flags_)); +} + +void AbstractType::set_nullability(Nullability value) const { + ASSERT(!IsCanonical()); + set_flags(UntaggedAbstractType::NullabilityBits::update( + static_cast(value), untag()->flags_)); } bool AbstractType::IsEquivalent(const Instance& other, @@ -21066,34 +21061,6 @@ TypePtr Type::NewNonParameterizedType(const Class& type_class) { return type.ptr(); } -void Type::SetIsFinalized() const { - ASSERT(!IsFinalized()); - if (IsInstantiated()) { - set_type_state(UntaggedType::kFinalizedInstantiated); - } else { - set_type_state(UntaggedType::kFinalizedUninstantiated); - } -} - -void FunctionType::SetIsFinalized() const { - ASSERT(!IsFinalized()); - if (IsInstantiated()) { - set_type_state(UntaggedFunctionType::kFinalizedInstantiated); - } else { - set_type_state(UntaggedFunctionType::kFinalizedUninstantiated); - } -} - -void Type::SetIsBeingFinalized() const { - ASSERT(!IsFinalized() && !IsBeingFinalized()); - set_type_state(UntaggedType::kBeingFinalized); -} - -void FunctionType::SetIsBeingFinalized() const { - ASSERT(!IsFinalized() && !IsBeingFinalized()); - set_type_state(UntaggedFunctionType::kBeingFinalized); -} - TypePtr Type::ToNullability(Nullability value, Heap::Space space) const { if (nullability() == value) { return ptr(); @@ -21151,7 +21118,7 @@ FunctionTypePtr FunctionType::ToNullability(Nullability value, } classid_t Type::type_class_id() const { - return untag()->type_class_id_; + return untag()->type_class_id(); } ClassPtr Type::type_class() const { @@ -21161,11 +21128,11 @@ ClassPtr Type::type_class() const { bool Type::IsInstantiated(Genericity genericity, intptr_t num_free_fun_type_params, TrailPtr trail) const { - if (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) { + if (type_state() == UntaggedType::kFinalizedInstantiated) { return true; } if ((genericity == kAny) && (num_free_fun_type_params == kAllFree) && - (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated)) { + (type_state() == UntaggedType::kFinalizedUninstantiated)) { return false; } if (arguments() == TypeArguments::null()) { @@ -21723,12 +21690,12 @@ TypePtr Type::New(const Class& clazz, Heap::Space space) { Zone* Z = Thread::Current()->zone(); const Type& result = Type::Handle(Z, Type::New(space)); - result.set_type_class(clazz); result.set_arguments(arguments); result.SetHash(0); - result.StoreNonPointer(&result.untag()->type_state_, - UntaggedType::kAllocated); + result.set_flags(0); result.set_nullability(nullability); + result.set_type_state(UntaggedAbstractType::kAllocated); + result.set_type_class(clazz); result.InitializeTypeTestingStubNonAtomic( Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result))); @@ -21736,19 +21703,13 @@ TypePtr Type::New(const Class& clazz, } void Type::set_type_class_id(intptr_t id) const { - COMPILE_ASSERT( - std::is_unsigned::value); - ASSERT(Utils::IsUint(sizeof(untag()->type_class_id_) * kBitsPerByte, id)); + COMPILE_ASSERT(std::is_unsigned::value); + ASSERT(Utils::IsUint(sizeof(ClassIdTagType) * kBitsPerByte, id)); // We should never need a Type object for a top-level class. ASSERT(!ClassTable::IsTopLevelCid(id)); ASSERT(id != kIllegalCid); ASSERT(!IsInternalOnlyClassId(id)); - StoreNonPointer(&untag()->type_class_id_, id); -} - -void Type::set_type_state(uint8_t state) const { - ASSERT(state <= UntaggedType::kFinalizedUninstantiated); - StoreNonPointer(&untag()->type_state_, state); + untag()->set_type_class_id(id); } const char* Type::ToCString() const { @@ -22064,6 +22025,12 @@ AbstractTypePtr TypeRef::InstantiateFrom( void TypeRef::set_type(const AbstractType& value) const { ASSERT(!value.IsTypeRef()); + if (value.IsNull()) { + ASSERT(!IsFinalized()); + } else { + set_type_state(value.type_state()); + set_nullability(value.nullability()); + } untag()->set_type(value.ptr()); } @@ -22165,23 +22132,6 @@ const char* TypeRef::ToCString() const { return printer.buffer(); } -void TypeParameter::SetIsFinalized() const { - ASSERT(!IsFinalized()); - set_flags(UntaggedTypeParameter::FinalizedBit::update( - true, UntaggedTypeParameter::BeingFinalizedBit::update(false, - untag()->flags_))); -} - -void TypeParameter::SetIsBeingFinalized() const { - ASSERT(!IsFinalized()); - set_flags( - UntaggedTypeParameter::BeingFinalizedBit::update(true, untag()->flags_)); -} - -void TypeParameter::set_nullability(Nullability value) const { - StoreNonPointer(&untag()->nullability_, static_cast(value)); -} - TypeParameterPtr TypeParameter::ToNullability(Nullability value, Heap::Space space) const { if (nullability() == value) { @@ -22539,19 +22489,16 @@ TypeParameterPtr TypeParameter::New(const Class& parameterized_class, result.set_base(base); result.set_index(index); result.set_bound(bound); + result.SetHash(0); result.set_flags(0); result.set_nullability(nullability); - result.SetHash(0); + result.set_type_state(UntaggedAbstractType::kAllocated); result.InitializeTypeTestingStubNonAtomic( Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result))); return result.ptr(); } -void TypeParameter::set_flags(uint8_t flags) const { - StoreNonPointer(&untag()->flags_, flags); -} - const char* TypeParameter::CanonicalNameCString(bool is_class_type_parameter, intptr_t base, intptr_t index) { @@ -27252,34 +27199,15 @@ RecordTypePtr RecordType::New(const Array& field_types, const RecordType& result = RecordType::Handle(Z, RecordType::New(space)); result.set_field_types(field_types); result.set_field_names(field_names); - result.set_nullability(nullability); result.SetHash(0); - result.StoreNonPointer(&result.untag()->type_state_, - UntaggedType::kAllocated); + result.set_flags(0); + result.set_nullability(nullability); + result.set_type_state(UntaggedAbstractType::kAllocated); result.InitializeTypeTestingStubNonAtomic( Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result))); return result.ptr(); } -void RecordType::set_type_state(uint8_t state) const { - ASSERT(state <= UntaggedRecordType::kFinalizedUninstantiated); - StoreNonPointer(&untag()->type_state_, state); -} - -void RecordType::SetIsFinalized() const { - ASSERT(!IsFinalized()); - if (IsInstantiated()) { - set_type_state(UntaggedRecordType::kFinalizedInstantiated); - } else { - set_type_state(UntaggedRecordType::kFinalizedUninstantiated); - } -} - -void RecordType::SetIsBeingFinalized() const { - ASSERT(!IsFinalized() && !IsBeingFinalized()); - set_type_state(UntaggedRecordType::kBeingFinalized); -} - RecordTypePtr RecordType::ToNullability(Nullability value, Heap::Space space) const { if (nullability() == value) { diff --git a/runtime/vm/object.h b/runtime/vm/object.h index 6920a6e2544..aaf321b1937 100644 --- a/runtime/vm/object.h +++ b/runtime/vm/object.h @@ -8165,12 +8165,25 @@ class TypeArguments : public Instance { // Subclasses of AbstractType are Type and TypeParameter. class AbstractType : public Instance { public: - virtual bool IsFinalized() const; - virtual void SetIsFinalized() const; - virtual bool IsBeingFinalized() const; - virtual void SetIsBeingFinalized() const; + static intptr_t flags_offset() { + return OFFSET_OF(UntaggedAbstractType, flags_); + } - virtual Nullability nullability() const; + bool IsFinalized() const { + const auto state = type_state(); + return (state == UntaggedAbstractType::kFinalizedInstantiated) || + (state == UntaggedAbstractType::kFinalizedUninstantiated); + } + void SetIsFinalized() const; + bool IsBeingFinalized() const { + return type_state() == UntaggedAbstractType::kBeingFinalized; + } + void SetIsBeingFinalized() const; + + Nullability nullability() const { + return static_cast( + UntaggedAbstractType::NullabilityBits::decode(untag()->flags_)); + } // Returns true if type has '?' nullability suffix, or it is a // built-in type which is always nullable (Null, dynamic or void). bool IsNullable() const { return nullability() == Nullability::kNullable; } @@ -8462,45 +8475,33 @@ class AbstractType : public Instance { const AbstractType& other_type, TypeEquality kind) const; + UntaggedAbstractType::TypeState type_state() const { + return static_cast( + UntaggedAbstractType::TypeStateBits::decode(untag()->flags_)); + } + void set_flags(uint32_t value) const; + void set_type_state(UntaggedAbstractType::TypeState value) const; + void set_nullability(Nullability value) const; + HEAP_OBJECT_IMPLEMENTATION(AbstractType, Instance); friend class Class; friend class Function; friend class TypeArguments; + friend class TypeRef; }; // A Type consists of a class, possibly parameterized with type // arguments. Example: C. class Type : public AbstractType { public: - static intptr_t type_class_id_offset() { - return OFFSET_OF(UntaggedType, type_class_id_); - } static intptr_t arguments_offset() { return OFFSET_OF(UntaggedType, arguments_); } - static intptr_t type_state_offset() { - return OFFSET_OF(UntaggedType, type_state_); - } static intptr_t hash_offset() { return OFFSET_OF(UntaggedType, hash_); } - static intptr_t nullability_offset() { - return OFFSET_OF(UntaggedType, nullability_); - } - virtual bool IsFinalized() const { - return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) || - (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated); - } - virtual void SetIsFinalized() const; - virtual bool IsBeingFinalized() const { - return untag()->type_state_ == UntaggedType::kBeingFinalized; - } - virtual void SetIsBeingFinalized() const; virtual bool HasTypeClass() const { ASSERT(type_class_id() != kIllegalCid); return true; } - virtual Nullability nullability() const { - return static_cast(untag()->nullability_); - } TypePtr ToNullability(Nullability value, Heap::Space space) const; virtual classid_t type_class_id() const; virtual ClassPtr type_class() const; @@ -8616,11 +8617,6 @@ class Type : public AbstractType { // in ClassIdTagType. This allows us to guard against that case, instead of // silently truncating the cid. void set_type_class_id(intptr_t id) const; - void set_type_state(uint8_t state) const; - void set_nullability(Nullability value) const { - ASSERT(!IsCanonical()); - StoreNonPointer(&untag()->nullability_, static_cast(value)); - } static TypePtr New(Heap::Space space = Heap::kOld); @@ -8648,28 +8644,10 @@ class FunctionType : public AbstractType { using PackedNumOptionalParameters = UntaggedFunctionType::PackedNumOptionalParameters; - static intptr_t type_state_offset() { - return OFFSET_OF(UntaggedFunctionType, type_state_); - } static intptr_t hash_offset() { return OFFSET_OF(UntaggedFunctionType, hash_); } - static intptr_t nullability_offset() { - return OFFSET_OF(UntaggedFunctionType, nullability_); - } - virtual bool IsFinalized() const { - return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) || - (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated); - } - virtual void SetIsFinalized() const; - virtual bool IsBeingFinalized() const { - return untag()->type_state_ == UntaggedType::kBeingFinalized; - } - virtual void SetIsBeingFinalized() const; virtual bool HasTypeClass() const { return false; } - virtual Nullability nullability() const { - return static_cast(untag()->nullability_); - } FunctionTypePtr ToNullability(Nullability value, Heap::Space space) const; virtual classid_t type_class_id() const { return kIllegalCid; } virtual bool IsInstantiated(Genericity genericity = kAny, @@ -8919,12 +8897,6 @@ class FunctionType : public AbstractType { private: void SetHash(intptr_t value) const; - void set_type_state(uint8_t state) const; - void set_nullability(Nullability value) const { - ASSERT(!IsCanonical()); - StoreNonPointer(&untag()->nullability_, static_cast(value)); - } - static FunctionTypePtr New(Heap::Space space); FINAL_HEAP_OBJECT_IMPLEMENTATION(FunctionType, AbstractType); @@ -8938,26 +8910,8 @@ class FunctionType : public AbstractType { // names of the named fields. class RecordType : public AbstractType { public: - static intptr_t type_state_offset() { - return OFFSET_OF(UntaggedRecordType, type_state_); - } static intptr_t hash_offset() { return OFFSET_OF(UntaggedRecordType, hash_); } - static intptr_t nullability_offset() { - return OFFSET_OF(UntaggedRecordType, nullability_); - } - virtual bool IsFinalized() const { - return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) || - (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated); - } - virtual void SetIsFinalized() const; - virtual bool IsBeingFinalized() const { - return untag()->type_state_ == UntaggedType::kBeingFinalized; - } - virtual void SetIsBeingFinalized() const; virtual bool HasTypeClass() const { return false; } - virtual Nullability nullability() const { - return static_cast(untag()->nullability_); - } RecordTypePtr ToNullability(Nullability value, Heap::Space space) const; virtual classid_t type_class_id() const { return kIllegalCid; } virtual bool IsInstantiated(Genericity genericity = kAny, @@ -9021,11 +8975,6 @@ class RecordType : public AbstractType { private: void SetHash(intptr_t value) const; - void set_type_state(uint8_t state) const; - void set_nullability(Nullability value) const { - ASSERT(!IsCanonical()); - StoreNonPointer(&untag()->nullability_, static_cast(value)); - } void set_field_types(const Array& value) const; void set_field_names(const Array& value) const; @@ -9046,19 +8995,6 @@ class TypeRef : public AbstractType { public: static intptr_t type_offset() { return OFFSET_OF(UntaggedTypeRef, type_); } - virtual bool IsFinalized() const { - const AbstractType& ref_type = AbstractType::Handle(type()); - return !ref_type.IsNull() && ref_type.IsFinalized(); - } - virtual bool IsBeingFinalized() const { - const AbstractType& ref_type = AbstractType::Handle(type()); - return ref_type.IsNull() || ref_type.IsBeingFinalized(); - } - virtual Nullability nullability() const { - const AbstractType& ref_type = AbstractType::Handle(type()); - ASSERT(!ref_type.IsNull()); - return ref_type.nullability(); - } virtual bool HasTypeClass() const { return (type() != AbstractType::null()) && AbstractType::Handle(type()).HasTypeClass(); @@ -9123,23 +9059,6 @@ class TypeRef : public AbstractType { // to the ObjectType. class TypeParameter : public AbstractType { public: - virtual bool IsFinalized() const { - return UntaggedTypeParameter::FinalizedBit::decode(untag()->flags_); - } - virtual void SetIsFinalized() const; - virtual bool IsBeingFinalized() const { - return UntaggedTypeParameter::BeingFinalizedBit::decode(untag()->flags_); - } - virtual void SetIsBeingFinalized() const; - static intptr_t flags_offset() { - return OFFSET_OF(UntaggedTypeParameter, flags_); - } - static intptr_t nullability_offset() { - return OFFSET_OF(UntaggedTypeParameter, nullability_); - } - virtual Nullability nullability() const { - return static_cast(untag()->nullability_); - } TypeParameterPtr ToNullability(Nullability value, Heap::Space space) const; virtual bool HasTypeClass() const { return false; } virtual classid_t type_class_id() const { return kIllegalCid; } @@ -9232,8 +9151,6 @@ class TypeParameter : public AbstractType { void set_parameterized_class(const Class& value) const; void set_name(const String& value) const; - void set_flags(uint8_t flags) const; - void set_nullability(Nullability value) const; static TypeParameterPtr New(); diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h index 9ad5d157e5d..625db6dbbb7 100644 --- a/runtime/vm/raw_object.h +++ b/runtime/vm/raw_object.h @@ -2607,26 +2607,29 @@ class UntaggedTypeParameters : public UntaggedObject { }; class UntaggedAbstractType : public UntaggedInstance { + protected: + // Accessed from generated code. + std::atomic type_test_stub_entry_point_; + // Accessed from generated code. + uint32_t flags_; + COMPRESSED_POINTER_FIELD(CodePtr, type_test_stub) + VISIT_FROM(type_test_stub) + public: enum TypeState { kAllocated, // Initial state. kBeingFinalized, // In the process of being finalized. kFinalizedInstantiated, // Instantiated type ready for use. kFinalizedUninstantiated, // Uninstantiated type ready for use. - // Adjust kTypeStateBitSize if more are added. }; - protected: - static constexpr intptr_t kTypeStateBitSize = 2; - COMPILE_ASSERT(sizeof(std::atomic) == sizeof(word)); + using NullabilityBits = BitField; + static constexpr intptr_t kNullabilityMask = NullabilityBits::mask(); - // Accessed from generated code. - std::atomic type_test_stub_entry_point_; -#if defined(DART_COMPRESSED_POINTERS) - uint32_t padding_; // Makes Windows and Posix agree on layout. -#endif - COMPRESSED_POINTER_FIELD(CodePtr, type_test_stub) - VISIT_FROM(type_test_stub) + static constexpr intptr_t kTypeStateShift = NullabilityBits::kNextBit; + static constexpr intptr_t kTypeStateBits = 2; + using TypeStateBits = + BitField; private: RAW_HEAP_OBJECT_IMPLEMENTATION(AbstractType); @@ -2636,18 +2639,29 @@ class UntaggedAbstractType : public UntaggedInstance { }; class UntaggedType : public UntaggedAbstractType { + public: + static constexpr intptr_t kTypeClassIdShift = TypeStateBits::kNextBit; + using TypeClassIdBits = BitField; + private: RAW_HEAP_OBJECT_IMPLEMENTATION(Type); COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, arguments) COMPRESSED_POINTER_FIELD(SmiPtr, hash) VISIT_TO(hash) - ClassIdTagType type_class_id_; - uint8_t type_state_; - uint8_t nullability_; CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } + ClassIdTagType type_class_id() const { + return TypeClassIdBits::decode(flags_); + } + void set_type_class_id(ClassIdTagType value) { + flags_ = TypeClassIdBits::update(value, flags_); + } + friend class compiler::target::UntaggedType; friend class CidRewriteVisitor; friend class UntaggedTypeArguments; @@ -2665,8 +2679,6 @@ class UntaggedFunctionType : public UntaggedAbstractType { VISIT_TO(hash) AtomicBitFieldContainer packed_parameter_counts_; AtomicBitFieldContainer packed_type_parameter_counts_; - uint8_t type_state_; - uint8_t nullability_; // The bit fields are public for use in kernel_to_il.cc. public: @@ -2716,8 +2728,6 @@ class UntaggedRecordType : public UntaggedAbstractType { COMPRESSED_POINTER_FIELD(ArrayPtr, field_names); COMPRESSED_POINTER_FIELD(SmiPtr, hash) VISIT_TO(hash) - uint8_t type_state_; - uint8_t nullability_; CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } }; @@ -2742,14 +2752,6 @@ class UntaggedTypeParameter : public UntaggedAbstractType { ClassIdTagType parameterized_class_id_; // Or kFunctionCid for function tp. uint8_t base_; // Number of enclosing function type parameters. uint8_t index_; // Keep size in sync with BuildTypeParameterTypeTestStub. - uint8_t flags_; - uint8_t nullability_; - - public: - using BeingFinalizedBit = BitField; - using FinalizedBit = - BitField; - static constexpr intptr_t kFlagsBitSize = FinalizedBit::kNextBit; private: CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } diff --git a/runtime/vm/raw_object_fields.cc b/runtime/vm/raw_object_fields.cc index b35eb19e30a..ef6891162d4 100644 --- a/runtime/vm/raw_object_fields.cc +++ b/runtime/vm/raw_object_fields.cc @@ -135,7 +135,6 @@ namespace dart { F(TypeArguments, nullability_) \ F(AbstractType, type_test_stub_) \ F(Type, type_test_stub_) \ - F(Type, type_class_id_) \ F(Type, arguments_) \ F(Type, hash_) \ F(FunctionType, type_test_stub_) \ diff --git a/runtime/vm/type_testing_stubs.cc b/runtime/vm/type_testing_stubs.cc index 6478449dcc6..25a88826c1d 100644 --- a/runtime/vm/type_testing_stubs.cc +++ b/runtime/vm/type_testing_stubs.cc @@ -1066,22 +1066,26 @@ void TypeTestingStubGenerator::BuildOptimizedTypeParameterArgumentValueCheck( if (strict_null_safety) { __ BranchIf(NOT_EQUAL, &check_subtype_type_class_ids); // If non-nullable Object, then the subtype must be legacy or non-nullable. - __ CompareTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( TTSInternalRegs::kSuperTypeArgumentReg, - static_cast(Nullability::kNonNullable)); + static_cast(Nullability::kNonNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(NOT_EQUAL, &is_subtype); __ Comment("Checking for legacy or non-nullable instance type argument"); compiler::Label subtype_is_type; UnwrapAbstractType(assembler, TTSInternalRegs::kSubTypeArgumentReg, TTSInternalRegs::kScratchReg, &subtype_is_type); - __ CompareFunctionTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( TTSInternalRegs::kSubTypeArgumentReg, - static_cast(Nullability::kNullable)); + static_cast(Nullability::kNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); __ Jump(&is_subtype); __ Bind(&subtype_is_type); - __ CompareTypeNullabilityWith(TTSInternalRegs::kSubTypeArgumentReg, - static_cast(Nullability::kNullable)); + __ CompareAbstractTypeNullabilityWith( + TTSInternalRegs::kSubTypeArgumentReg, + static_cast(Nullability::kNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); __ Jump(&is_subtype); } else { @@ -1107,15 +1111,17 @@ void TypeTestingStubGenerator::BuildOptimizedTypeParameterArgumentValueCheck( compiler::Label supertype_is_type; UnwrapAbstractType(assembler, TTSInternalRegs::kSuperTypeArgumentReg, TTSInternalRegs::kScratchReg, &supertype_is_type); - __ CompareFunctionTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( TTSInternalRegs::kSuperTypeArgumentReg, - static_cast(Nullability::kNonNullable)); + static_cast(Nullability::kNonNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); __ Jump(&is_subtype, compiler::Assembler::kNearJump); __ Bind(&supertype_is_type); - __ CompareTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( TTSInternalRegs::kSuperTypeArgumentReg, - static_cast(Nullability::kNonNullable)); + static_cast(Nullability::kNonNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); } @@ -1165,9 +1171,10 @@ void TypeTestingStubGenerator::BuildOptimizedTypeArgumentValueCheck( if (type.IsObjectType() || type.IsDartFunctionType()) { if (strict_null_safety && type.IsNonNullable()) { // Nullable types cannot be a subtype of a non-nullable type. - __ CompareFunctionTypeNullabilityWith( + __ CompareAbstractTypeNullabilityWith( TTSInternalRegs::kSubTypeArgumentReg, - compiler::target::Nullability::kNullable); + static_cast(Nullability::kNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); } // No further checks needed for non-nullable Object or Function. @@ -1183,8 +1190,10 @@ void TypeTestingStubGenerator::BuildOptimizedTypeArgumentValueCheck( __ Bind(&sub_is_type); if (strict_null_safety && type.IsNonNullable()) { // Nullable types cannot be a subtype of a non-nullable type in strict mode. - __ CompareTypeNullabilityWith(TTSInternalRegs::kSubTypeArgumentReg, - compiler::target::Nullability::kNullable); + __ CompareAbstractTypeNullabilityWith( + TTSInternalRegs::kSubTypeArgumentReg, + static_cast(Nullability::kNullable), + TTSInternalRegs::kScratchReg); __ BranchIf(EQUAL, check_failed); // Fall through to bottom type checks. }