diff --git a/runtime/vm/compiler/backend/flow_graph_compiler.h b/runtime/vm/compiler/backend/flow_graph_compiler.h index d3420af5d1c..54e19ba2ad0 100644 --- a/runtime/vm/compiler/backend/flow_graph_compiler.h +++ b/runtime/vm/compiler/backend/flow_graph_compiler.h @@ -767,8 +767,7 @@ class FlowGraphCompiler : public ValueObject { intptr_t total_ic_calls, Code::EntryKind entry_kind = Code::EntryKind::kNormal); - void EmitDispatchTableCall(Register cid_reg, - int32_t selector_offset, + void EmitDispatchTableCall(int32_t selector_offset, const Array& arguments_descriptor); Condition EmitEqualityRegConstCompare(Register reg, diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc index d9a48c00342..d12a1770e90 100644 --- a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc +++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc @@ -701,9 +701,9 @@ void FlowGraphCompiler::EmitOptimizedStaticCall( } void FlowGraphCompiler::EmitDispatchTableCall( - Register cid_reg, int32_t selector_offset, const Array& arguments_descriptor) { + const auto cid_reg = DispatchTableNullErrorABI::kClassIdReg; ASSERT(CanCallDart()); ASSERT(cid_reg != ARGS_DESC_REG); if (!arguments_descriptor.IsNull()) { @@ -712,6 +712,9 @@ void FlowGraphCompiler::EmitDispatchTableCall( intptr_t offset = (selector_offset - DispatchTable::OriginElement()) * compiler::target::kWordSize; CLOBBERS_LR({ + // Would like cid_reg to be available on entry to the target function + // for checking purposes. + ASSERT(cid_reg != LR); if (offset == 0) { __ ldr(LR, compiler::Address(DISPATCH_TABLE_REG, cid_reg, LSL, compiler::target::kWordSizeLog2)); diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc index 40347c7b055..9448800d91a 100644 --- a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc +++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc @@ -694,18 +694,23 @@ void FlowGraphCompiler::EmitOptimizedStaticCall( } void FlowGraphCompiler::EmitDispatchTableCall( - Register cid_reg, int32_t selector_offset, const Array& arguments_descriptor) { + const auto cid_reg = DispatchTableNullErrorABI::kClassIdReg; ASSERT(CanCallDart()); ASSERT(cid_reg != ARGS_DESC_REG); if (!arguments_descriptor.IsNull()) { __ LoadObject(ARGS_DESC_REG, arguments_descriptor); } const intptr_t offset = selector_offset - DispatchTable::OriginElement(); - __ AddImmediate(cid_reg, cid_reg, offset); - __ Call(compiler::Address(DISPATCH_TABLE_REG, cid_reg, UXTX, - compiler::Address::Scaled)); + CLOBBERS_LR({ + // Would like cid_reg to be available on entry to the target function + // for checking purposes. + ASSERT(cid_reg != LR); + __ AddImmediate(LR, cid_reg, offset); + __ Call(compiler::Address(DISPATCH_TABLE_REG, LR, UXTX, + compiler::Address::Scaled)); + }); } Condition FlowGraphCompiler::EmitEqualityRegConstCompare( diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc b/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc index a4a2c64a88c..09110ef57c6 100644 --- a/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc +++ b/runtime/vm/compiler/backend/flow_graph_compiler_ia32.cc @@ -726,7 +726,6 @@ void FlowGraphCompiler::EmitOptimizedStaticCall( } void FlowGraphCompiler::EmitDispatchTableCall( - Register cid_reg, int32_t selector_offset, const Array& arguments_descriptor) { // Only generated with precompilation. diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc index 6b3f7c3a926..efbe4a54cfc 100644 --- a/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc +++ b/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc @@ -682,9 +682,9 @@ void FlowGraphCompiler::EmitOptimizedStaticCall( } void FlowGraphCompiler::EmitDispatchTableCall( - Register cid_reg, int32_t selector_offset, const Array& arguments_descriptor) { + const auto cid_reg = DispatchTableNullErrorABI::kClassIdReg; ASSERT(CanCallDart()); const Register table_reg = RAX; ASSERT(cid_reg != table_reg); diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc index 0a64dc31cb5..2821fad685a 100644 --- a/runtime/vm/compiler/backend/il.cc +++ b/runtime/vm/compiler/backend/il.cc @@ -5042,16 +5042,26 @@ DispatchTableCallInstr* DispatchTableCallInstr::FromCall( return dispatch_table_call; } +LocationSummary* DispatchTableCallInstr::MakeLocationSummary(Zone* zone, + bool opt) const { + const intptr_t kNumInputs = 1; + const intptr_t kNumTemps = 0; + LocationSummary* summary = new (zone) + LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall); + summary->set_in( + 0, Location::RegisterLocation(DispatchTableNullErrorABI::kClassIdReg)); + return MakeCallSummary(zone, this, summary); +} + void DispatchTableCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { + ASSERT(locs()->in(0).reg() == DispatchTableNullErrorABI::kClassIdReg); Array& arguments_descriptor = Array::ZoneHandle(); if (selector()->requires_args_descriptor) { ArgumentsInfo args_info(type_args_len(), ArgumentCount(), ArgumentsSize(), argument_names()); arguments_descriptor = args_info.ToArgumentsDescriptor(); } - const Register cid_reg = locs()->in(0).reg(); - compiler->EmitDispatchTableCall(cid_reg, selector()->offset, - arguments_descriptor); + compiler->EmitDispatchTableCall(selector()->offset, arguments_descriptor); compiler->EmitCallsiteMetadata(source(), DeoptId::kNone, UntaggedPcDescriptors::kOther, locs()); if (selector()->called_on_null && !selector()->on_null_interface) { diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc index d7951853620..f14f74cc385 100644 --- a/runtime/vm/compiler/backend/il_arm.cc +++ b/runtime/vm/compiler/backend/il_arm.cc @@ -580,16 +580,6 @@ void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) { } } -LocationSummary* DispatchTableCallInstr::MakeLocationSummary(Zone* zone, - bool opt) const { - const intptr_t kNumInputs = 1; - const intptr_t kNumTemps = 0; - LocationSummary* summary = new (zone) - LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall); - summary->set_in(0, Location::RegisterLocation(R0)); // ClassId - return MakeCallSummary(zone, this, summary); -} - LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone, bool opt) const { const intptr_t kNumInputs = 1; diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc index 0e88877f1f6..6b18881c31f 100644 --- a/runtime/vm/compiler/backend/il_arm64.cc +++ b/runtime/vm/compiler/backend/il_arm64.cc @@ -497,16 +497,6 @@ void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) { } } -LocationSummary* DispatchTableCallInstr::MakeLocationSummary(Zone* zone, - bool opt) const { - const intptr_t kNumInputs = 1; - const intptr_t kNumTemps = 0; - LocationSummary* summary = new (zone) - LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall); - summary->set_in(0, Location::RegisterLocation(R0)); // ClassId - return MakeCallSummary(zone, this, summary); -} - LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone, bool opt) const { const intptr_t kNumInputs = 1; diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc index 45a2ad9c6dd..900c92928dc 100644 --- a/runtime/vm/compiler/backend/il_ia32.cc +++ b/runtime/vm/compiler/backend/il_ia32.cc @@ -6812,13 +6812,6 @@ void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) { } } -LocationSummary* DispatchTableCallInstr::MakeLocationSummary(Zone* zone, - bool opt) const { - // Only generated with precompilation. - UNREACHABLE(); - return NULL; -} - LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone, bool opt) const { const intptr_t kNumInputs = 1; diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc index 681164a6284..5d55d7023a8 100644 --- a/runtime/vm/compiler/backend/il_x64.cc +++ b/runtime/vm/compiler/backend/il_x64.cc @@ -7317,16 +7317,6 @@ Condition StrictCompareInstr::EmitComparisonCodeRegConstant( source(), deopt_id()); } -LocationSummary* DispatchTableCallInstr::MakeLocationSummary(Zone* zone, - bool opt) const { - const intptr_t kNumInputs = 1; - const intptr_t kNumTemps = 0; - LocationSummary* summary = new (zone) - LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kCall); - summary->set_in(0, Location::RegisterLocation(RCX)); // ClassId - return MakeCallSummary(zone, this, summary); -} - LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone, bool opt) const { const intptr_t kNumInputs = 1; diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h index 318cf0821bb..efd12ee69ab 100644 --- a/runtime/vm/compiler/runtime_offsets_extracted.h +++ b/runtime/vm/compiler/runtime_offsets_extracted.h @@ -224,9 +224,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 692; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 696; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 700; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -251,7 +251,7 @@ static constexpr dart::compiler::target::word Thread_allocate_object_slow_entry_point_offset = 288; static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 196; -static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 732; +static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 736; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word Thread_bool_false_offset = 112; @@ -262,7 +262,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 268; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 136; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 744; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -280,7 +280,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 56; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 712; + 716; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -300,13 +300,13 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 700; + 704; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 728; + 732; static constexpr dart::compiler::target::word Thread_isolate_offset = 44; -static constexpr dart::compiler::target::word Thread_isolate_group_offset = 744; +static constexpr dart::compiler::target::word Thread_isolate_group_offset = 748; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -348,11 +348,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 104; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 704; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 708; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 708; + Thread_saved_shadow_call_stack_offset = 712; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 716; + 720; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -386,9 +386,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word Thread_heap_base_offset = 40; -static constexpr dart::compiler::target::word Thread_callback_code_offset = 720; +static constexpr dart::compiler::target::word Thread_callback_code_offset = 724; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 724; + Thread_callback_stack_return_offset = 728; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; static constexpr dart::compiler::target::word Type_arguments_offset = 16; @@ -450,7 +450,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 4, 12, 8, 16}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 660, 664, 668, 672, 676, -1, 680, -1, 684, 688, -1, -1, -1, -1, -1, -1}; + 664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_InstanceSize = 12; @@ -759,9 +759,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1400; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1408; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1416; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -787,7 +787,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -798,7 +798,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1504; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -816,7 +816,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1440; + 1448; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -836,14 +836,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1416; + 1424; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1472; + 1480; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -885,11 +885,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1432; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1432; + Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1448; + 1456; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -924,9 +924,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1464; + Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -989,8 +989,8 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -1297,9 +1297,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 660; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 664; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 668; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -1324,7 +1324,7 @@ static constexpr dart::compiler::target::word Thread_allocate_object_slow_entry_point_offset = 288; static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 196; -static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 700; +static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 704; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word Thread_bool_false_offset = 112; @@ -1335,7 +1335,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 268; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 136; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 712; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -1353,7 +1353,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 56; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 680; + 684; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -1373,13 +1373,13 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 668; + 672; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 696; + 700; static constexpr dart::compiler::target::word Thread_isolate_offset = 44; -static constexpr dart::compiler::target::word Thread_isolate_group_offset = 712; +static constexpr dart::compiler::target::word Thread_isolate_group_offset = 716; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -1421,11 +1421,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 104; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 672; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 676; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 676; + Thread_saved_shadow_call_stack_offset = 680; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 684; + 688; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -1459,9 +1459,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word Thread_heap_base_offset = 40; -static constexpr dart::compiler::target::word Thread_callback_code_offset = 688; +static constexpr dart::compiler::target::word Thread_callback_code_offset = 692; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 692; + Thread_callback_stack_return_offset = 696; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; static constexpr dart::compiler::target::word Type_arguments_offset = 16; @@ -1829,9 +1829,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1464; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1472; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1480; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -1857,7 +1857,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -1868,7 +1868,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1568; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -1886,7 +1886,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -1906,14 +1906,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1536; + 1544; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -1955,11 +1955,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1496; + Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1512; + 1520; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -1994,9 +1994,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1528; + Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -2059,9 +2059,9 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -2369,9 +2369,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1400; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1408; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1416; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -2397,7 +2397,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -2408,7 +2408,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1504; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -2426,7 +2426,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1440; + 1448; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -2446,14 +2446,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1416; + 1424; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1472; + 1480; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -2495,11 +2495,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1432; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1432; + Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1448; + 1456; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -2534,9 +2534,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1464; + Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -2599,8 +2599,8 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -2908,9 +2908,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1464; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1472; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1480; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -2936,7 +2936,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -2947,7 +2947,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1568; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -2965,7 +2965,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -2985,14 +2985,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1536; + 1544; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -3034,11 +3034,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1496; + Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1512; + 1520; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -3073,9 +3073,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1528; + Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -3138,9 +3138,9 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -3446,9 +3446,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 692; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 696; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 700; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -3473,7 +3473,7 @@ static constexpr dart::compiler::target::word Thread_allocate_object_slow_entry_point_offset = 288; static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 196; -static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 732; +static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 736; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word Thread_bool_false_offset = 112; @@ -3484,7 +3484,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 268; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 136; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 744; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -3502,7 +3502,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 56; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 712; + 716; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -3522,13 +3522,13 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 700; + 704; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 728; + 732; static constexpr dart::compiler::target::word Thread_isolate_offset = 44; -static constexpr dart::compiler::target::word Thread_isolate_group_offset = 744; +static constexpr dart::compiler::target::word Thread_isolate_group_offset = 748; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -3570,11 +3570,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 104; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 704; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 708; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 708; + Thread_saved_shadow_call_stack_offset = 712; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 716; + 720; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -3608,9 +3608,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word Thread_heap_base_offset = 40; -static constexpr dart::compiler::target::word Thread_callback_code_offset = 720; +static constexpr dart::compiler::target::word Thread_callback_code_offset = 724; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 724; + Thread_callback_stack_return_offset = 728; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; static constexpr dart::compiler::target::word Type_arguments_offset = 16; @@ -3669,7 +3669,7 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 4, 12, 8, 16}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 660, 664, 668, 672, 676, -1, 680, -1, 684, 688, -1, -1, -1, -1, -1, -1}; + 664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12; static constexpr dart::compiler::target::word ApiError_InstanceSize = 8; static constexpr dart::compiler::target::word Array_InstanceSize = 12; @@ -3975,9 +3975,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1400; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1408; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1416; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -4003,7 +4003,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -4014,7 +4014,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1504; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -4032,7 +4032,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1440; + 1448; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -4052,14 +4052,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1416; + 1424; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1472; + 1480; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -4101,11 +4101,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1432; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1432; + Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1448; + 1456; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -4140,9 +4140,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1464; + Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -4202,8 +4202,8 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -4507,9 +4507,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 660; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 664; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 668; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -4534,7 +4534,7 @@ static constexpr dart::compiler::target::word Thread_allocate_object_slow_entry_point_offset = 288; static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 196; -static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 700; +static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 704; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word Thread_bool_false_offset = 112; @@ -4545,7 +4545,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 268; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 136; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 712; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -4563,7 +4563,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 56; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 680; + 684; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -4583,13 +4583,13 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 668; + 672; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 696; + 700; static constexpr dart::compiler::target::word Thread_isolate_offset = 44; -static constexpr dart::compiler::target::word Thread_isolate_group_offset = 712; +static constexpr dart::compiler::target::word Thread_isolate_group_offset = 716; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -4631,11 +4631,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 104; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 672; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 676; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 676; + Thread_saved_shadow_call_stack_offset = 680; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 684; + 688; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -4669,9 +4669,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word Thread_heap_base_offset = 40; -static constexpr dart::compiler::target::word Thread_callback_code_offset = 688; +static constexpr dart::compiler::target::word Thread_callback_code_offset = 692; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 692; + Thread_callback_stack_return_offset = 696; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word TwoByteString_data_offset = 12; static constexpr dart::compiler::target::word Type_arguments_offset = 16; @@ -5033,9 +5033,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1464; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1472; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1480; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -5061,7 +5061,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -5072,7 +5072,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1568; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -5090,7 +5090,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -5110,14 +5110,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1536; + 1544; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -5159,11 +5159,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1496; + Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1512; + 1520; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -5198,9 +5198,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1528; + Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -5260,9 +5260,9 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -5567,9 +5567,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1400; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1408; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1416; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -5595,7 +5595,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -5606,7 +5606,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1496; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1504; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -5624,7 +5624,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1440; + 1448; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -5644,14 +5644,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1416; + 1424; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1472; + 1480; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -5693,11 +5693,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1432; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1432; + Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1448; + 1456; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -5732,9 +5732,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1464; + Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -5794,8 +5794,8 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -6100,9 +6100,9 @@ static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8; static constexpr dart::compiler::target::word Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word Thread_active_exception_offset = - 1464; -static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = 1472; +static constexpr dart::compiler::target::word Thread_active_stacktrace_offset = + 1480; static constexpr dart::compiler::target::word Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -6128,7 +6128,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word Thread_bool_false_offset = 216; @@ -6139,7 +6139,7 @@ static constexpr dart::compiler::target::word Thread_call_to_runtime_entry_point_offset = 528; static constexpr dart::compiler::target::word Thread_call_to_runtime_stub_offset = 264; -static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560; +static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1568; static constexpr dart::compiler::target::word Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word Thread_optimize_entry_offset = @@ -6157,7 +6157,7 @@ static constexpr dart::compiler::target::word Thread_end_offset = 112; static constexpr dart::compiler::target::word Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word Thread_execution_state_offset = - 1504; + 1512; static constexpr dart::compiler::target::word Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -6177,14 +6177,14 @@ static constexpr dart::compiler::target::word Thread_float_not_address_offset = static constexpr dart::compiler::target::word Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word Thread_global_object_pool_offset = - 1480; + 1488; static constexpr dart::compiler::target::word Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset = - 1536; + 1544; static constexpr dart::compiler::target::word Thread_isolate_offset = 88; static constexpr dart::compiler::target::word Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -6226,11 +6226,11 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word Thread_object_null_offset = 200; static constexpr dart::compiler::target::word Thread_predefined_symbols_address_offset = 664; -static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488; +static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496; static constexpr dart::compiler::target::word - Thread_saved_shadow_call_stack_offset = 1496; + Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word Thread_safepoint_state_offset = - 1512; + 1520; static constexpr dart::compiler::target::word Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -6265,9 +6265,9 @@ static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - Thread_callback_stack_return_offset = 1528; + Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word TwoByteString_data_offset = 16; @@ -6327,9 +6327,9 @@ static constexpr dart::compiler::target::word Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word ApiError_InstanceSize = 16; static constexpr dart::compiler::target::word Array_InstanceSize = 24; @@ -6661,9 +6661,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 692; + AOT_Thread_active_exception_offset = 696; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 696; + AOT_Thread_active_stacktrace_offset = 700; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -6689,7 +6689,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 196; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 732; + 736; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -6702,7 +6702,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 136; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 740; + 744; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -6721,7 +6721,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 712; + AOT_Thread_execution_state_offset = 716; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -6741,14 +6741,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 700; + AOT_Thread_global_object_pool_offset = 704; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 728; + AOT_Thread_exit_through_ffi_offset = 732; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 744; + 748; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -6792,11 +6792,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = 104; static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 704; +static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 708; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 708; + AOT_Thread_saved_shadow_call_stack_offset = 712; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 716; + AOT_Thread_safepoint_state_offset = 720; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -6833,9 +6833,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 40; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 720; + 724; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 724; + AOT_Thread_callback_stack_return_offset = 728; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -6910,7 +6910,7 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 4, 12, 8, 16}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 660, 664, 668, 672, 676, -1, 680, -1, 684, 688, -1, -1, -1, -1, -1, -1}; + 664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 12; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; @@ -7256,9 +7256,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1400; + AOT_Thread_active_exception_offset = 1408; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1408; + AOT_Thread_active_stacktrace_offset = 1416; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -7284,7 +7284,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -7297,7 +7297,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1496; + 1504; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -7316,7 +7316,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1440; + AOT_Thread_execution_state_offset = 1448; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -7336,14 +7336,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1416; + AOT_Thread_global_object_pool_offset = 1424; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1472; + AOT_Thread_exit_through_ffi_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -7388,11 +7388,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1424; + 1432; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1432; + AOT_Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1448; + AOT_Thread_safepoint_state_offset = 1456; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -7429,9 +7429,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1464; + AOT_Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -7507,8 +7507,8 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -7857,9 +7857,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1464; + AOT_Thread_active_exception_offset = 1472; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1472; + AOT_Thread_active_stacktrace_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -7885,7 +7885,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -7898,7 +7898,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1560; + 1568; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -7917,7 +7917,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1504; + AOT_Thread_execution_state_offset = 1512; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -7937,14 +7937,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1480; + AOT_Thread_global_object_pool_offset = 1488; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1536; + AOT_Thread_exit_through_ffi_offset = 1544; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -7989,11 +7989,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1488; + 1496; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1496; + AOT_Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1512; + AOT_Thread_safepoint_state_offset = 1520; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -8030,9 +8030,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1528; + AOT_Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -8108,9 +8108,9 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -8456,9 +8456,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1400; + AOT_Thread_active_exception_offset = 1408; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1408; + AOT_Thread_active_stacktrace_offset = 1416; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -8484,7 +8484,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -8497,7 +8497,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1496; + 1504; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -8516,7 +8516,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1440; + AOT_Thread_execution_state_offset = 1448; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -8536,14 +8536,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1416; + AOT_Thread_global_object_pool_offset = 1424; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1472; + AOT_Thread_exit_through_ffi_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -8588,11 +8588,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1424; + 1432; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1432; + AOT_Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1448; + AOT_Thread_safepoint_state_offset = 1456; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -8629,9 +8629,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1464; + AOT_Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -8707,8 +8707,8 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -9054,9 +9054,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1464; + AOT_Thread_active_exception_offset = 1472; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1472; + AOT_Thread_active_stacktrace_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -9082,7 +9082,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -9095,7 +9095,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1560; + 1568; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -9114,7 +9114,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1504; + AOT_Thread_execution_state_offset = 1512; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -9134,14 +9134,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1480; + AOT_Thread_global_object_pool_offset = 1488; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1536; + AOT_Thread_exit_through_ffi_offset = 1544; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -9186,11 +9186,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1488; + 1496; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1496; + AOT_Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1512; + AOT_Thread_safepoint_state_offset = 1520; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -9227,9 +9227,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1528; + AOT_Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -9305,9 +9305,9 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -9650,9 +9650,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 368; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 692; + AOT_Thread_active_exception_offset = 696; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 696; + AOT_Thread_active_stacktrace_offset = 700; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 120; static constexpr dart::compiler::target::word @@ -9678,7 +9678,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 196; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 732; + 736; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 332; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -9691,7 +9691,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 136; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 740; + 744; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 48; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -9710,7 +9710,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 248; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 712; + AOT_Thread_execution_state_offset = 716; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 252; static constexpr dart::compiler::target::word @@ -9730,14 +9730,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 364; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 700; + AOT_Thread_global_object_pool_offset = 704; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 132; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 728; + AOT_Thread_exit_through_ffi_offset = 732; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 744; + 748; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 68; static constexpr dart::compiler::target::word @@ -9781,11 +9781,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = 104; static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 336; -static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 704; +static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 708; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 708; + AOT_Thread_saved_shadow_call_stack_offset = 712; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 716; + AOT_Thread_safepoint_state_offset = 720; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 240; static constexpr dart::compiler::target::word @@ -9822,9 +9822,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 36; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 40; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 720; + 724; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 724; + AOT_Thread_callback_stack_return_offset = 728; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 8; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -9896,7 +9896,7 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 4, 12, 8, 16}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 660, 664, 668, 672, 676, -1, 680, -1, 684, 688, -1, -1, -1, -1, -1, -1}; + 664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 12; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8; @@ -10238,9 +10238,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1400; + AOT_Thread_active_exception_offset = 1408; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1408; + AOT_Thread_active_stacktrace_offset = 1416; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -10266,7 +10266,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -10279,7 +10279,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1496; + 1504; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -10298,7 +10298,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1440; + AOT_Thread_execution_state_offset = 1448; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -10318,14 +10318,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1416; + AOT_Thread_global_object_pool_offset = 1424; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1472; + AOT_Thread_exit_through_ffi_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -10370,11 +10370,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1424; + 1432; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1432; + AOT_Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1448; + AOT_Thread_safepoint_state_offset = 1456; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -10411,9 +10411,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1464; + AOT_Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -10486,8 +10486,8 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -10832,9 +10832,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1464; + AOT_Thread_active_exception_offset = 1472; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1472; + AOT_Thread_active_stacktrace_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -10860,7 +10860,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -10873,7 +10873,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1560; + 1568; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -10892,7 +10892,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1504; + AOT_Thread_execution_state_offset = 1512; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -10912,14 +10912,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1480; + AOT_Thread_global_object_pool_offset = 1488; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1536; + AOT_Thread_exit_through_ffi_offset = 1544; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -10964,11 +10964,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1488; + 1496; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1496; + AOT_Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1512; + AOT_Thread_safepoint_state_offset = 1520; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -11005,9 +11005,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1528; + AOT_Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -11080,9 +11080,9 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -11424,9 +11424,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1400; + AOT_Thread_active_exception_offset = 1408; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1408; + AOT_Thread_active_stacktrace_offset = 1416; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -11452,7 +11452,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1480; + 1488; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -11465,7 +11465,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1496; + 1504; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -11484,7 +11484,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1440; + AOT_Thread_execution_state_offset = 1448; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -11504,14 +11504,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1416; + AOT_Thread_global_object_pool_offset = 1424; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1472; + AOT_Thread_exit_through_ffi_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1504; + 1512; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -11556,11 +11556,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1424; + 1432; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1432; + AOT_Thread_saved_shadow_call_stack_offset = 1440; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1448; + AOT_Thread_safepoint_state_offset = 1456; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -11597,9 +11597,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1456; + 1464; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1464; + AOT_Thread_callback_stack_return_offset = 1472; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -11672,8 +11672,8 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, -1, -1, 1344, 1352, - 1360, 1368, 1376, -1, 1384, 1392, -1, -1}; + 1320, 1328, 1336, 1344, -1, -1, 1352, 1360, + 1368, 1376, 1384, -1, 1392, 1400, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; @@ -12015,9 +12015,9 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_AllocateArray_entry_point_offset = 728; static constexpr dart::compiler::target::word - AOT_Thread_active_exception_offset = 1464; + AOT_Thread_active_exception_offset = 1472; static constexpr dart::compiler::target::word - AOT_Thread_active_stacktrace_offset = 1472; + AOT_Thread_active_stacktrace_offset = 1480; static constexpr dart::compiler::target::word AOT_Thread_array_write_barrier_code_offset = 232; static constexpr dart::compiler::target::word @@ -12043,7 +12043,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_allocate_object_slow_stub_offset = 384; static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset = - 1544; + 1552; static constexpr dart::compiler::target::word AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656; static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset = @@ -12056,7 +12056,7 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_call_to_runtime_stub_offset = 264; static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset = - 1560; + 1568; static constexpr dart::compiler::target::word AOT_Thread_dispatch_table_array_offset = 96; static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset = @@ -12075,7 +12075,7 @@ static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112; static constexpr dart::compiler::target::word AOT_Thread_enter_safepoint_stub_offset = 488; static constexpr dart::compiler::target::word - AOT_Thread_execution_state_offset = 1504; + AOT_Thread_execution_state_offset = 1512; static constexpr dart::compiler::target::word AOT_Thread_exit_safepoint_stub_offset = 496; static constexpr dart::compiler::target::word @@ -12095,14 +12095,14 @@ static constexpr dart::compiler::target::word static constexpr dart::compiler::target::word AOT_Thread_float_zerow_address_offset = 720; static constexpr dart::compiler::target::word - AOT_Thread_global_object_pool_offset = 1480; + AOT_Thread_global_object_pool_offset = 1488; static constexpr dart::compiler::target::word AOT_Thread_invoke_dart_code_stub_offset = 256; static constexpr dart::compiler::target::word - AOT_Thread_exit_through_ffi_offset = 1536; + AOT_Thread_exit_through_ffi_offset = 1544; static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88; static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset = - 1568; + 1576; static constexpr dart::compiler::target::word AOT_Thread_field_table_values_offset = 136; static constexpr dart::compiler::target::word @@ -12147,11 +12147,11 @@ static constexpr dart::compiler::target::word AOT_Thread_object_null_offset = static constexpr dart::compiler::target::word AOT_Thread_predefined_symbols_address_offset = 664; static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = - 1488; + 1496; static constexpr dart::compiler::target::word - AOT_Thread_saved_shadow_call_stack_offset = 1496; + AOT_Thread_saved_shadow_call_stack_offset = 1504; static constexpr dart::compiler::target::word - AOT_Thread_safepoint_state_offset = 1512; + AOT_Thread_safepoint_state_offset = 1520; static constexpr dart::compiler::target::word AOT_Thread_slow_type_test_stub_offset = 472; static constexpr dart::compiler::target::word @@ -12188,9 +12188,9 @@ static constexpr dart::compiler::target::word AOT_Thread_write_barrier_mask_offset = 72; static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 80; static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset = - 1520; + 1528; static constexpr dart::compiler::target::word - AOT_Thread_callback_stack_return_offset = 1528; + AOT_Thread_callback_stack_return_offset = 1536; static constexpr dart::compiler::target::word AOT_TimelineStream_enabled_offset = 16; static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset = @@ -12263,9 +12263,9 @@ static constexpr dart::compiler::target::word AOT_Code_entry_point_offset[] = { 8, 24, 16, 32}; static constexpr dart::compiler::target::word AOT_Thread_write_barrier_wrappers_thread_offset[] = { - 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, - 1400, 1408, 1416, 1424, -1, -1, -1, -1, 1432, 1440, -1, - -1, -1, 1448, 1456, -1, -1, -1, -1, -1, -1}; + 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392, 1400, + 1408, 1416, 1424, 1432, -1, -1, -1, -1, 1440, 1448, -1, + -1, -1, 1456, 1464, -1, -1, -1, -1, -1, -1}; static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize = 24; static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16; diff --git a/runtime/vm/compiler/stub_code_compiler_arm.cc b/runtime/vm/compiler/stub_code_compiler_arm.cc index dc9b44c077f..ff24802e847 100644 --- a/runtime/vm/compiler/stub_code_compiler_arm.cc +++ b/runtime/vm/compiler/stub_code_compiler_arm.cc @@ -487,7 +487,9 @@ void StubCodeCompiler::GenerateJITCallbackTrampolines( void StubCodeCompiler::GenerateDispatchTableNullErrorStub( Assembler* assembler) { __ EnterStubFrame(); - __ CallRuntime(kNullErrorRuntimeEntry, /*argument_count=*/0); + __ SmiTag(DispatchTableNullErrorABI::kClassIdReg); + __ PushRegister(DispatchTableNullErrorABI::kClassIdReg); + __ CallRuntime(kDispatchTableNullErrorRuntimeEntry, /*argument_count=*/1); // The NullError runtime entry does not return. __ Breakpoint(); } diff --git a/runtime/vm/compiler/stub_code_compiler_arm64.cc b/runtime/vm/compiler/stub_code_compiler_arm64.cc index c3c6fbc6a47..4f4d44d1962 100644 --- a/runtime/vm/compiler/stub_code_compiler_arm64.cc +++ b/runtime/vm/compiler/stub_code_compiler_arm64.cc @@ -545,7 +545,9 @@ void StubCodeCompiler::GenerateBuildMethodExtractorStub( void StubCodeCompiler::GenerateDispatchTableNullErrorStub( Assembler* assembler) { __ EnterStubFrame(); - __ CallRuntime(kNullErrorRuntimeEntry, /*argument_count=*/0); + __ SmiTag(DispatchTableNullErrorABI::kClassIdReg); + __ PushRegister(DispatchTableNullErrorABI::kClassIdReg); + __ CallRuntime(kDispatchTableNullErrorRuntimeEntry, /*argument_count=*/1); // The NullError runtime entry does not return. __ Breakpoint(); } diff --git a/runtime/vm/compiler/stub_code_compiler_x64.cc b/runtime/vm/compiler/stub_code_compiler_x64.cc index db74b1f52d8..ade135fd237 100644 --- a/runtime/vm/compiler/stub_code_compiler_x64.cc +++ b/runtime/vm/compiler/stub_code_compiler_x64.cc @@ -488,7 +488,9 @@ void StubCodeCompiler::GenerateBuildMethodExtractorStub( void StubCodeCompiler::GenerateDispatchTableNullErrorStub( Assembler* assembler) { __ EnterStubFrame(); - __ CallRuntime(kNullErrorRuntimeEntry, /*argument_count=*/0); + __ SmiTag(DispatchTableNullErrorABI::kClassIdReg); + __ PushRegister(DispatchTableNullErrorABI::kClassIdReg); + __ CallRuntime(kDispatchTableNullErrorRuntimeEntry, /*argument_count=*/1); // The NullError runtime entry does not return. __ Breakpoint(); } diff --git a/runtime/vm/constants_arm.h b/runtime/vm/constants_arm.h index 82ccda5f936..1b7fe4c171b 100644 --- a/runtime/vm/constants_arm.h +++ b/runtime/vm/constants_arm.h @@ -463,6 +463,14 @@ struct AllocateTypedDataArrayABI { static const Register kResultReg = R0; }; +// ABI for DispatchTableNullErrorStub and consequently for all dispatch +// table calls (though normal functions will not expect or use this +// register). This ABI is added to distinguish memory corruption errors from +// null errors. +struct DispatchTableNullErrorABI { + static const Register kClassIdReg = R0; +}; + // TODO(regis): Add ABIs for type testing stubs and is-type test stubs instead // of reusing the constants of the instantiation stubs ABI. diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h index 16af3714c22..a596a105489 100644 --- a/runtime/vm/constants_arm64.h +++ b/runtime/vm/constants_arm64.h @@ -304,6 +304,14 @@ struct AllocateTypedDataArrayABI { static const Register kResultReg = R0; }; +// ABI for DispatchTableNullErrorStub and consequently for all dispatch +// table calls (though normal functions will not expect or use this +// register). This ABI is added to distinguish memory corruption errors from +// null errors. +struct DispatchTableNullErrorABI { + static const Register kClassIdReg = R0; +}; + // TODO(regis): Add ABIs for type testing stubs and is-type test stubs instead // of reusing the constants of the instantiation stubs ABI. diff --git a/runtime/vm/constants_ia32.h b/runtime/vm/constants_ia32.h index ca05271be5e..a8baa9d62cc 100644 --- a/runtime/vm/constants_ia32.h +++ b/runtime/vm/constants_ia32.h @@ -202,6 +202,16 @@ struct AllocateTypedDataArrayABI { static const Register kResultReg = EAX; }; +// ABI for DispatchTableNullErrorStub and consequently for all dispatch +// table calls (though normal functions will not expect or use this +// register). This ABI is added to distinguish memory corruption errors from +// null errors. +// Note: dispatch table calls are never actually generated on IA32, this +// declaration is only added for completeness. +struct DispatchTableNullErrorABI { + static const Register kClassIdReg = EAX; +}; + typedef uint32_t RegList; const RegList kAllCpuRegistersList = 0xFF; diff --git a/runtime/vm/constants_x64.h b/runtime/vm/constants_x64.h index d8ffa7c79d1..e5f647e3d02 100644 --- a/runtime/vm/constants_x64.h +++ b/runtime/vm/constants_x64.h @@ -275,6 +275,14 @@ struct AllocateTypedDataArrayABI { static const Register kResultReg = RAX; }; +// ABI for DispatchTableNullErrorStub and consequently for all dispatch +// table calls (though normal functions will not expect or use this +// register). This ABI is added to distinguish memory corruption errors from +// null errors. +struct DispatchTableNullErrorABI { + static const Register kClassIdReg = RCX; +}; + typedef uint32_t RegList; const RegList kAllCpuRegistersList = 0xFFFF; const RegList kAllFpuRegistersList = 0xFFFF; diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h index 82c19984910..5bf6bc9cd31 100644 --- a/runtime/vm/raw_object.h +++ b/runtime/vm/raw_object.h @@ -43,6 +43,7 @@ class IsolateGroup; CLASS_LIST(DEFINE_FORWARD_DECLARATION) #undef DEFINE_FORWARD_DECLARATION class CodeStatistics; +class StackFrame; #define VISIT_FROM(type, first) \ type* from() { return reinterpret_cast(&first##_); } @@ -733,6 +734,9 @@ class UntaggedObject { friend class WriteBarrierUpdateVisitor; // CheckHeapPointerStore friend class OffsetsTable; friend class Object; + friend void ReportImpossibleNullError(intptr_t cid, + StackFrame* caller_frame, + Thread* thread); DISALLOW_ALLOCATION(); DISALLOW_IMPLICIT_CONSTRUCTORS(UntaggedObject); diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc index 39d4e2d828b..9bb72dfc9c8 100644 --- a/runtime/vm/runtime_entry.cc +++ b/runtime/vm/runtime_entry.cc @@ -176,7 +176,7 @@ static void NullErrorHelper(Zone* zone, const String& selector) { Exceptions::ThrowByType(Exceptions::kNoSuchMethod, args); } -DEFINE_RUNTIME_ENTRY(NullError, 0) { +static void DoThrowNullError(Isolate* isolate, Thread* thread, Zone* zone) { DartFrameIterator iterator(thread, StackFrameIterator::kNoCrossThreadIteration); const StackFrame* caller_frame = iterator.NextFrame(); @@ -206,6 +206,59 @@ DEFINE_RUNTIME_ENTRY(NullError, 0) { NullErrorHelper(zone, member_name); } +DEFINE_RUNTIME_ENTRY(NullError, 0) { + DoThrowNullError(isolate, thread, zone); +} + +// Collects information about pointers within the top |kMaxSlotsCollected| +// slots on the stack. +// TODO(b/179632636) This code is added in attempt to better understand +// b/179632636 and should be removed in the future. +void ReportImpossibleNullError(intptr_t cid, + StackFrame* caller_frame, + Thread* thread) { + TextBuffer buffer(512); + buffer.Printf("hit null error with cid %" Pd ", caller context: ", cid); + + const intptr_t kMaxSlotsCollected = 5; + const auto slots = reinterpret_cast(caller_frame->sp()); + const auto num_slots_in_frame = + reinterpret_cast(caller_frame->fp()) - slots; + const auto num_slots_to_collect = + Utils::Maximum(kMaxSlotsCollected, num_slots_in_frame); + bool comma = false; + for (intptr_t i = 0; i < num_slots_to_collect; i++) { + const ObjectPtr ptr = slots[i]; + buffer.Printf("%s[sp+%" Pd "] %" Pp "", comma ? ", " : "", i, + static_cast(ptr)); + if (ptr->IsHeapObject() && + (Dart::vm_isolate_group()->heap()->Contains( + UntaggedObject::ToAddr(ptr)) || + thread->heap()->Contains(UntaggedObject::ToAddr(ptr)))) { + buffer.Printf("(%" Pp ")", static_cast(ptr->untag()->tags_)); + } + comma = true; + } + + const char* message = buffer.buffer(); + FATAL("%s", message); +} + +DEFINE_RUNTIME_ENTRY(DispatchTableNullError, 1) { + const Smi& cid = Smi::CheckedHandle(zone, arguments.ArgAt(0)); + if (cid.Value() != kNullCid) { + // We hit null error, but receiver is not null itself. This most likely + // is a memory corruption. Crash the VM but provide some additonal + // information about the arguments on the stack. + DartFrameIterator iterator(thread, + StackFrameIterator::kNoCrossThreadIteration); + StackFrame* caller_frame = iterator.NextFrame(); + RELEASE_ASSERT(caller_frame->IsDartFrame()); + ReportImpossibleNullError(cid.Value(), caller_frame, thread); + } + DoThrowNullError(isolate, thread, zone); +} + DEFINE_RUNTIME_ENTRY(NullErrorWithSelector, 1) { const String& selector = String::CheckedHandle(zone, arguments.ArgAt(0)); NullErrorHelper(zone, selector); diff --git a/runtime/vm/runtime_entry_list.h b/runtime/vm/runtime_entry_list.h index 34ac29616a3..4777dd027f0 100644 --- a/runtime/vm/runtime_entry_list.h +++ b/runtime/vm/runtime_entry_list.h @@ -38,6 +38,7 @@ namespace dart { V(NullErrorWithSelector) \ V(NullCastError) \ V(ArgumentNullError) \ + V(DispatchTableNullError) \ V(ArgumentError) \ V(ArgumentErrorUnboxedInt64) \ V(IntegerDivisionByZeroException) \