From d42de4ed062ffde5293fd4c862baf8167dfb1bcb Mon Sep 17 00:00:00 2001 From: Vyacheslav Egorov Date: Mon, 15 Mar 2021 15:35:10 +0000 Subject: [PATCH] [vm] Crash on impossible GDT null errors This CL adds code to detect situations when we hit null error through GDT call with non-null receiver. We achieve this by making receiver's cid part of the GDT calling convention and checking this cid in runtime entry responsible for throwing the null error. This CL is an attempt to narrow down b/179632636 and collapse various impossible crash reports into a single native crash cluster by crashing VM instead of throwing a null error. TEST=tested manually Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try Change-Id: If2ed4646c4c0f403016266e4e83e296a7b234cb5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191141 Auto-Submit: Vyacheslav Egorov Commit-Queue: Vyacheslav Egorov Reviewed-by: Martin Kustermann --- .../vm/compiler/backend/flow_graph_compiler.h | 3 +- .../backend/flow_graph_compiler_arm.cc | 5 +- .../backend/flow_graph_compiler_arm64.cc | 13 +- .../backend/flow_graph_compiler_ia32.cc | 1 - .../backend/flow_graph_compiler_x64.cc | 2 +- runtime/vm/compiler/backend/il.cc | 16 +- runtime/vm/compiler/backend/il_arm.cc | 10 - runtime/vm/compiler/backend/il_arm64.cc | 10 - runtime/vm/compiler/backend/il_ia32.cc | 7 - runtime/vm/compiler/backend/il_x64.cc | 10 - .../vm/compiler/runtime_offsets_extracted.h | 660 +++++++++--------- runtime/vm/compiler/stub_code_compiler_arm.cc | 4 +- .../vm/compiler/stub_code_compiler_arm64.cc | 4 +- runtime/vm/compiler/stub_code_compiler_x64.cc | 4 +- runtime/vm/constants_arm.h | 8 + runtime/vm/constants_arm64.h | 8 + runtime/vm/constants_ia32.h | 10 + runtime/vm/constants_x64.h | 8 + runtime/vm/raw_object.h | 4 + runtime/vm/runtime_entry.cc | 55 +- runtime/vm/runtime_entry_list.h | 1 + 21 files changed, 460 insertions(+), 383 deletions(-) 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) \