diff --git a/runtime/lib/object.cc b/runtime/lib/object.cc index d0fc8e98dc7..28eead06e31 100644 --- a/runtime/lib/object.cc +++ b/runtime/lib/object.cc @@ -257,6 +257,14 @@ DEFINE_NATIVE_ENTRY(AbstractType_equality, 0, 2) { return Bool::Get(type.IsEquivalent(other, TypeEquality::kSyntactical)).ptr(); } +DEFINE_NATIVE_ENTRY(Type_getHashCode, 0, 1) { + const Type& type = Type::CheckedHandle(zone, arguments->NativeArgAt(0)); + intptr_t hash_val = type.Hash(); + ASSERT(hash_val > 0); + ASSERT(Smi::IsValid(hash_val)); + return Smi::New(hash_val); +} + DEFINE_NATIVE_ENTRY(Type_equality, 0, 2) { const Type& type = Type::CheckedHandle(zone, arguments->NativeArgAt(0)); const Instance& other = diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h index 9ac86778ac9..cf772df9cf8 100644 --- a/runtime/vm/bootstrap_natives.h +++ b/runtime/vm/bootstrap_natives.h @@ -30,6 +30,7 @@ namespace dart { V(AbstractType_getHashCode, 1) \ V(AbstractType_toString, 1) \ V(Type_equality, 2) \ + V(Type_getHashCode, 1) \ V(LibraryPrefix_isLoaded, 1) \ V(LibraryPrefix_setLoaded, 1) \ V(LibraryPrefix_loadingUnit, 1) \ diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc index 1424f8a85a7..a7b0fa985be 100644 --- a/runtime/vm/class_finalizer.cc +++ b/runtime/vm/class_finalizer.cc @@ -1076,7 +1076,10 @@ void ClassFinalizer::RemapClassIds(intptr_t* old_to_new_cid) { // // Caching of the canonical hash codes happens for: // -// * UntaggedAbstractType::hash_ +// * UntaggedType::hash_ +// * UntaggedFunctionType::hash_ +// * UntaggedRecordType::hash_ +// * UntaggedTypeParameter::hash_ // * UntaggedTypeArguments::hash_ // * InstancePtr (weak table) // * ArrayPtr (weak table) @@ -1093,13 +1096,25 @@ void ClassFinalizer::RemapClassIds(intptr_t* old_to_new_cid) { class ClearTypeHashVisitor : public ObjectVisitor { public: explicit ClearTypeHashVisitor(Zone* zone) - : type_(AbstractType::Handle(zone)), + : type_param_(TypeParameter::Handle(zone)), + type_(Type::Handle(zone)), + function_type_(FunctionType::Handle(zone)), + record_type_(RecordType::Handle(zone)), type_args_(TypeArguments::Handle(zone)) {} void VisitObject(ObjectPtr obj) override { - if (obj->IsAbstractType()) { + if (obj->IsTypeParameter()) { + type_param_ ^= obj; + type_param_.SetHash(0); + } else if (obj->IsType()) { type_ ^= obj; type_.SetHash(0); + } else if (obj->IsFunctionType()) { + function_type_ ^= obj; + function_type_.SetHash(0); + } else if (obj->IsRecordType()) { + record_type_ ^= obj; + record_type_.SetHash(0); } else if (obj->IsTypeArguments()) { type_args_ ^= obj; type_args_.SetHash(0); @@ -1107,7 +1122,10 @@ class ClearTypeHashVisitor : public ObjectVisitor { } private: - AbstractType& type_; + TypeParameter& type_param_; + Type& type_; + FunctionType& function_type_; + RecordType& record_type_; TypeArguments& type_args_; }; diff --git a/runtime/vm/compiler/asm_intrinsifier_arm.cc b/runtime/vm/compiler/asm_intrinsifier_arm.cc index 3a4839c1cc2..81b4c7a5ac1 100644 --- a/runtime/vm/compiler/asm_intrinsifier_arm.cc +++ b/runtime/vm/compiler/asm_intrinsifier_arm.cc @@ -1199,6 +1199,15 @@ void AsmIntrinsifier::String_getHashCode(Assembler* assembler, __ Bind(normal_ir_body); // Hash not yet computed. } +void AsmIntrinsifier::Type_getHashCode(Assembler* assembler, + Label* normal_ir_body) { + __ ldr(R0, Address(SP, 0 * target::kWordSize)); + __ ldr(R0, FieldAddress(R0, target::Type::hash_offset())); + __ cmp(R0, Operand(0)); + READS_RETURN_ADDRESS_FROM_LR(__ bx(LR, NE)); + __ Bind(normal_ir_body); // Hash not yet computed. +} + void AsmIntrinsifier::Type_equality(Assembler* assembler, Label* normal_ir_body) { Label equal, not_equal, equiv_cids_may_be_generic, equiv_cids, check_legacy; @@ -1262,7 +1271,7 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, void AsmIntrinsifier::AbstractType_getHashCode(Assembler* assembler, Label* normal_ir_body) { __ ldr(R0, Address(SP, 0 * target::kWordSize)); - __ ldr(R0, FieldAddress(R0, target::AbstractType::hash_offset())); + __ ldr(R0, FieldAddress(R0, target::FunctionType::hash_offset())); __ cmp(R0, Operand(0)); READS_RETURN_ADDRESS_FROM_LR(__ bx(LR, NE)); __ Bind(normal_ir_body); // Hash not yet computed. diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc index ae4746fec98..aef8a166457 100644 --- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc +++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc @@ -1359,6 +1359,16 @@ void AsmIntrinsifier::String_getHashCode(Assembler* assembler, __ Bind(normal_ir_body); } +void AsmIntrinsifier::Type_getHashCode(Assembler* assembler, + Label* normal_ir_body) { + __ ldr(R0, Address(SP, 0 * target::kWordSize)); + __ LoadCompressedSmi(R0, FieldAddress(R0, target::Type::hash_offset())); + __ cbz(normal_ir_body, R0, kObjectBytes); + __ ret(); + // Hash not yet computed. + __ Bind(normal_ir_body); +} + void AsmIntrinsifier::Type_equality(Assembler* assembler, Label* normal_ir_body) { Label equal, not_equal, equiv_cids_may_be_generic, equiv_cids, check_legacy; @@ -1423,7 +1433,7 @@ void AsmIntrinsifier::AbstractType_getHashCode(Assembler* assembler, Label* normal_ir_body) { __ ldr(R0, Address(SP, 0 * target::kWordSize)); __ LoadCompressedSmi(R0, - FieldAddress(R0, target::AbstractType::hash_offset())); + FieldAddress(R0, target::FunctionType::hash_offset())); __ cbz(normal_ir_body, R0, kObjectBytes); __ ret(); // Hash not yet computed. diff --git a/runtime/vm/compiler/asm_intrinsifier_ia32.cc b/runtime/vm/compiler/asm_intrinsifier_ia32.cc index 448833b52e7..740501fdcdb 100644 --- a/runtime/vm/compiler/asm_intrinsifier_ia32.cc +++ b/runtime/vm/compiler/asm_intrinsifier_ia32.cc @@ -1342,6 +1342,17 @@ void AsmIntrinsifier::String_getHashCode(Assembler* assembler, // Hash not yet computed. } +void AsmIntrinsifier::Type_getHashCode(Assembler* assembler, + Label* normal_ir_body) { + __ movl(EAX, Address(ESP, +1 * target::kWordSize)); // Type object. + __ movl(EAX, FieldAddress(EAX, target::Type::hash_offset())); + __ testl(EAX, EAX); + __ j(EQUAL, normal_ir_body, Assembler::kNearJump); + __ ret(); + __ Bind(normal_ir_body); + // Hash not yet computed. +} + void AsmIntrinsifier::Type_equality(Assembler* assembler, Label* normal_ir_body) { Label equal, not_equal, equiv_cids_may_be_generic, equiv_cids, check_legacy; @@ -1405,8 +1416,8 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, void AsmIntrinsifier::AbstractType_getHashCode(Assembler* assembler, Label* normal_ir_body) { - __ movl(EAX, Address(ESP, +1 * target::kWordSize)); // AbstractType object. - __ movl(EAX, FieldAddress(EAX, target::AbstractType::hash_offset())); + __ movl(EAX, Address(ESP, +1 * target::kWordSize)); // FunctionType object. + __ movl(EAX, FieldAddress(EAX, target::FunctionType::hash_offset())); __ testl(EAX, EAX); __ j(EQUAL, normal_ir_body, Assembler::kNearJump); __ ret(); diff --git a/runtime/vm/compiler/asm_intrinsifier_riscv.cc b/runtime/vm/compiler/asm_intrinsifier_riscv.cc index 02745cdf7a4..5dba40c0d45 100644 --- a/runtime/vm/compiler/asm_intrinsifier_riscv.cc +++ b/runtime/vm/compiler/asm_intrinsifier_riscv.cc @@ -1396,6 +1396,16 @@ void AsmIntrinsifier::String_getHashCode(Assembler* assembler, __ Bind(normal_ir_body); } +void AsmIntrinsifier::Type_getHashCode(Assembler* assembler, + Label* normal_ir_body) { + __ lx(A0, Address(SP, 0 * target::kWordSize)); + __ LoadCompressed(A0, FieldAddress(A0, target::Type::hash_offset())); + __ beqz(A0, normal_ir_body, Assembler::kNearJump); + __ ret(); + // Hash not yet computed. + __ Bind(normal_ir_body); +} + void AsmIntrinsifier::Type_equality(Assembler* assembler, Label* normal_ir_body) { Label equal, not_equal, equiv_cids_may_be_generic, equiv_cids, check_legacy; @@ -1458,7 +1468,7 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, void AsmIntrinsifier::AbstractType_getHashCode(Assembler* assembler, Label* normal_ir_body) { __ lx(A0, Address(SP, 0 * target::kWordSize)); - __ LoadCompressed(A0, FieldAddress(A0, target::AbstractType::hash_offset())); + __ LoadCompressed(A0, FieldAddress(A0, target::FunctionType::hash_offset())); __ beqz(A0, normal_ir_body, Assembler::kNearJump); __ ret(); // Hash not yet computed. diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc index c1ed50d1360..51c2a6c370a 100644 --- a/runtime/vm/compiler/asm_intrinsifier_x64.cc +++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc @@ -1248,6 +1248,19 @@ void AsmIntrinsifier::String_getHashCode(Assembler* assembler, // Hash not yet computed. } +void AsmIntrinsifier::Type_getHashCode(Assembler* assembler, + Label* normal_ir_body) { + __ movq(RAX, Address(RSP, +1 * target::kWordSize)); // Type object. + __ LoadCompressedSmi(RAX, FieldAddress(RAX, target::Type::hash_offset())); + ASSERT(kSmiTag == 0); + ASSERT(kSmiTagShift == 1); + __ OBJ(test)(RAX, RAX); + __ j(ZERO, normal_ir_body, Assembler::kNearJump); + __ ret(); + __ Bind(normal_ir_body); + // Hash not yet computed. +} + void AsmIntrinsifier::Type_equality(Assembler* assembler, Label* normal_ir_body) { Label equal, not_equal, equiv_cids_may_be_generic, equiv_cids, check_legacy; @@ -1311,9 +1324,9 @@ void AsmIntrinsifier::Type_equality(Assembler* assembler, void AsmIntrinsifier::AbstractType_getHashCode(Assembler* assembler, Label* normal_ir_body) { - __ movq(RAX, Address(RSP, +1 * target::kWordSize)); // AbstractType object. + __ movq(RAX, Address(RSP, +1 * target::kWordSize)); // FunctionType object. __ LoadCompressedSmi(RAX, - FieldAddress(RAX, target::AbstractType::hash_offset())); + FieldAddress(RAX, target::FunctionType::hash_offset())); ASSERT(kSmiTag == 0); ASSERT(kSmiTagShift == 1); __ OBJ(test)(RAX, RAX); diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h index 0a409f2f88e..96cdec61271 100644 --- a/runtime/vm/compiler/recognized_methods_list.h +++ b/runtime/vm/compiler/recognized_methods_list.h @@ -374,6 +374,7 @@ namespace dart { V(_TwoByteString, ==, TwoByteString_equality, 0x4ea9ddc9) \ V(_AbstractType, get:hashCode, AbstractType_getHashCode, 0x75e0d454) \ V(_AbstractType, ==, AbstractType_equality, 0x465868ae) \ + V(_Type, get:hashCode, Type_getHashCode, 0x75e0d454) \ V(_Type, ==, Type_equality, 0x465868ae) \ V(::, _getHash, Object_getHash, 0xc60ff758) \ diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h index 0f45b7ff6ce..e7e16f62c12 100644 --- a/runtime/vm/compiler/runtime_api.h +++ b/runtime/vm/compiler/runtime_api.h @@ -717,7 +717,6 @@ class Pointer : public AllStatic { class AbstractType : public AllStatic { public: static word flags_offset(); - static word hash_offset(); static word type_test_stub_entry_point_offset(); static word InstanceSize(); FINAL_CLASS(); @@ -725,6 +724,7 @@ class AbstractType : public AllStatic { class Type : public AllStatic { public: + static word hash_offset(); static word arguments_offset(); static word InstanceSize(); FINAL_CLASS(); @@ -732,6 +732,7 @@ class Type : public AllStatic { class FunctionType : public AllStatic { public: + static word hash_offset(); static word packed_parameter_counts_offset(); static word packed_type_parameter_counts_offset(); static word named_parameter_names_offset(); diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h index 065ddd358b2..c3808961f0f 100644 --- a/runtime/vm/compiler/runtime_offsets_extracted.h +++ b/runtime/vm/compiler/runtime_offsets_extracted.h @@ -113,7 +113,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -544,7 +543,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -567,16 +567,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -617,7 +618,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x2e8, 0x2ec, 0x2f0, 0x2f4, 0x2f8, -1, 0x2fc, -1, 0x300, 0x304, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -820,7 +821,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -1252,7 +1252,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -1276,16 +1277,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -1329,7 +1331,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x5d0, 0x5d8, 0x5e0, 0x5e8, -1, -1, 0x5f0, 0x5f8, 0x600, 0x608, 0x610, -1, 0x618, 0x620, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -1529,7 +1531,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -1960,7 +1961,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -1983,16 +1985,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -2032,7 +2035,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x2e8, 0x2ec, 0x2f0, 0x2f4, -1, -1, -1, 0x2f8}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -2235,7 +2238,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -2667,7 +2669,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -2691,16 +2694,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -2746,7 +2750,7 @@ static constexpr dart::compiler::target::word 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, 0x640, -1, -1, -1, -1, 0x648, 0x650, -1, -1, 0x658, 0x660, 0x668, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -2947,7 +2951,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x18; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -3380,7 +3383,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x20; @@ -3404,16 +3408,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x28; + FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x24; + FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x1c; + FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x10; static constexpr dart::compiler::target::word @@ -3455,7 +3460,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x5d8, 0x5e0, 0x5e8, 0x5f0, -1, -1, 0x5f8, 0x600, 0x608, 0x610, 0x618, -1, 0x620, 0x628, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x18; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x10; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -3656,7 +3661,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x18; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -4089,7 +4093,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x20; @@ -4113,16 +4118,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x28; + FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x24; + FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x1c; + FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x10; static constexpr dart::compiler::target::word @@ -4166,7 +4172,7 @@ static constexpr dart::compiler::target::word 0x618, 0x620, 0x628, 0x630, 0x638, 0x640, 0x648, -1, -1, -1, -1, 0x650, 0x658, -1, -1, 0x660, 0x668, 0x670, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x18; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x10; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -4366,7 +4372,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -4797,7 +4802,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -4820,16 +4826,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -4871,7 +4878,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 0x2e8, 0x2ec, 0x2f0, -1, -1, 0x2f4, 0x2f8, 0x2fc, -1, -1, -1, 0x300, 0x304, 0x308, 0x30c, 0x310, 0x314, 0x318, 0x31c, -1, -1, -1, -1, 0x320, 0x324, 0x328, 0x32c}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -5074,7 +5081,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -5506,7 +5512,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -5530,16 +5537,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -5584,7 +5592,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 0x5d0, 0x5d8, 0x5e0, -1, -1, 0x5e8, 0x5f0, 0x5f8, -1, -1, -1, 0x600, 0x608, 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, -1, -1, -1, -1, 0x640, 0x648, 0x650, 0x658}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -5783,7 +5791,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -6209,7 +6216,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -6232,16 +6240,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -6282,7 +6291,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x2e8, 0x2ec, 0x2f0, 0x2f4, 0x2f8, -1, 0x2fc, -1, 0x300, 0x304, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -6482,7 +6491,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -6909,7 +6917,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -6933,16 +6942,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -6986,7 +6996,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x5d0, 0x5d8, 0x5e0, 0x5e8, -1, -1, 0x5f0, 0x5f8, 0x600, 0x608, 0x610, -1, 0x618, 0x620, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -7183,7 +7193,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -7609,7 +7618,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -7632,16 +7642,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -7681,7 +7692,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x2e8, 0x2ec, 0x2f0, 0x2f4, -1, -1, -1, 0x2f8}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -7881,7 +7892,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -8308,7 +8318,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -8332,16 +8343,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -8387,7 +8399,7 @@ static constexpr dart::compiler::target::word 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, 0x640, -1, -1, -1, -1, 0x648, 0x650, -1, -1, 0x658, 0x660, 0x668, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -8585,7 +8597,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x18; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -9013,7 +9024,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x20; @@ -9037,16 +9049,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x28; + FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x24; + FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x1c; + FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x10; static constexpr dart::compiler::target::word @@ -9088,7 +9101,7 @@ static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { 0x5d8, 0x5e0, 0x5e8, 0x5f0, -1, -1, 0x5f8, 0x600, 0x608, 0x610, 0x618, -1, 0x620, 0x628, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x18; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x10; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -9286,7 +9299,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x18; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -9714,7 +9726,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x20; @@ -9738,16 +9751,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x28; + FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x24; + FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x1c; + FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x10; static constexpr dart::compiler::target::word @@ -9791,7 +9805,7 @@ static constexpr dart::compiler::target::word 0x618, 0x620, 0x628, 0x630, 0x638, 0x640, 0x648, -1, -1, -1, -1, 0x650, 0x658, -1, -1, 0x660, 0x668, 0x670, -1, -1, -1, -1, -1, -1}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x18; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x10; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -9988,7 +10002,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x10; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -10414,7 +10427,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word Type_hash_offset = 0x14; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x14; @@ -10437,16 +10451,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = 0xc; static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x20; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x20; + FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x1c; + FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x14; + FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0xc; static constexpr dart::compiler::target::word @@ -10488,7 +10503,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 0x2e8, 0x2ec, 0x2f0, -1, -1, 0x2f4, 0x2f8, 0x2fc, -1, -1, -1, 0x300, 0x304, 0x308, 0x30c, 0x310, 0x314, 0x318, 0x31c, -1, -1, -1, -1, 0x320, 0x324, 0x328, 0x32c}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x14; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x10; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word Array_header_size = 0xc; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x8; @@ -10688,7 +10703,6 @@ static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = static constexpr dart::compiler::target::word TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AbstractType_hash_offset = 0x20; static constexpr dart::compiler::target::word AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset = @@ -11115,7 +11129,8 @@ static constexpr dart::compiler::target::word TsanUtils_exception_fp_offset = static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word Type_hash_offset = 0x28; static constexpr dart::compiler::target::word Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word Finalizer_callback_offset = 0x28; @@ -11139,16 +11154,17 @@ static constexpr dart::compiler::target::word FinalizerEntry_token_offset = static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word FunctionType_hash_offset = 0x40; static constexpr dart::compiler::target::word - FunctionType_named_parameter_names_offset = 0x40; + FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - FunctionType_parameter_types_offset = 0x38; + FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - FunctionType_type_parameters_offset = 0x28; + FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word TypeArguments_hash_offset = 0x18; static constexpr dart::compiler::target::word @@ -11193,7 +11209,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, -1, -1, 0x5d0, 0x5d8, 0x5e0, -1, -1, 0x5e8, 0x5f0, 0x5f8, -1, -1, -1, 0x600, 0x608, 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, -1, -1, -1, -1, 0x640, 0x648, 0x650, 0x658}; -static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x28; +static constexpr dart::compiler::target::word AbstractType_InstanceSize = 0x20; static constexpr dart::compiler::target::word ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word Array_header_size = 0x18; static constexpr dart::compiler::target::word Bool_InstanceSize = 0x10; @@ -11401,8 +11417,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x10; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word @@ -11870,7 +11884,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x14; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -11897,16 +11912,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x20; + AOT_FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x1c; + AOT_FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x14; + AOT_FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -11958,7 +11975,7 @@ static constexpr dart::compiler::target::word 0x2e8, 0x2ec, 0x2f0, 0x2f4, 0x2f8, -1, 0x2fc, -1, 0x300, 0x304, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x14; + 0x10; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_Array_header_size = 0xc; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x8; @@ -12184,8 +12201,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -12653,7 +12668,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -12680,16 +12696,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -12741,7 +12759,7 @@ static constexpr dart::compiler::target::word 0x5d0, 0x5d8, 0x5e0, 0x5e8, -1, -1, 0x5f0, 0x5f8, 0x600, 0x608, 0x610, -1, 0x618, 0x620, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -12970,8 +12988,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -13439,7 +13455,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -13466,16 +13483,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -13529,7 +13548,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, 0x648, 0x650, -1, -1, 0x658, 0x660, 0x668, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -13755,8 +13774,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x18; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -14226,7 +14243,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -14253,16 +14271,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x28; + AOT_FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x24; + AOT_FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x1c; + AOT_FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -14314,7 +14334,7 @@ static constexpr dart::compiler::target::word 0x5d8, 0x5e0, 0x5e8, 0x5f0, -1, -1, 0x5f8, 0x600, 0x608, 0x610, 0x618, -1, 0x620, 0x628, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x20; + 0x18; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x10; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -14540,8 +14560,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x18; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -15011,7 +15029,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -15038,16 +15057,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x28; + AOT_FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x24; + AOT_FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x1c; + AOT_FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -15101,7 +15122,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, 0x650, 0x658, -1, -1, 0x660, 0x668, 0x670, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x20; + 0x18; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x10; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -15327,8 +15348,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x10; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word @@ -15796,7 +15815,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x14; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -15823,16 +15843,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x20; + AOT_FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x1c; + AOT_FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x14; + AOT_FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -15885,7 +15907,7 @@ static constexpr dart::compiler::target::word 0x2f8, 0x2fc, -1, -1, -1, 0x300, 0x304, 0x308, 0x30c, 0x310, 0x314, 0x318, 0x31c, -1, -1, -1, -1, 0x320, 0x324, 0x328, 0x32c}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x14; + 0x10; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_Array_header_size = 0xc; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x8; @@ -16111,8 +16133,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -16580,7 +16600,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -16607,16 +16628,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -16669,7 +16692,7 @@ static constexpr dart::compiler::target::word 0x5f0, 0x5f8, -1, -1, -1, 0x600, 0x608, 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, -1, -1, -1, -1, 0x640, 0x648, 0x650, 0x658}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -16894,8 +16917,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x10; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word @@ -17357,7 +17378,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x14; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -17384,16 +17406,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x20; + AOT_FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x1c; + AOT_FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x14; + AOT_FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -17445,7 +17469,7 @@ static constexpr dart::compiler::target::word 0x2e8, 0x2ec, 0x2f0, 0x2f4, 0x2f8, -1, 0x2fc, -1, 0x300, 0x304, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x14; + 0x10; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_Array_header_size = 0xc; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x8; @@ -17668,8 +17692,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -18131,7 +18153,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -18158,16 +18181,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -18219,7 +18244,7 @@ static constexpr dart::compiler::target::word 0x5d0, 0x5d8, 0x5e0, 0x5e8, -1, -1, 0x5f0, 0x5f8, 0x600, 0x608, 0x610, -1, 0x618, 0x620, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -18445,8 +18470,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -18908,7 +18931,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -18935,16 +18959,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -18998,7 +19024,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, 0x648, 0x650, -1, -1, 0x658, 0x660, 0x668, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -19221,8 +19247,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x18; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -19686,7 +19710,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -19713,16 +19738,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x28; + AOT_FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x24; + AOT_FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x1c; + AOT_FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -19774,7 +19801,7 @@ static constexpr dart::compiler::target::word 0x5d8, 0x5e0, 0x5e8, 0x5f0, -1, -1, 0x5f8, 0x600, 0x608, 0x610, 0x618, -1, 0x620, 0x628, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x20; + 0x18; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x10; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -19997,8 +20024,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x18; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -20462,7 +20487,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x1c; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x18; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x1c; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x24; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -20489,16 +20515,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x20; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x28; + AOT_FunctionType_named_parameter_names_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x2c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x24; + AOT_FunctionType_parameter_types_offset = 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x1c; + AOT_FunctionType_type_parameters_offset = 0x18; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x22; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -20552,7 +20580,7 @@ static constexpr dart::compiler::target::word -1, -1, -1, 0x650, 0x658, -1, -1, 0x660, 0x668, 0x670, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x20; + 0x18; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x10; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; @@ -20775,8 +20803,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0xfffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x8; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x10; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x4; static constexpr dart::compiler::target::word @@ -21238,7 +21264,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0xc; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x14; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x10; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x14; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x18; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -21265,16 +21292,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x4; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x14; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x20; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x20; + AOT_FunctionType_named_parameter_names_offset = 0x1c; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x24; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x28; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x1c; + AOT_FunctionType_parameter_types_offset = 0x18; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x14; + AOT_FunctionType_type_parameters_offset = 0x10; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x1a; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -21327,7 +21356,7 @@ static constexpr dart::compiler::target::word 0x2f8, 0x2fc, -1, -1, -1, 0x300, 0x304, 0x308, 0x30c, 0x310, 0x314, 0x318, 0x31c, -1, -1, -1, -1, 0x320, 0x324, 0x328, 0x32c}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x14; + 0x10; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x8; static constexpr dart::compiler::target::word AOT_Array_header_size = 0xc; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x8; @@ -21550,8 +21579,6 @@ static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements = 0x7ffffffffffffff; static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 0x10; -static constexpr dart::compiler::target::word AOT_AbstractType_hash_offset = - 0x20; static constexpr dart::compiler::target::word AOT_AbstractType_type_test_stub_entry_point_offset = 0x8; static constexpr dart::compiler::target::word @@ -22013,7 +22040,8 @@ static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 0x10; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = 0x10; -static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x28; +static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 0x20; +static constexpr dart::compiler::target::word AOT_Type_hash_offset = 0x28; static constexpr dart::compiler::target::word AOT_Finalizer_type_arguments_offset = 0x30; static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset = @@ -22040,16 +22068,18 @@ static constexpr dart::compiler::target::word AOT_FinalizerEntry_value_offset = 0x8; static constexpr dart::compiler::target::word AOT_NativeFinalizer_callback_offset = 0x28; +static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = + 0x40; static constexpr dart::compiler::target::word - AOT_FunctionType_named_parameter_names_offset = 0x40; + AOT_FunctionType_named_parameter_names_offset = 0x38; static constexpr dart::compiler::target::word AOT_FunctionType_packed_parameter_counts_offset = 0x48; static constexpr dart::compiler::target::word AOT_FunctionType_packed_type_parameter_counts_offset = 0x4c; static constexpr dart::compiler::target::word - AOT_FunctionType_parameter_types_offset = 0x38; + AOT_FunctionType_parameter_types_offset = 0x30; static constexpr dart::compiler::target::word - AOT_FunctionType_type_parameters_offset = 0x28; + AOT_FunctionType_type_parameters_offset = 0x20; static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset = 0x32; static constexpr dart::compiler::target::word AOT_TypeArguments_hash_offset = @@ -22102,7 +22132,7 @@ static constexpr dart::compiler::target::word 0x5f0, 0x5f8, -1, -1, -1, 0x600, 0x608, 0x610, 0x618, 0x620, 0x628, 0x630, 0x638, -1, -1, -1, -1, 0x640, 0x648, 0x650, 0x658}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = - 0x28; + 0x20; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 0x10; static constexpr dart::compiler::target::word AOT_Array_header_size = 0x18; static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 0x10; diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h index b5b3a741fdc..b62ddbde9a2 100644 --- a/runtime/vm/compiler/runtime_offsets_list.h +++ b/runtime/vm/compiler/runtime_offsets_list.h @@ -103,7 +103,6 @@ CONSTANT(SubtypeTestCache, kTestResult) \ CONSTANT(TypeArguments, kMaxElements) \ FIELD(AbstractType, flags_offset) \ - FIELD(AbstractType, hash_offset) \ FIELD(AbstractType, type_test_stub_entry_point_offset) \ FIELD(ArgumentsDescriptor, count_offset) \ FIELD(ArgumentsDescriptor, size_offset) \ @@ -355,6 +354,7 @@ FIELD(TimelineStream, enabled_offset) \ FIELD(TwoByteString, data_offset) \ FIELD(Type, arguments_offset) \ + FIELD(Type, hash_offset) \ FIELD(Finalizer, type_arguments_offset) \ FIELD(Finalizer, callback_offset) \ FIELD(FinalizerBase, all_entries_offset) \ @@ -368,6 +368,7 @@ FIELD(FinalizerEntry, token_offset) \ FIELD(FinalizerEntry, value_offset) \ FIELD(NativeFinalizer, callback_offset) \ + FIELD(FunctionType, hash_offset) \ FIELD(FunctionType, named_parameter_names_offset) \ FIELD(FunctionType, packed_parameter_counts_offset) \ FIELD(FunctionType, packed_type_parameter_counts_offset) \ diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index 99c2cab9b97..eb22d0be8cb 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc @@ -21601,7 +21601,10 @@ bool AbstractType::IsSubtypeOfFutureOr( return false; } -uword AbstractType::ComputeHash() const { +uword AbstractType::Hash() const { + // All subclasses should implement this appropriately, so the only value that + // should reach this implementation should be the null value. + ASSERT(IsNull()); // AbstractType is an abstract class. UNREACHABLE(); return 0; diff --git a/runtime/vm/object.h b/runtime/vm/object.h index 8fe8e8cea2a..ca882cf0aa0 100644 --- a/runtime/vm/object.h +++ b/runtime/vm/object.h @@ -8528,9 +8528,6 @@ class AbstractType : public Instance { static intptr_t flags_offset() { return OFFSET_OF(UntaggedAbstractType, flags_); } - static intptr_t hash_offset() { - return OFFSET_OF(UntaggedAbstractType, hash_); - } bool IsFinalized() const { const auto state = type_state(); @@ -8666,8 +8663,7 @@ class AbstractType : public Instance { // list and mark ambiguous triplets to be printed. virtual void EnumerateURIs(URIs* uris) const; - uword Hash() const; - virtual uword ComputeHash() const; + virtual uword Hash() const; // The name of this type's class, i.e. without the type argument names of this // type. @@ -8841,8 +8837,6 @@ class AbstractType : public Instance { const AbstractType& other_type, TypeEquality kind) const; - void SetHash(intptr_t value) const; - UntaggedAbstractType::TypeState type_state() const { return static_cast( UntaggedAbstractType::TypeStateBits::decode(untag()->flags())); @@ -8853,7 +8847,6 @@ class AbstractType : public Instance { HEAP_OBJECT_IMPLEMENTATION(AbstractType, Instance); friend class Class; - friend class ClearTypeHashVisitor; friend class Function; friend class TypeArguments; }; @@ -8865,6 +8858,7 @@ class Type : public AbstractType { static intptr_t arguments_offset() { return OFFSET_OF(UntaggedType, arguments_); } + static intptr_t hash_offset() { return OFFSET_OF(UntaggedType, hash_); } virtual bool HasTypeClass() const { ASSERT(type_class_id() != kIllegalCid); return true; @@ -8917,7 +8911,8 @@ class Type : public AbstractType { virtual void PrintName(NameVisibility visibility, BaseTextBuffer* printer) const; - virtual uword ComputeHash() const; + virtual uword Hash() const; + uword ComputeHash() const; static intptr_t InstanceSize() { return RoundedAllocationSize(sizeof(UntaggedType)); @@ -8992,6 +8987,8 @@ class Type : public AbstractType { Heap::Space space = Heap::kOld); private: + void SetHash(intptr_t value) const; + // Takes an intptr_t since the cids of some classes are larger than will fit // in ClassIdTagType. This allows us to guard against that case, instead of // silently truncating the cid. @@ -9002,6 +8999,7 @@ class Type : public AbstractType { FINAL_HEAP_OBJECT_IMPLEMENTATION(Type, AbstractType); friend class Class; friend class TypeArguments; + friend class ClearTypeHashVisitor; }; // A FunctionType represents the type of a function. It describes most of the @@ -9022,6 +9020,9 @@ class FunctionType : public AbstractType { using PackedNumOptionalParameters = UntaggedFunctionType::PackedNumOptionalParameters; + static intptr_t hash_offset() { + return OFFSET_OF(UntaggedFunctionType, hash_); + } virtual bool HasTypeClass() const { return false; } FunctionTypePtr ToNullability(Nullability value, Heap::Space space) const; virtual classid_t type_class_id() const { return kIllegalCid; } @@ -9057,7 +9058,8 @@ class FunctionType : public AbstractType { virtual void PrintName(NameVisibility visibility, BaseTextBuffer* printer) const; - virtual uword ComputeHash() const; + virtual uword Hash() const; + uword ComputeHash() const; bool IsSubtypeOf( const FunctionType& other, @@ -9286,10 +9288,13 @@ class FunctionType : public AbstractType { static FunctionTypePtr Clone(const FunctionType& orig, Heap::Space space); private: + void SetHash(intptr_t value) const; + static FunctionTypePtr New(Heap::Space space); FINAL_HEAP_OBJECT_IMPLEMENTATION(FunctionType, AbstractType); friend class Class; + friend class ClearTypeHashVisitor; friend class Function; }; @@ -9363,6 +9368,8 @@ class TypeParameter : public AbstractType { virtual void PrintName(NameVisibility visibility, BaseTextBuffer* printer) const; + virtual uword Hash() const; + // Returns type corresponding to [this] type parameter from the // given [instantiator_type_arguments] and [function_type_arguments]. // Unlike InstantiateFrom, nullability of type parameter is not applied to @@ -9391,7 +9398,8 @@ class TypeParameter : public AbstractType { Nullability nullability); private: - virtual uword ComputeHash() const; + uword ComputeHash() const; + void SetHash(intptr_t value) const; void set_owner(const Object& value) const; @@ -9399,6 +9407,7 @@ class TypeParameter : public AbstractType { FINAL_HEAP_OBJECT_IMPLEMENTATION(TypeParameter, AbstractType); friend class Class; + friend class ClearTypeHashVisitor; }; class Number : public Instance { @@ -11037,6 +11046,7 @@ class RecordShape { // names of the named fields. class RecordType : public AbstractType { public: + static intptr_t hash_offset() { return OFFSET_OF(UntaggedRecordType, hash_); } virtual bool HasTypeClass() const { return false; } RecordTypePtr ToNullability(Nullability value, Heap::Space space) const; virtual classid_t type_class_id() const { return kIllegalCid; } @@ -11072,7 +11082,8 @@ class RecordType : public AbstractType { virtual void PrintName(NameVisibility visibility, BaseTextBuffer* printer) const; - virtual uword ComputeHash() const; + virtual uword Hash() const; + uword ComputeHash() const; bool IsSubtypeOf( const RecordType& other, @@ -11103,6 +11114,8 @@ class RecordType : public AbstractType { Heap::Space space = Heap::kOld); private: + void SetHash(intptr_t value) const; + void set_shape(RecordShape shape) const; void set_field_types(const Array& value) const; @@ -11111,6 +11124,7 @@ class RecordType : public AbstractType { FINAL_HEAP_OBJECT_IMPLEMENTATION(RecordType, AbstractType); friend class Class; friend class ClassFinalizer; + friend class ClearTypeHashVisitor; friend class Record; }; @@ -13039,7 +13053,7 @@ ObjectPtr MegamorphicCache::GetTargetFunction(const Array& array, return array.At((index * kEntryLength) + kTargetFunctionIndex); } -inline uword AbstractType::Hash() const { +inline uword Type::Hash() const { ASSERT(IsFinalized()); intptr_t result = Smi::Value(untag()->hash()); if (result != 0) { @@ -13048,7 +13062,37 @@ inline uword AbstractType::Hash() const { return ComputeHash(); } -inline void AbstractType::SetHash(intptr_t value) const { +inline void Type::SetHash(intptr_t value) const { + // This is only safe because we create a new Smi, which does not cause + // heap allocation. + untag()->set_hash(Smi::New(value)); +} + +inline uword FunctionType::Hash() const { + ASSERT(IsFinalized()); + intptr_t result = Smi::Value(untag()->hash()); + if (result != 0) { + return result; + } + return ComputeHash(); +} + +inline void FunctionType::SetHash(intptr_t value) const { + // This is only safe because we create a new Smi, which does not cause + // heap allocation. + untag()->set_hash(Smi::New(value)); +} + +inline uword RecordType::Hash() const { + ASSERT(IsFinalized()); + intptr_t result = Smi::Value(untag()->hash()); + if (result != 0) { + return result; + } + return ComputeHash(); +} + +inline void RecordType::SetHash(intptr_t value) const { // This is only safe because we create a new Smi, which does not cause // heap allocation. untag()->set_hash(Smi::New(value)); @@ -13058,6 +13102,21 @@ inline intptr_t RecordType::NumFields() const { return Array::LengthOf(field_types()); } +inline uword TypeParameter::Hash() const { + ASSERT(IsFinalized()); + intptr_t result = Smi::Value(untag()->hash()); + if (result != 0) { + return result; + } + return ComputeHash(); +} + +inline void TypeParameter::SetHash(intptr_t value) const { + // This is only safe because we create a new Smi, which does not cause + // heap allocation. + untag()->set_hash(Smi::New(value)); +} + inline uword TypeArguments::Hash() const { if (IsNull()) return kAllDynamicHash; intptr_t result = Smi::Value(untag()->hash()); diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h index e8a22ff7d0f..6afa8d2d658 100644 --- a/runtime/vm/raw_object.h +++ b/runtime/vm/raw_object.h @@ -2643,7 +2643,6 @@ class UntaggedAbstractType : public UntaggedInstance { // Accessed from generated code. std::atomic flags_; COMPRESSED_POINTER_FIELD(CodePtr, type_test_stub) - COMPRESSED_POINTER_FIELD(SmiPtr, hash) VISIT_FROM(type_test_stub) uint32_t flags() const { return flags_.load(std::memory_order_relaxed); } @@ -2683,7 +2682,8 @@ class UntaggedType : public UntaggedAbstractType { RAW_HEAP_OBJECT_IMPLEMENTATION(Type); COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, arguments) - VISIT_TO(arguments) + COMPRESSED_POINTER_FIELD(SmiPtr, hash) + VISIT_TO(hash) CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } @@ -2707,7 +2707,8 @@ class UntaggedFunctionType : public UntaggedAbstractType { COMPRESSED_POINTER_FIELD(AbstractTypePtr, result_type) COMPRESSED_POINTER_FIELD(ArrayPtr, parameter_types) COMPRESSED_POINTER_FIELD(ArrayPtr, named_parameter_names); - VISIT_TO(named_parameter_names) + COMPRESSED_POINTER_FIELD(SmiPtr, hash) + VISIT_TO(hash) AtomicBitFieldContainer packed_parameter_counts_; AtomicBitFieldContainer packed_type_parameter_counts_; @@ -2757,7 +2758,8 @@ class UntaggedRecordType : public UntaggedAbstractType { COMPRESSED_SMI_FIELD(SmiPtr, shape) COMPRESSED_POINTER_FIELD(ArrayPtr, field_types) - VISIT_TO(field_types) + COMPRESSED_SMI_FIELD(SmiPtr, hash) + VISIT_TO(hash) CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); } }; @@ -2772,6 +2774,7 @@ class UntaggedTypeParameter : public UntaggedAbstractType { private: RAW_HEAP_OBJECT_IMPLEMENTATION(TypeParameter); + COMPRESSED_POINTER_FIELD(SmiPtr, hash) // FunctionType or Smi (class id). COMPRESSED_POINTER_FIELD(ObjectPtr, owner) VISIT_TO(owner) diff --git a/sdk/lib/_internal/vm/lib/type_patch.dart b/sdk/lib/_internal/vm/lib/type_patch.dart index 2120f6abc12..cd48226467a 100644 --- a/sdk/lib/_internal/vm/lib/type_patch.dart +++ b/sdk/lib/_internal/vm/lib/type_patch.dart @@ -27,6 +27,11 @@ class _Type extends _AbstractType { throw "Unreachable"; } + @pragma("vm:recognized", "asm-intrinsic") + @pragma("vm:exact-result-type", "dart:core#_Smi") + @pragma("vm:external-name", "Type_getHashCode") + external int get hashCode; + @pragma("vm:recognized", "asm-intrinsic") @pragma("vm:exact-result-type", bool) @pragma("vm:external-name", "Type_equality")