Reland "[vm] Create offsets_extractor tool."

This reverts commit 224f82c21cb2966f36ab850eae7ef5c8697cc477.

Reason for revert: Just need to split DBC section into 32 and 64 bit

Original change's description:
> Revert "[vm] Create offsets_extractor tool."
>
> This reverts commit 3015d79371a1cf6407e5e799354d42fc6a0dcaec.
>
> Reason for revert: Fails the Flutter build
> /b/s/w/ir/cache/builder/mac_sdk -mmacosx-version-min=10.12 -m32  -fno-strict-aliasing -fstack-protector-all -fcolor-diagnostics -Wall -Wextra -Wendif-labels -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wunguarded-availability -fvisibility=hidden -stdlib=libc++ -Wheader-hygiene -Wstring-conversion -Wthread-safety -O2 -fno-ident -fdata-sections -ffunction-sections -g2 -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-private-field -Wnon-virtual-dtor -Wvla -Wno-conversion-null -Woverloaded-virtual -Wno-comments -g3 -ggdb3 -fno-rtti -fno-exceptions -Wimplicit-fallthrough -O3 -fvisibility-inlines-hidden -std=c++14 -fno-rtti -fno-exceptions  -c ../../third_party/dart/runtime/vm/dart.cc -o clang_x86/obj/third_party/dart/runtime/vm/libdart_vm_nosnapshot_with_precompiler.dart.o
> In file included from ../../third_party/dart/runtime/vm/dart.cc:9:
> ../../third_party/dart/runtime/vm/compiler/runtime_offsets_extracted.h:958:50: error: implicit conversion from 'long long' to 'const dart::word' (aka 'const long') changes value from 576460752303423487 to -1 [-Werror,-Wconstant-conversion]
> static constexpr dart::word Array_kMaxElements = 576460752303423487;
>                             ~~~~~~~~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~
> ../../third_party/dart/runtime/vm/compiler/runtime_offsets_extracted.h:965:51: error: implicit conversion from 'long long' to 'const dart::word' (aka 'const long') changes value from 2305843009213693951 to -1 [-Werror,-Wconstant-conversion]
> static constexpr dart::word String_kMaxElements = 2305843009213693951;
>                             ~~~~~~~~~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~
> 2 errors generated.
>
> Change-Id: Iaf509c6ee7a2ce75664935519ac02a933a9eb2bf
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104402
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>
> Auto-Submit: Siva Annamalai <asiva@google.com>

TBR=asiva@google.com

Change-Id: Ibf749ceee274b03cdffa6d7ed46fcbe75d1a1e94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104620
Reviewed-by: Liam Appelbe <liama@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn
index 5ccc521..6b9f82f 100644
--- a/runtime/vm/BUILD.gn
+++ b/runtime/vm/BUILD.gn
@@ -177,3 +177,15 @@
     ":vm_platform_stripped",
   ]
 }
+
+executable("offsets_extractor") {
+  configs += [
+    "..:dart_arch_config",
+    "..:dart_config",
+    ":libdart_vm_config",
+  ]
+  sources = [
+    "compiler/offsets_extractor.cc",
+  ]
+  include_dirs = [ ".." ]
+}
diff --git a/runtime/vm/class_table.h b/runtime/vm/class_table.h
index 9404617..3268bb7 100644
--- a/runtime/vm/class_table.h
+++ b/runtime/vm/class_table.h
@@ -39,14 +39,6 @@
   friend class IsolateReloadContext;  // For VisitObjectPointers.
 };
 
-#if defined(ARCH_IS_32_BIT)
-const int kSizeOfClassPairLog2 = 3;
-#else
-const int kSizeOfClassPairLog2 = 4;
-#endif
-
-COMPILE_ASSERT((1 << kSizeOfClassPairLog2) == sizeof(ClassAndSize));
-
 #ifndef PRODUCT
 template <typename T>
 class AllocStats {
@@ -261,6 +253,24 @@
   static intptr_t ClassOffsetFor(intptr_t cid);
 
 #ifndef PRODUCT
+  // Describes layout of heap stats for code generation. See offset_extractor.cc
+  struct ArrayLayout {
+    static intptr_t elements_start_offset() { return 0; }
+
+    static constexpr intptr_t kElementSize = sizeof(ClassHeapStats);
+  };
+#endif
+
+#if defined(ARCH_IS_32_BIT)
+  static constexpr int kSizeOfClassPairLog2 = 3;
+#else
+  static constexpr int kSizeOfClassPairLog2 = 4;
+#endif
+  static_assert(
+      (1 << kSizeOfClassPairLog2) == sizeof(ClassAndSize),
+      "Mismatch between sizeof(ClassAndSize) and kSizeOfClassPairLog2");
+
+#ifndef PRODUCT
   // Called whenever a class is allocated in the runtime.
   void UpdateAllocatedNew(intptr_t cid, intptr_t size) {
     ClassHeapStats* stats = PreliminaryStatsAt(cid);
@@ -286,6 +296,11 @@
   void UpdatePromoted();
 
   // Used by the generated code.
+  static intptr_t class_heap_stats_table_offset() {
+    return OFFSET_OF(ClassTable, class_heap_stats_table_);
+  }
+
+  // Used by the generated code.
   static intptr_t TableOffsetFor(intptr_t cid);
 
   // Used by the generated code.
diff --git a/runtime/vm/compiler/offsets_extractor.cc b/runtime/vm/compiler/offsets_extractor.cc
new file mode 100644
index 0000000..ec0c866
--- /dev/null
+++ b/runtime/vm/compiler/offsets_extractor.cc
@@ -0,0 +1,103 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include <iostream>
+
+#include "vm/compiler/runtime_api.h"
+#include "vm/compiler/runtime_offsets_list.h"
+#include "vm/dart_entry.h"
+#include "vm/longjump.h"
+#include "vm/native_arguments.h"
+#include "vm/native_entry.h"
+#include "vm/object.h"
+#include "vm/object_store.h"
+#include "vm/runtime_entry.h"
+#include "vm/symbols.h"
+#include "vm/timeline.h"
+
+#if defined(TARGET_ARCH_ARM)
+#define ARCH_DEF "defined(TARGET_ARCH_ARM)"
+#elif defined(TARGET_ARCH_X64)
+#define ARCH_DEF "defined(TARGET_ARCH_X64)"
+#elif defined(TARGET_ARCH_IA32)
+#define ARCH_DEF "defined(TARGET_ARCH_IA32)"
+#elif defined(TARGET_ARCH_ARM64)
+#define ARCH_DEF "defined(TARGET_ARCH_ARM64)"
+#elif defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_32_BIT)
+#define ARCH_DEF "defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_32_BIT)"
+#elif defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_64_BIT)
+#define ARCH_DEF "defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_64_BIT)"
+#else
+#error Unknown architecture
+#endif
+
+namespace dart {
+
+void Assert::Fail(const char* format, ...) {
+  abort();
+}
+
+class OffsetsExtractor : public AllStatic {
+ public:
+  static void DumpOffsets() {
+#define PRINT_FIELD_OFFSET(Class, Name)                                        \
+  std::cout << "static constexpr dart::word " #Class "_" #Name " = "           \
+            << Class::Name() << ";\n";
+
+#define PRINT_ARRAY_LAYOUT(Class, Name)                                        \
+  std::cout << "static constexpr dart::word " #Class                           \
+               "_elements_start_offset = "                                     \
+            << Class::ArrayLayout::elements_start_offset() << ";\n";           \
+  std::cout << "static constexpr dart::word " #Class "_element_size = "        \
+            << Class::ArrayLayout::kElementSize << ";\n";
+
+#define PRINT_ARRAY_STRUCTFIELD_OFFSET(Class, Name, ElementOffsetName,         \
+                                       FieldOffset)
+
+#define PRINT_SIZEOF(Class, Name, What)                                        \
+  std::cout << "static constexpr dart::word " #Class "_" #Name " = "           \
+            << sizeof(What) << ";\n";
+
+#define PRINT_RANGE(Class, Name, Type, First, Last, Filter)                    \
+  {                                                                            \
+    auto filter = Filter;                                                      \
+    bool comma = false;                                                        \
+    std::cout << "static dart::word " #Class "_" #Name "[] = {";               \
+    for (intptr_t i = static_cast<intptr_t>(First);                            \
+         i <= static_cast<intptr_t>(Last); i++) {                              \
+      auto v = static_cast<Type>(i);                                           \
+      std::cout << (comma ? ", " : "") << (filter(v) ? Class::Name(v) : -1);   \
+      comma = true;                                                            \
+    }                                                                          \
+    std::cout << "};\n";                                                       \
+  }
+
+#define PRINT_CONSTANT(Class, Name)                                            \
+  std::cout << "static constexpr dart::word " #Class "_" #Name " = "           \
+            << Class::Name << ";\n";
+
+#define PRECOMP_NO_CHECK(Code) Code
+
+    OFFSETS_LIST(PRINT_FIELD_OFFSET, PRINT_ARRAY_LAYOUT,
+                 PRINT_ARRAY_STRUCTFIELD_OFFSET, PRINT_SIZEOF, PRINT_RANGE,
+                 PRINT_CONSTANT, PRECOMP_NO_CHECK)
+
+#undef PRINT_FIELD_OFFSET
+#undef PRINT_ARRAY_LAYOUT
+#undef PRINT_ARRAY_STRUCTFIELD_OFFSET
+#undef PRINT_SIZEOF
+#undef PRINT_RANGE
+#undef PRINT_CONSTANT
+#undef PRECOMP_NO_CHECK
+  }
+};
+
+}  // namespace dart
+
+int main(int argc, char* argv[]) {
+  std::cout << "#if " << ARCH_DEF << std::endl;
+  dart::OffsetsExtractor::DumpOffsets();
+  std::cout << "#endif  // " << ARCH_DEF << std::endl;
+  return 0;
+}
diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc
index 5c9e852..c5a4a53 100644
--- a/runtime/vm/compiler/runtime_api.cc
+++ b/runtime/vm/compiler/runtime_api.cc
@@ -728,7 +728,8 @@
 }
 #endif  // !defined(PRODUCT)
 
-const word ClassTable::kSizeOfClassPairLog2 = dart::kSizeOfClassPairLog2;
+const word ClassTable::kSizeOfClassPairLog2 =
+    dart::ClassTable::kSizeOfClassPairLog2;
 
 const intptr_t Instructions::kPolymorphicEntryOffset =
     dart::Instructions::kPolymorphicEntryOffset;
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
new file mode 100644
index 0000000..4540195
--- /dev/null
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -0,0 +1,1343 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+#ifndef RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_
+#define RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_
+
+#include "platform/globals.h"
+
+// The constants below correspond to the macros in runtime_offsets_list.h.
+
+// This file was generated by run_offsets_extractor.sh. It's checked in, rather
+// than being generated as part of the build, because simarm_x64 needs 32-bit
+// arm offsets, but is built on a 64-bit machine and offsets_extractor only
+// extracts offsets for the host architecture. This file needs to be regenerated
+// when the offsets change, which is usually detected by CheckOffsets() in
+// dart.cc.
+
+#if defined(TARGET_ARCH_ARM)
+static constexpr dart::word ObjectPool_elements_start_offset = 8;
+static constexpr dart::word ObjectPool_element_size = 4;
+static constexpr dart::word Array_kMaxElements = 268435455;
+static constexpr dart::word Array_kMaxNewSpaceElements = 65533;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 3;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 20;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 0;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 9;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 536870911;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 16;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 24;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 8;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 20;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 12;
+static constexpr dart::word Array_data_offset = 12;
+static constexpr dart::word Array_length_offset = 8;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 4;
+static constexpr dart::word Class_declaration_type_offset = 56;
+static constexpr dart::word Class_num_type_arguments_offset = 102;
+static constexpr dart::word Class_super_type_offset = 44;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    92;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    48;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 52;
+static constexpr dart::word ClassHeapStats_state_offset = 160;
+static constexpr dart::word ClassTable_table_offset = 8;
+static constexpr dart::word Closure_context_offset = 20;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 12;
+static constexpr dart::word Closure_function_offset = 16;
+static constexpr dart::word Closure_function_type_arguments_offset = 8;
+static constexpr dart::word Closure_hash_offset = 24;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 4;
+static constexpr dart::word Code_object_pool_offset = 20;
+static constexpr dart::word Code_saved_instructions_offset = 24;
+static constexpr dart::word Code_owner_offset = 28;
+static constexpr dart::word Context_num_variables_offset = 4;
+static constexpr dart::word Context_parent_offset = 8;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 12;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 12;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 48;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    56;
+static constexpr dart::word Field_guarded_list_length_offset = 28;
+static constexpr dart::word Field_is_nullable_offset = 50;
+static constexpr dart::word Field_static_value_offset = 16;
+static constexpr dart::word Field_kind_bits_offset = 58;
+static constexpr dart::word Function_code_offset = 44;
+static constexpr dart::word Function_entry_point_offset = 4;
+static constexpr dart::word Function_unchecked_entry_point_offset = 8;
+static constexpr dart::word Function_usage_counter_offset = 76;
+static constexpr dart::word GrowableObjectArray_data_offset = 12;
+static constexpr dart::word GrowableObjectArray_length_offset = 8;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 4;
+static constexpr dart::word HeapPage_card_table_offset = 20;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 12;
+static constexpr dart::word ICData_entries_offset = 4;
+static constexpr dart::word ICData_owner_offset = 20;
+static constexpr dart::word ICData_state_bits_offset = 28;
+static constexpr dart::word ICData_receivers_static_type_offset = 16;
+static constexpr dart::word Isolate_class_table_offset = 24;
+static constexpr dart::word Isolate_current_tag_offset = 8;
+static constexpr dart::word Isolate_default_tag_offset = 12;
+static constexpr dart::word Isolate_ic_miss_code_offset = 16;
+static constexpr dart::word Isolate_object_store_offset = 20;
+static constexpr dart::word Isolate_single_step_offset = 44;
+static constexpr dart::word Isolate_user_tag_offset = 4;
+static constexpr dart::word LinkedHashMap_data_offset = 16;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 24;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 12;
+static constexpr dart::word LinkedHashMap_index_offset = 8;
+static constexpr dart::word LinkedHashMap_used_data_offset = 20;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 8;
+static constexpr dart::word MarkingStackBlock_top_offset = 4;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 16;
+static constexpr dart::word MegamorphicCache_buckets_offset = 4;
+static constexpr dart::word MegamorphicCache_mask_offset = 8;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 4;
+static constexpr dart::word NativeArguments_argv_offset = 8;
+static constexpr dart::word NativeArguments_retval_offset = 12;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 64;
+static constexpr dart::word ObjectStore_int_type_offset = 32;
+static constexpr dart::word ObjectStore_string_type_offset = 80;
+static constexpr dart::word OneByteString_data_offset = 12;
+static constexpr dart::word Pointer_c_memory_address_offset = 8;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 8;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 12;
+static constexpr dart::word SingleTargetCache_target_offset = 4;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 14;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 8;
+static constexpr dart::word StoreBufferBlock_top_offset = 4;
+static constexpr dart::word String_hash_offset = 8;
+static constexpr dart::word String_length_offset = 4;
+static constexpr dart::word SubtypeTestCache_cache_offset = 4;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 284;
+static constexpr dart::word Thread_active_exception_offset = 612;
+static constexpr dart::word Thread_active_stacktrace_offset = 616;
+static constexpr dart::word Thread_array_write_barrier_code_offset = 112;
+static constexpr dart::word Thread_array_write_barrier_entry_point_offset = 196;
+static constexpr dart::word Thread_async_stack_trace_offset = 84;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 244;
+static constexpr dart::word Thread_bool_false_offset = 104;
+static constexpr dart::word Thread_bool_true_offset = 100;
+static constexpr dart::word Thread_call_to_runtime_entry_point_offset = 200;
+static constexpr dart::word Thread_call_to_runtime_stub_offset = 132;
+static constexpr dart::word Thread_dart_stream_offset = 644;
+static constexpr dart::word Thread_deoptimize_entry_offset = 232;
+static constexpr dart::word Thread_deoptimize_stub_offset = 164;
+static constexpr dart::word Thread_double_abs_address_offset = 264;
+static constexpr dart::word Thread_double_negate_address_offset = 260;
+static constexpr dart::word Thread_end_offset = 60;
+static constexpr dart::word Thread_enter_safepoint_stub_offset = 184;
+static constexpr dart::word Thread_execution_state_offset = 628;
+static constexpr dart::word Thread_exit_safepoint_stub_offset = 188;
+static constexpr dart::word Thread_fix_allocation_stub_code_offset = 120;
+static constexpr dart::word Thread_fix_callers_target_code_offset = 116;
+static constexpr dart::word Thread_float_absolute_address_offset = 276;
+static constexpr dart::word Thread_float_negate_address_offset = 272;
+static constexpr dart::word Thread_float_not_address_offset = 268;
+static constexpr dart::word Thread_float_zerow_address_offset = 280;
+static constexpr dart::word Thread_global_object_pool_offset = 620;
+static constexpr dart::word Thread_ic_lookup_through_code_stub_offset = 156;
+static constexpr dart::word Thread_interpret_call_entry_point_offset = 248;
+static constexpr dart::word Thread_invoke_dart_code_from_bytecode_stub_offset =
+    128;
+static constexpr dart::word Thread_invoke_dart_code_stub_offset = 124;
+static constexpr dart::word Thread_isolate_offset = 48;
+static constexpr dart::word Thread_lazy_deopt_from_return_stub_offset = 168;
+static constexpr dart::word Thread_lazy_deopt_from_throw_stub_offset = 172;
+static constexpr dart::word Thread_lazy_specialize_type_test_stub_offset = 180;
+static constexpr dart::word Thread_marking_stack_block_offset = 72;
+static constexpr dart::word Thread_megamorphic_call_checked_entry_offset = 220;
+static constexpr dart::word Thread_monomorphic_miss_entry_offset = 224;
+static constexpr dart::word Thread_monomorphic_miss_stub_offset = 152;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    240;
+static constexpr dart::word
+    Thread_null_error_shared_with_fpu_regs_entry_point_offset = 208;
+static constexpr dart::word Thread_null_error_shared_with_fpu_regs_stub_offset =
+    140;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_entry_point_offset = 204;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 136;
+static constexpr dart::word Thread_object_null_offset = 96;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 252;
+static constexpr dart::word Thread_resume_pc_offset = 624;
+static constexpr dart::word Thread_safepoint_state_offset = 632;
+static constexpr dart::word Thread_slow_type_test_stub_offset = 176;
+static constexpr dart::word Thread_stack_limit_offset = 36;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 40;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 216;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 148;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 212;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 144;
+static constexpr dart::word Thread_store_buffer_block_offset = 68;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 64;
+static constexpr dart::word Thread_top_offset = 56;
+static constexpr dart::word Thread_top_resource_offset = 24;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 88;
+static constexpr dart::word Thread_vm_tag_offset = 80;
+static constexpr dart::word Thread_write_barrier_code_offset = 108;
+static constexpr dart::word Thread_write_barrier_entry_point_offset = 192;
+static constexpr dart::word Thread_write_barrier_mask_offset = 44;
+static constexpr dart::word Thread_verify_callback_entry_offset = 236;
+static constexpr dart::word Thread_callback_code_offset = 636;
+static constexpr dart::word TimelineStream_enabled_offset = 8;
+static constexpr dart::word TwoByteString_data_offset = 12;
+static constexpr dart::word Type_arguments_offset = 16;
+static constexpr dart::word Type_hash_offset = 20;
+static constexpr dart::word Type_signature_offset = 24;
+static constexpr dart::word Type_type_class_id_offset = 12;
+static constexpr dart::word Type_type_state_offset = 32;
+static constexpr dart::word TypeArguments_instantiations_offset = 4;
+static constexpr dart::word TypeRef_type_offset = 12;
+static constexpr dart::word TypedDataBase_data_field_offset = 4;
+static constexpr dart::word TypedDataBase_length_offset = 8;
+static constexpr dart::word TypedDataView_data_offset = 12;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 16;
+static constexpr dart::word TypedData_data_offset = 12;
+static constexpr dart::word UserTag_tag_offset = 8;
+static constexpr dart::word Array_elements_start_offset = 12;
+static constexpr dart::word Array_element_size = 4;
+static constexpr dart::word TypeArguments_elements_start_offset = 16;
+static constexpr dart::word TypeArguments_element_size = 4;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 168;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 16;
+static dart::word Code_entry_point_offset[] = {4, 12, 8, 16};
+static dart::word Code_function_entry_point_offset[] = {4, 8};
+static dart::word Thread_write_barrier_wrappers_thread_offset[] = {
+    576, 580, 584, 588, 592, -1, 596, 600, 604, 608, -1, -1, -1, -1, -1, -1};
+static constexpr dart::word Array_header_size = 12;
+static constexpr dart::word Context_header_size = 12;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 16;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 16;
+static constexpr dart::word String_InstanceSize = 12;
+static constexpr dart::word TypedData_InstanceSize = 12;
+#endif  // defined(TARGET_ARCH_ARM)
+
+#if defined(TARGET_ARCH_X64)
+static constexpr dart::word ObjectPool_elements_start_offset = 16;
+static constexpr dart::word ObjectPool_element_size = 8;
+static constexpr dart::word Array_kMaxElements = 576460752303423487;
+static constexpr dart::word Array_kMaxNewSpaceElements = 32765;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 4;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 32;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 8;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 10;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 2305843009213693951;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 32;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 48;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 16;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 40;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 24;
+static constexpr dart::word Array_data_offset = 24;
+static constexpr dart::word Array_length_offset = 16;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 8;
+static constexpr dart::word Class_declaration_type_offset = 112;
+static constexpr dart::word Class_num_type_arguments_offset = 186;
+static constexpr dart::word Class_super_type_offset = 88;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    176;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    96;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 104;
+static constexpr dart::word ClassHeapStats_state_offset = 272;
+static constexpr dart::word ClassTable_table_offset = 16;
+static constexpr dart::word Closure_context_offset = 40;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 24;
+static constexpr dart::word Closure_function_offset = 32;
+static constexpr dart::word Closure_function_type_arguments_offset = 16;
+static constexpr dart::word Closure_hash_offset = 48;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 8;
+static constexpr dart::word Code_object_pool_offset = 40;
+static constexpr dart::word Code_saved_instructions_offset = 48;
+static constexpr dart::word Code_owner_offset = 56;
+static constexpr dart::word Context_num_variables_offset = 8;
+static constexpr dart::word Context_parent_offset = 16;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 16;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 16;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 88;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    96;
+static constexpr dart::word Field_guarded_list_length_offset = 56;
+static constexpr dart::word Field_is_nullable_offset = 90;
+static constexpr dart::word Field_static_value_offset = 32;
+static constexpr dart::word Field_kind_bits_offset = 98;
+static constexpr dart::word Function_code_offset = 88;
+static constexpr dart::word Function_entry_point_offset = 8;
+static constexpr dart::word Function_unchecked_entry_point_offset = 16;
+static constexpr dart::word Function_usage_counter_offset = 132;
+static constexpr dart::word GrowableObjectArray_data_offset = 24;
+static constexpr dart::word GrowableObjectArray_length_offset = 16;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 8;
+static constexpr dart::word HeapPage_card_table_offset = 40;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 24;
+static constexpr dart::word ICData_entries_offset = 8;
+static constexpr dart::word ICData_owner_offset = 40;
+static constexpr dart::word ICData_state_bits_offset = 52;
+static constexpr dart::word ICData_receivers_static_type_offset = 32;
+static constexpr dart::word Isolate_class_table_offset = 48;
+static constexpr dart::word Isolate_current_tag_offset = 16;
+static constexpr dart::word Isolate_default_tag_offset = 24;
+static constexpr dart::word Isolate_ic_miss_code_offset = 32;
+static constexpr dart::word Isolate_object_store_offset = 40;
+static constexpr dart::word Isolate_single_step_offset = 88;
+static constexpr dart::word Isolate_user_tag_offset = 8;
+static constexpr dart::word LinkedHashMap_data_offset = 32;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 48;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 24;
+static constexpr dart::word LinkedHashMap_index_offset = 16;
+static constexpr dart::word LinkedHashMap_used_data_offset = 40;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 16;
+static constexpr dart::word MarkingStackBlock_top_offset = 8;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 32;
+static constexpr dart::word MegamorphicCache_buckets_offset = 8;
+static constexpr dart::word MegamorphicCache_mask_offset = 16;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 8;
+static constexpr dart::word NativeArguments_argv_offset = 16;
+static constexpr dart::word NativeArguments_retval_offset = 24;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 128;
+static constexpr dart::word ObjectStore_int_type_offset = 64;
+static constexpr dart::word ObjectStore_string_type_offset = 160;
+static constexpr dart::word OneByteString_data_offset = 16;
+static constexpr dart::word Pointer_c_memory_address_offset = 16;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 16;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 24;
+static constexpr dart::word SingleTargetCache_target_offset = 8;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 26;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 16;
+static constexpr dart::word StoreBufferBlock_top_offset = 8;
+static constexpr dart::word String_hash_offset = 4;
+static constexpr dart::word String_length_offset = 8;
+static constexpr dart::word SubtypeTestCache_cache_offset = 8;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 560;
+static constexpr dart::word Thread_active_exception_offset = 1232;
+static constexpr dart::word Thread_active_stacktrace_offset = 1240;
+static constexpr dart::word Thread_array_write_barrier_code_offset = 216;
+static constexpr dart::word Thread_array_write_barrier_entry_point_offset = 384;
+static constexpr dart::word Thread_async_stack_trace_offset = 168;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 480;
+static constexpr dart::word Thread_bool_false_offset = 200;
+static constexpr dart::word Thread_bool_true_offset = 192;
+static constexpr dart::word Thread_call_to_runtime_entry_point_offset = 392;
+static constexpr dart::word Thread_call_to_runtime_stub_offset = 256;
+static constexpr dart::word Thread_dart_stream_offset = 1296;
+static constexpr dart::word Thread_deoptimize_entry_offset = 456;
+static constexpr dart::word Thread_deoptimize_stub_offset = 320;
+static constexpr dart::word Thread_double_abs_address_offset = 520;
+static constexpr dart::word Thread_double_negate_address_offset = 512;
+static constexpr dart::word Thread_end_offset = 120;
+static constexpr dart::word Thread_enter_safepoint_stub_offset = 360;
+static constexpr dart::word Thread_execution_state_offset = 1264;
+static constexpr dart::word Thread_exit_safepoint_stub_offset = 368;
+static constexpr dart::word Thread_fix_allocation_stub_code_offset = 232;
+static constexpr dart::word Thread_fix_callers_target_code_offset = 224;
+static constexpr dart::word Thread_float_absolute_address_offset = 544;
+static constexpr dart::word Thread_float_negate_address_offset = 536;
+static constexpr dart::word Thread_float_not_address_offset = 528;
+static constexpr dart::word Thread_float_zerow_address_offset = 552;
+static constexpr dart::word Thread_global_object_pool_offset = 1248;
+static constexpr dart::word Thread_ic_lookup_through_code_stub_offset = 304;
+static constexpr dart::word Thread_interpret_call_entry_point_offset = 488;
+static constexpr dart::word Thread_invoke_dart_code_from_bytecode_stub_offset =
+    248;
+static constexpr dart::word Thread_invoke_dart_code_stub_offset = 240;
+static constexpr dart::word Thread_isolate_offset = 96;
+static constexpr dart::word Thread_lazy_deopt_from_return_stub_offset = 328;
+static constexpr dart::word Thread_lazy_deopt_from_throw_stub_offset = 336;
+static constexpr dart::word Thread_lazy_specialize_type_test_stub_offset = 352;
+static constexpr dart::word Thread_marking_stack_block_offset = 144;
+static constexpr dart::word Thread_megamorphic_call_checked_entry_offset = 432;
+static constexpr dart::word Thread_monomorphic_miss_entry_offset = 440;
+static constexpr dart::word Thread_monomorphic_miss_stub_offset = 296;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    472;
+static constexpr dart::word
+    Thread_null_error_shared_with_fpu_regs_entry_point_offset = 408;
+static constexpr dart::word Thread_null_error_shared_with_fpu_regs_stub_offset =
+    272;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_entry_point_offset = 400;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 264;
+static constexpr dart::word Thread_object_null_offset = 184;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 496;
+static constexpr dart::word Thread_resume_pc_offset = 1256;
+static constexpr dart::word Thread_safepoint_state_offset = 1272;
+static constexpr dart::word Thread_slow_type_test_stub_offset = 344;
+static constexpr dart::word Thread_stack_limit_offset = 72;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 80;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 424;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 288;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 416;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 280;
+static constexpr dart::word Thread_store_buffer_block_offset = 136;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 128;
+static constexpr dart::word Thread_top_offset = 112;
+static constexpr dart::word Thread_top_resource_offset = 48;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 176;
+static constexpr dart::word Thread_vm_tag_offset = 160;
+static constexpr dart::word Thread_write_barrier_code_offset = 208;
+static constexpr dart::word Thread_write_barrier_entry_point_offset = 376;
+static constexpr dart::word Thread_write_barrier_mask_offset = 88;
+static constexpr dart::word Thread_verify_callback_entry_offset = 464;
+static constexpr dart::word Thread_callback_code_offset = 1280;
+static constexpr dart::word TimelineStream_enabled_offset = 16;
+static constexpr dart::word TwoByteString_data_offset = 16;
+static constexpr dart::word Type_arguments_offset = 32;
+static constexpr dart::word Type_hash_offset = 40;
+static constexpr dart::word Type_signature_offset = 48;
+static constexpr dart::word Type_type_class_id_offset = 24;
+static constexpr dart::word Type_type_state_offset = 60;
+static constexpr dart::word TypeArguments_instantiations_offset = 8;
+static constexpr dart::word TypeRef_type_offset = 24;
+static constexpr dart::word TypedDataBase_data_field_offset = 8;
+static constexpr dart::word TypedDataBase_length_offset = 16;
+static constexpr dart::word TypedDataView_data_offset = 24;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 32;
+static constexpr dart::word TypedData_data_offset = 24;
+static constexpr dart::word UserTag_tag_offset = 16;
+static constexpr dart::word Array_elements_start_offset = 24;
+static constexpr dart::word Array_element_size = 8;
+static constexpr dart::word TypeArguments_elements_start_offset = 32;
+static constexpr dart::word TypeArguments_element_size = 8;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 288;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 32;
+static dart::word Code_entry_point_offset[] = {8, 24, 16, 32};
+static dart::word Code_function_entry_point_offset[] = {8, 16};
+static dart::word Thread_write_barrier_wrappers_thread_offset[] = {
+    1144, 1152, 1160, 1168, -1,   -1,   1176, 1184,
+    1192, 1200, 1208, -1,   1216, 1224, -1,   -1};
+static constexpr dart::word Array_header_size = 24;
+static constexpr dart::word Context_header_size = 24;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 24;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 32;
+static constexpr dart::word String_InstanceSize = 16;
+static constexpr dart::word TypedData_InstanceSize = 24;
+#endif  // defined(TARGET_ARCH_X64)
+
+#if defined(TARGET_ARCH_IA32)
+static constexpr dart::word ObjectPool_elements_start_offset = 8;
+static constexpr dart::word ObjectPool_element_size = 4;
+static constexpr dart::word Array_kMaxElements = 268435455;
+static constexpr dart::word Array_kMaxNewSpaceElements = 65533;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 3;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 0;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 0;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 9;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 536870911;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 16;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 24;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 8;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 20;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 12;
+static constexpr dart::word Array_data_offset = 12;
+static constexpr dart::word Array_length_offset = 8;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 4;
+static constexpr dart::word Class_declaration_type_offset = 56;
+static constexpr dart::word Class_num_type_arguments_offset = 102;
+static constexpr dart::word Class_super_type_offset = 44;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    92;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    48;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 52;
+static constexpr dart::word ClassHeapStats_state_offset = 160;
+static constexpr dart::word ClassTable_table_offset = 8;
+static constexpr dart::word Closure_context_offset = 20;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 12;
+static constexpr dart::word Closure_function_offset = 16;
+static constexpr dart::word Closure_function_type_arguments_offset = 8;
+static constexpr dart::word Closure_hash_offset = 24;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 4;
+static constexpr dart::word Code_object_pool_offset = 20;
+static constexpr dart::word Code_saved_instructions_offset = 24;
+static constexpr dart::word Code_owner_offset = 28;
+static constexpr dart::word Context_num_variables_offset = 4;
+static constexpr dart::word Context_parent_offset = 8;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 12;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 12;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 48;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    56;
+static constexpr dart::word Field_guarded_list_length_offset = 28;
+static constexpr dart::word Field_is_nullable_offset = 50;
+static constexpr dart::word Field_static_value_offset = 16;
+static constexpr dart::word Field_kind_bits_offset = 58;
+static constexpr dart::word Function_code_offset = 44;
+static constexpr dart::word Function_entry_point_offset = 4;
+static constexpr dart::word Function_unchecked_entry_point_offset = 8;
+static constexpr dart::word Function_usage_counter_offset = 76;
+static constexpr dart::word GrowableObjectArray_data_offset = 12;
+static constexpr dart::word GrowableObjectArray_length_offset = 8;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 4;
+static constexpr dart::word HeapPage_card_table_offset = 20;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 12;
+static constexpr dart::word ICData_entries_offset = 4;
+static constexpr dart::word ICData_owner_offset = 20;
+static constexpr dart::word ICData_state_bits_offset = 28;
+static constexpr dart::word ICData_receivers_static_type_offset = 16;
+static constexpr dart::word Isolate_class_table_offset = 24;
+static constexpr dart::word Isolate_current_tag_offset = 8;
+static constexpr dart::word Isolate_default_tag_offset = 12;
+static constexpr dart::word Isolate_ic_miss_code_offset = 16;
+static constexpr dart::word Isolate_object_store_offset = 20;
+static constexpr dart::word Isolate_single_step_offset = 44;
+static constexpr dart::word Isolate_user_tag_offset = 4;
+static constexpr dart::word LinkedHashMap_data_offset = 16;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 24;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 12;
+static constexpr dart::word LinkedHashMap_index_offset = 8;
+static constexpr dart::word LinkedHashMap_used_data_offset = 20;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 8;
+static constexpr dart::word MarkingStackBlock_top_offset = 4;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 16;
+static constexpr dart::word MegamorphicCache_buckets_offset = 4;
+static constexpr dart::word MegamorphicCache_mask_offset = 8;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 4;
+static constexpr dart::word NativeArguments_argv_offset = 8;
+static constexpr dart::word NativeArguments_retval_offset = 12;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 64;
+static constexpr dart::word ObjectStore_int_type_offset = 32;
+static constexpr dart::word ObjectStore_string_type_offset = 80;
+static constexpr dart::word OneByteString_data_offset = 12;
+static constexpr dart::word Pointer_c_memory_address_offset = 8;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 8;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 12;
+static constexpr dart::word SingleTargetCache_target_offset = 4;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 14;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 8;
+static constexpr dart::word StoreBufferBlock_top_offset = 4;
+static constexpr dart::word String_hash_offset = 8;
+static constexpr dart::word String_length_offset = 4;
+static constexpr dart::word SubtypeTestCache_cache_offset = 4;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 284;
+static constexpr dart::word Thread_active_exception_offset = 576;
+static constexpr dart::word Thread_active_stacktrace_offset = 580;
+static constexpr dart::word Thread_array_write_barrier_code_offset = 112;
+static constexpr dart::word Thread_array_write_barrier_entry_point_offset = 196;
+static constexpr dart::word Thread_async_stack_trace_offset = 84;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 244;
+static constexpr dart::word Thread_bool_false_offset = 104;
+static constexpr dart::word Thread_bool_true_offset = 100;
+static constexpr dart::word Thread_call_to_runtime_entry_point_offset = 200;
+static constexpr dart::word Thread_call_to_runtime_stub_offset = 132;
+static constexpr dart::word Thread_dart_stream_offset = 608;
+static constexpr dart::word Thread_deoptimize_entry_offset = 232;
+static constexpr dart::word Thread_deoptimize_stub_offset = 164;
+static constexpr dart::word Thread_double_abs_address_offset = 264;
+static constexpr dart::word Thread_double_negate_address_offset = 260;
+static constexpr dart::word Thread_end_offset = 60;
+static constexpr dart::word Thread_enter_safepoint_stub_offset = 184;
+static constexpr dart::word Thread_execution_state_offset = 592;
+static constexpr dart::word Thread_exit_safepoint_stub_offset = 188;
+static constexpr dart::word Thread_fix_allocation_stub_code_offset = 120;
+static constexpr dart::word Thread_fix_callers_target_code_offset = 116;
+static constexpr dart::word Thread_float_absolute_address_offset = 276;
+static constexpr dart::word Thread_float_negate_address_offset = 272;
+static constexpr dart::word Thread_float_not_address_offset = 268;
+static constexpr dart::word Thread_float_zerow_address_offset = 280;
+static constexpr dart::word Thread_global_object_pool_offset = 584;
+static constexpr dart::word Thread_ic_lookup_through_code_stub_offset = 156;
+static constexpr dart::word Thread_interpret_call_entry_point_offset = 248;
+static constexpr dart::word Thread_invoke_dart_code_from_bytecode_stub_offset =
+    128;
+static constexpr dart::word Thread_invoke_dart_code_stub_offset = 124;
+static constexpr dart::word Thread_isolate_offset = 48;
+static constexpr dart::word Thread_lazy_deopt_from_return_stub_offset = 168;
+static constexpr dart::word Thread_lazy_deopt_from_throw_stub_offset = 172;
+static constexpr dart::word Thread_lazy_specialize_type_test_stub_offset = 180;
+static constexpr dart::word Thread_marking_stack_block_offset = 72;
+static constexpr dart::word Thread_megamorphic_call_checked_entry_offset = 220;
+static constexpr dart::word Thread_monomorphic_miss_entry_offset = 224;
+static constexpr dart::word Thread_monomorphic_miss_stub_offset = 152;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    240;
+static constexpr dart::word
+    Thread_null_error_shared_with_fpu_regs_entry_point_offset = 208;
+static constexpr dart::word Thread_null_error_shared_with_fpu_regs_stub_offset =
+    140;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_entry_point_offset = 204;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 136;
+static constexpr dart::word Thread_object_null_offset = 96;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 252;
+static constexpr dart::word Thread_resume_pc_offset = 588;
+static constexpr dart::word Thread_safepoint_state_offset = 596;
+static constexpr dart::word Thread_slow_type_test_stub_offset = 176;
+static constexpr dart::word Thread_stack_limit_offset = 36;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 40;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 216;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 148;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 212;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 144;
+static constexpr dart::word Thread_store_buffer_block_offset = 68;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 64;
+static constexpr dart::word Thread_top_offset = 56;
+static constexpr dart::word Thread_top_resource_offset = 24;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 88;
+static constexpr dart::word Thread_vm_tag_offset = 80;
+static constexpr dart::word Thread_write_barrier_code_offset = 108;
+static constexpr dart::word Thread_write_barrier_entry_point_offset = 192;
+static constexpr dart::word Thread_write_barrier_mask_offset = 44;
+static constexpr dart::word Thread_verify_callback_entry_offset = 236;
+static constexpr dart::word Thread_callback_code_offset = 600;
+static constexpr dart::word TimelineStream_enabled_offset = 8;
+static constexpr dart::word TwoByteString_data_offset = 12;
+static constexpr dart::word Type_arguments_offset = 16;
+static constexpr dart::word Type_hash_offset = 20;
+static constexpr dart::word Type_signature_offset = 24;
+static constexpr dart::word Type_type_class_id_offset = 12;
+static constexpr dart::word Type_type_state_offset = 32;
+static constexpr dart::word TypeArguments_instantiations_offset = 4;
+static constexpr dart::word TypeRef_type_offset = 12;
+static constexpr dart::word TypedDataBase_data_field_offset = 4;
+static constexpr dart::word TypedDataBase_length_offset = 8;
+static constexpr dart::word TypedDataView_data_offset = 12;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 16;
+static constexpr dart::word TypedData_data_offset = 12;
+static constexpr dart::word UserTag_tag_offset = 8;
+static constexpr dart::word Array_elements_start_offset = 12;
+static constexpr dart::word Array_element_size = 4;
+static constexpr dart::word TypeArguments_elements_start_offset = 16;
+static constexpr dart::word TypeArguments_element_size = 4;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 168;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 16;
+static dart::word Code_entry_point_offset[] = {4, 12, 8, 16};
+static dart::word Code_function_entry_point_offset[] = {4, 8};
+static constexpr dart::word Array_header_size = 12;
+static constexpr dart::word Context_header_size = 12;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 16;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 16;
+static constexpr dart::word String_InstanceSize = 12;
+static constexpr dart::word TypedData_InstanceSize = 12;
+#endif  // defined(TARGET_ARCH_IA32)
+
+#if defined(TARGET_ARCH_ARM64)
+static constexpr dart::word ObjectPool_elements_start_offset = 16;
+static constexpr dart::word ObjectPool_element_size = 8;
+static constexpr dart::word Array_kMaxElements = 576460752303423487;
+static constexpr dart::word Array_kMaxNewSpaceElements = 32765;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 4;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 28;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 8;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 10;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 2305843009213693951;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 32;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 48;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 16;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 40;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 24;
+static constexpr dart::word Array_data_offset = 24;
+static constexpr dart::word Array_length_offset = 16;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 8;
+static constexpr dart::word Class_declaration_type_offset = 112;
+static constexpr dart::word Class_num_type_arguments_offset = 186;
+static constexpr dart::word Class_super_type_offset = 88;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    176;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    96;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 104;
+static constexpr dart::word ClassHeapStats_state_offset = 272;
+static constexpr dart::word ClassTable_table_offset = 16;
+static constexpr dart::word Closure_context_offset = 40;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 24;
+static constexpr dart::word Closure_function_offset = 32;
+static constexpr dart::word Closure_function_type_arguments_offset = 16;
+static constexpr dart::word Closure_hash_offset = 48;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 8;
+static constexpr dart::word Code_object_pool_offset = 40;
+static constexpr dart::word Code_saved_instructions_offset = 48;
+static constexpr dart::word Code_owner_offset = 56;
+static constexpr dart::word Context_num_variables_offset = 8;
+static constexpr dart::word Context_parent_offset = 16;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 16;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 16;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 88;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    96;
+static constexpr dart::word Field_guarded_list_length_offset = 56;
+static constexpr dart::word Field_is_nullable_offset = 90;
+static constexpr dart::word Field_static_value_offset = 32;
+static constexpr dart::word Field_kind_bits_offset = 98;
+static constexpr dart::word Function_code_offset = 88;
+static constexpr dart::word Function_entry_point_offset = 8;
+static constexpr dart::word Function_unchecked_entry_point_offset = 16;
+static constexpr dart::word Function_usage_counter_offset = 132;
+static constexpr dart::word GrowableObjectArray_data_offset = 24;
+static constexpr dart::word GrowableObjectArray_length_offset = 16;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 8;
+static constexpr dart::word HeapPage_card_table_offset = 40;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 24;
+static constexpr dart::word ICData_entries_offset = 8;
+static constexpr dart::word ICData_owner_offset = 40;
+static constexpr dart::word ICData_state_bits_offset = 52;
+static constexpr dart::word ICData_receivers_static_type_offset = 32;
+static constexpr dart::word Isolate_class_table_offset = 48;
+static constexpr dart::word Isolate_current_tag_offset = 16;
+static constexpr dart::word Isolate_default_tag_offset = 24;
+static constexpr dart::word Isolate_ic_miss_code_offset = 32;
+static constexpr dart::word Isolate_object_store_offset = 40;
+static constexpr dart::word Isolate_single_step_offset = 88;
+static constexpr dart::word Isolate_user_tag_offset = 8;
+static constexpr dart::word LinkedHashMap_data_offset = 32;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 48;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 24;
+static constexpr dart::word LinkedHashMap_index_offset = 16;
+static constexpr dart::word LinkedHashMap_used_data_offset = 40;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 16;
+static constexpr dart::word MarkingStackBlock_top_offset = 8;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 32;
+static constexpr dart::word MegamorphicCache_buckets_offset = 8;
+static constexpr dart::word MegamorphicCache_mask_offset = 16;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 8;
+static constexpr dart::word NativeArguments_argv_offset = 16;
+static constexpr dart::word NativeArguments_retval_offset = 24;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 128;
+static constexpr dart::word ObjectStore_int_type_offset = 64;
+static constexpr dart::word ObjectStore_string_type_offset = 160;
+static constexpr dart::word OneByteString_data_offset = 16;
+static constexpr dart::word Pointer_c_memory_address_offset = 16;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 16;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 24;
+static constexpr dart::word SingleTargetCache_target_offset = 8;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 26;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 16;
+static constexpr dart::word StoreBufferBlock_top_offset = 8;
+static constexpr dart::word String_hash_offset = 4;
+static constexpr dart::word String_length_offset = 8;
+static constexpr dart::word SubtypeTestCache_cache_offset = 8;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 560;
+static constexpr dart::word Thread_active_exception_offset = 1320;
+static constexpr dart::word Thread_active_stacktrace_offset = 1328;
+static constexpr dart::word Thread_array_write_barrier_code_offset = 216;
+static constexpr dart::word Thread_array_write_barrier_entry_point_offset = 384;
+static constexpr dart::word Thread_async_stack_trace_offset = 168;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 480;
+static constexpr dart::word Thread_bool_false_offset = 200;
+static constexpr dart::word Thread_bool_true_offset = 192;
+static constexpr dart::word Thread_call_to_runtime_entry_point_offset = 392;
+static constexpr dart::word Thread_call_to_runtime_stub_offset = 256;
+static constexpr dart::word Thread_dart_stream_offset = 1384;
+static constexpr dart::word Thread_deoptimize_entry_offset = 456;
+static constexpr dart::word Thread_deoptimize_stub_offset = 320;
+static constexpr dart::word Thread_double_abs_address_offset = 520;
+static constexpr dart::word Thread_double_negate_address_offset = 512;
+static constexpr dart::word Thread_end_offset = 120;
+static constexpr dart::word Thread_enter_safepoint_stub_offset = 360;
+static constexpr dart::word Thread_execution_state_offset = 1352;
+static constexpr dart::word Thread_exit_safepoint_stub_offset = 368;
+static constexpr dart::word Thread_fix_allocation_stub_code_offset = 232;
+static constexpr dart::word Thread_fix_callers_target_code_offset = 224;
+static constexpr dart::word Thread_float_absolute_address_offset = 544;
+static constexpr dart::word Thread_float_negate_address_offset = 536;
+static constexpr dart::word Thread_float_not_address_offset = 528;
+static constexpr dart::word Thread_float_zerow_address_offset = 552;
+static constexpr dart::word Thread_global_object_pool_offset = 1336;
+static constexpr dart::word Thread_ic_lookup_through_code_stub_offset = 304;
+static constexpr dart::word Thread_interpret_call_entry_point_offset = 488;
+static constexpr dart::word Thread_invoke_dart_code_from_bytecode_stub_offset =
+    248;
+static constexpr dart::word Thread_invoke_dart_code_stub_offset = 240;
+static constexpr dart::word Thread_isolate_offset = 96;
+static constexpr dart::word Thread_lazy_deopt_from_return_stub_offset = 328;
+static constexpr dart::word Thread_lazy_deopt_from_throw_stub_offset = 336;
+static constexpr dart::word Thread_lazy_specialize_type_test_stub_offset = 352;
+static constexpr dart::word Thread_marking_stack_block_offset = 144;
+static constexpr dart::word Thread_megamorphic_call_checked_entry_offset = 432;
+static constexpr dart::word Thread_monomorphic_miss_entry_offset = 440;
+static constexpr dart::word Thread_monomorphic_miss_stub_offset = 296;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    472;
+static constexpr dart::word
+    Thread_null_error_shared_with_fpu_regs_entry_point_offset = 408;
+static constexpr dart::word Thread_null_error_shared_with_fpu_regs_stub_offset =
+    272;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_entry_point_offset = 400;
+static constexpr dart::word
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 264;
+static constexpr dart::word Thread_object_null_offset = 184;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 496;
+static constexpr dart::word Thread_resume_pc_offset = 1344;
+static constexpr dart::word Thread_safepoint_state_offset = 1360;
+static constexpr dart::word Thread_slow_type_test_stub_offset = 344;
+static constexpr dart::word Thread_stack_limit_offset = 72;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 80;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 424;
+static constexpr dart::word
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 288;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 416;
+static constexpr dart::word
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 280;
+static constexpr dart::word Thread_store_buffer_block_offset = 136;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 128;
+static constexpr dart::word Thread_top_offset = 112;
+static constexpr dart::word Thread_top_resource_offset = 48;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 176;
+static constexpr dart::word Thread_vm_tag_offset = 160;
+static constexpr dart::word Thread_write_barrier_code_offset = 208;
+static constexpr dart::word Thread_write_barrier_entry_point_offset = 376;
+static constexpr dart::word Thread_write_barrier_mask_offset = 88;
+static constexpr dart::word Thread_verify_callback_entry_offset = 464;
+static constexpr dart::word Thread_callback_code_offset = 1368;
+static constexpr dart::word TimelineStream_enabled_offset = 16;
+static constexpr dart::word TwoByteString_data_offset = 16;
+static constexpr dart::word Type_arguments_offset = 32;
+static constexpr dart::word Type_hash_offset = 40;
+static constexpr dart::word Type_signature_offset = 48;
+static constexpr dart::word Type_type_class_id_offset = 24;
+static constexpr dart::word Type_type_state_offset = 60;
+static constexpr dart::word TypeArguments_instantiations_offset = 8;
+static constexpr dart::word TypeRef_type_offset = 24;
+static constexpr dart::word TypedDataBase_data_field_offset = 8;
+static constexpr dart::word TypedDataBase_length_offset = 16;
+static constexpr dart::word TypedDataView_data_offset = 24;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 32;
+static constexpr dart::word TypedData_data_offset = 24;
+static constexpr dart::word UserTag_tag_offset = 16;
+static constexpr dart::word Array_elements_start_offset = 24;
+static constexpr dart::word Array_element_size = 8;
+static constexpr dart::word TypeArguments_elements_start_offset = 32;
+static constexpr dart::word TypeArguments_element_size = 8;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 288;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 32;
+static dart::word Code_entry_point_offset[] = {8, 24, 16, 32};
+static dart::word Code_function_entry_point_offset[] = {8, 16};
+static dart::word Thread_write_barrier_wrappers_thread_offset[] = {
+    1144, 1152, 1160, 1168, 1176, 1184, 1192, 1200, 1208, 1216, 1224,
+    1232, 1240, 1248, 1256, -1,   -1,   -1,   -1,   1264, 1272, 1280,
+    1288, 1296, 1304, 1312, -1,   -1,   -1,   -1,   -1,   -1};
+static constexpr dart::word Array_header_size = 24;
+static constexpr dart::word Context_header_size = 24;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 24;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 32;
+static constexpr dart::word String_InstanceSize = 16;
+static constexpr dart::word TypedData_InstanceSize = 24;
+#endif  // defined(TARGET_ARCH_ARM64)
+
+#if defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_64_BIT)
+static constexpr dart::word ObjectPool_elements_start_offset = 16;
+static constexpr dart::word ObjectPool_element_size = 8;
+static constexpr dart::word Array_kMaxElements = 576460752303423487;
+static constexpr dart::word Array_kMaxNewSpaceElements = 32765;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 4;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 0;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 0;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 10;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 2305843009213693951;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 32;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 48;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 16;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 8;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 40;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 24;
+static constexpr dart::word Array_data_offset = 24;
+static constexpr dart::word Array_length_offset = 16;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 8;
+static constexpr dart::word Class_declaration_type_offset = 112;
+static constexpr dart::word Class_num_type_arguments_offset = 186;
+static constexpr dart::word Class_super_type_offset = 88;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    176;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    96;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 104;
+static constexpr dart::word ClassHeapStats_state_offset = 272;
+static constexpr dart::word ClassTable_table_offset = 16;
+static constexpr dart::word Closure_context_offset = 40;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 24;
+static constexpr dart::word Closure_function_offset = 32;
+static constexpr dart::word Closure_function_type_arguments_offset = 16;
+static constexpr dart::word Closure_hash_offset = 48;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 8;
+static constexpr dart::word Code_object_pool_offset = 40;
+static constexpr dart::word Code_saved_instructions_offset = 48;
+static constexpr dart::word Code_owner_offset = 56;
+static constexpr dart::word Context_num_variables_offset = 8;
+static constexpr dart::word Context_parent_offset = 16;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 16;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 16;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 88;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    96;
+static constexpr dart::word Field_guarded_list_length_offset = 56;
+static constexpr dart::word Field_is_nullable_offset = 90;
+static constexpr dart::word Field_static_value_offset = 32;
+static constexpr dart::word Field_kind_bits_offset = 98;
+static constexpr dart::word Function_code_offset = 88;
+static constexpr dart::word Function_entry_point_offset = 8;
+static constexpr dart::word Function_unchecked_entry_point_offset = 16;
+static constexpr dart::word Function_usage_counter_offset = 132;
+static constexpr dart::word GrowableObjectArray_data_offset = 24;
+static constexpr dart::word GrowableObjectArray_length_offset = 16;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 8;
+static constexpr dart::word HeapPage_card_table_offset = 40;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 24;
+static constexpr dart::word ICData_entries_offset = 8;
+static constexpr dart::word ICData_owner_offset = 40;
+static constexpr dart::word ICData_state_bits_offset = 52;
+static constexpr dart::word ICData_receivers_static_type_offset = 32;
+static constexpr dart::word Isolate_class_table_offset = 48;
+static constexpr dart::word Isolate_current_tag_offset = 16;
+static constexpr dart::word Isolate_default_tag_offset = 24;
+static constexpr dart::word Isolate_ic_miss_code_offset = 32;
+static constexpr dart::word Isolate_object_store_offset = 40;
+static constexpr dart::word Isolate_single_step_offset = 88;
+static constexpr dart::word Isolate_user_tag_offset = 8;
+static constexpr dart::word LinkedHashMap_data_offset = 32;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 48;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 24;
+static constexpr dart::word LinkedHashMap_index_offset = 16;
+static constexpr dart::word LinkedHashMap_used_data_offset = 40;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 16;
+static constexpr dart::word MarkingStackBlock_top_offset = 8;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 32;
+static constexpr dart::word MegamorphicCache_buckets_offset = 8;
+static constexpr dart::word MegamorphicCache_mask_offset = 16;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 8;
+static constexpr dart::word NativeArguments_argv_offset = 16;
+static constexpr dart::word NativeArguments_retval_offset = 24;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 128;
+static constexpr dart::word ObjectStore_int_type_offset = 64;
+static constexpr dart::word ObjectStore_string_type_offset = 160;
+static constexpr dart::word OneByteString_data_offset = 16;
+static constexpr dart::word Pointer_c_memory_address_offset = 16;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 16;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 24;
+static constexpr dart::word SingleTargetCache_target_offset = 8;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 26;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 16;
+static constexpr dart::word StoreBufferBlock_top_offset = 8;
+static constexpr dart::word String_hash_offset = 4;
+static constexpr dart::word String_length_offset = 8;
+static constexpr dart::word SubtypeTestCache_cache_offset = 8;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 296;
+static constexpr dart::word Thread_active_exception_offset = 880;
+static constexpr dart::word Thread_active_stacktrace_offset = 888;
+static constexpr dart::word Thread_async_stack_trace_offset = 168;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 216;
+static constexpr dart::word Thread_bool_false_offset = 200;
+static constexpr dart::word Thread_bool_true_offset = 192;
+static constexpr dart::word Thread_dart_stream_offset = 944;
+static constexpr dart::word Thread_double_abs_address_offset = 256;
+static constexpr dart::word Thread_double_negate_address_offset = 248;
+static constexpr dart::word Thread_end_offset = 120;
+static constexpr dart::word Thread_execution_state_offset = 912;
+static constexpr dart::word Thread_float_absolute_address_offset = 280;
+static constexpr dart::word Thread_float_negate_address_offset = 272;
+static constexpr dart::word Thread_float_not_address_offset = 264;
+static constexpr dart::word Thread_float_zerow_address_offset = 288;
+static constexpr dart::word Thread_global_object_pool_offset = 896;
+static constexpr dart::word Thread_isolate_offset = 96;
+static constexpr dart::word Thread_marking_stack_block_offset = 144;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    208;
+static constexpr dart::word Thread_object_null_offset = 184;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 232;
+static constexpr dart::word Thread_resume_pc_offset = 904;
+static constexpr dart::word Thread_safepoint_state_offset = 920;
+static constexpr dart::word Thread_stack_limit_offset = 72;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 80;
+static constexpr dart::word Thread_store_buffer_block_offset = 136;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 128;
+static constexpr dart::word Thread_top_offset = 112;
+static constexpr dart::word Thread_top_resource_offset = 48;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 176;
+static constexpr dart::word Thread_vm_tag_offset = 160;
+static constexpr dart::word Thread_write_barrier_mask_offset = 88;
+static constexpr dart::word Thread_callback_code_offset = 928;
+static constexpr dart::word TimelineStream_enabled_offset = 16;
+static constexpr dart::word TwoByteString_data_offset = 16;
+static constexpr dart::word Type_arguments_offset = 32;
+static constexpr dart::word Type_hash_offset = 40;
+static constexpr dart::word Type_signature_offset = 48;
+static constexpr dart::word Type_type_class_id_offset = 24;
+static constexpr dart::word Type_type_state_offset = 60;
+static constexpr dart::word TypeArguments_instantiations_offset = 8;
+static constexpr dart::word TypeRef_type_offset = 24;
+static constexpr dart::word TypedDataBase_data_field_offset = 8;
+static constexpr dart::word TypedDataBase_length_offset = 16;
+static constexpr dart::word TypedDataView_data_offset = 24;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 32;
+static constexpr dart::word TypedData_data_offset = 24;
+static constexpr dart::word UserTag_tag_offset = 16;
+static constexpr dart::word Array_elements_start_offset = 24;
+static constexpr dart::word Array_element_size = 8;
+static constexpr dart::word TypeArguments_elements_start_offset = 32;
+static constexpr dart::word TypeArguments_element_size = 8;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 288;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 32;
+static dart::word Code_entry_point_offset[] = {8, 24, 16, 32};
+static dart::word Code_function_entry_point_offset[] = {8, 16};
+static constexpr dart::word Array_header_size = 24;
+static constexpr dart::word Context_header_size = 24;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 24;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 32;
+static constexpr dart::word String_InstanceSize = 16;
+static constexpr dart::word TypedData_InstanceSize = 24;
+#endif  // defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_64_BIT)
+
+#if defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_32_BIT)
+static constexpr dart::word ObjectPool_elements_start_offset = 8;
+static constexpr dart::word ObjectPool_element_size = 4;
+static constexpr dart::word Array_kMaxElements = 268435455;
+static constexpr dart::word Array_kMaxNewSpaceElements = 65533;
+static constexpr dart::word ClassTable_kSizeOfClassPairLog2 = 3;
+static constexpr dart::word Instructions_kMonomorphicEntryOffset = 0;
+static constexpr dart::word Instructions_kPolymorphicEntryOffset = 0;
+static constexpr dart::word HeapPage_kBytesPerCardLog2 = 9;
+static constexpr dart::word NativeEntry_kNumCallWrapperArguments = 2;
+static constexpr dart::word String_kMaxElements = 536870911;
+static constexpr dart::word SubtypeTestCache_kFunctionTypeArguments = 4;
+static constexpr dart::word SubtypeTestCache_kInstanceClassIdOrFunction = 1;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceDelayedFunctionTypeArguments = 6;
+static constexpr dart::word
+    SubtypeTestCache_kInstanceParentFunctionTypeArguments = 5;
+static constexpr dart::word SubtypeTestCache_kInstanceTypeArguments = 2;
+static constexpr dart::word SubtypeTestCache_kInstantiatorTypeArguments = 3;
+static constexpr dart::word SubtypeTestCache_kTestEntryLength = 7;
+static constexpr dart::word SubtypeTestCache_kTestResult = 0;
+static constexpr dart::word AbstractType_type_test_stub_entry_point_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_count_offset = 16;
+static constexpr dart::word ArgumentsDescriptor_first_named_entry_offset = 24;
+static constexpr dart::word ArgumentsDescriptor_named_entry_size = 8;
+static constexpr dart::word ArgumentsDescriptor_name_offset = 0;
+static constexpr dart::word ArgumentsDescriptor_position_offset = 4;
+static constexpr dart::word ArgumentsDescriptor_positional_count_offset = 20;
+static constexpr dart::word ArgumentsDescriptor_type_args_len_offset = 12;
+static constexpr dart::word Array_data_offset = 12;
+static constexpr dart::word Array_length_offset = 8;
+static constexpr dart::word Array_tags_offset = 0;
+static constexpr dart::word Array_type_arguments_offset = 4;
+static constexpr dart::word Class_declaration_type_offset = 56;
+static constexpr dart::word Class_num_type_arguments_offset = 102;
+static constexpr dart::word Class_super_type_offset = 44;
+static constexpr dart::word Class_type_arguments_field_offset_in_words_offset =
+    92;
+static constexpr dart::word ClassHeapStats_TraceAllocationMask = 1;
+static constexpr dart::word ClassHeapStats_allocated_since_gc_new_space_offset =
+    48;
+static constexpr dart::word
+    ClassHeapStats_allocated_size_since_gc_new_space_offset = 52;
+static constexpr dart::word ClassHeapStats_state_offset = 160;
+static constexpr dart::word ClassTable_table_offset = 8;
+static constexpr dart::word Closure_context_offset = 20;
+static constexpr dart::word Closure_delayed_type_arguments_offset = 12;
+static constexpr dart::word Closure_function_offset = 16;
+static constexpr dart::word Closure_function_type_arguments_offset = 8;
+static constexpr dart::word Closure_hash_offset = 24;
+static constexpr dart::word Closure_instantiator_type_arguments_offset = 4;
+static constexpr dart::word Code_object_pool_offset = 20;
+static constexpr dart::word Code_saved_instructions_offset = 24;
+static constexpr dart::word Code_owner_offset = 28;
+static constexpr dart::word Context_num_variables_offset = 4;
+static constexpr dart::word Context_parent_offset = 8;
+static constexpr dart::word Double_value_offset = 8;
+static constexpr dart::word ExternalOneByteString_external_data_offset = 12;
+static constexpr dart::word ExternalTwoByteString_external_data_offset = 12;
+static constexpr dart::word Float32x4_value_offset = 8;
+static constexpr dart::word Float64x2_value_offset = 8;
+static constexpr dart::word Field_guarded_cid_offset = 48;
+static constexpr dart::word Field_guarded_list_length_in_object_offset_offset =
+    56;
+static constexpr dart::word Field_guarded_list_length_offset = 28;
+static constexpr dart::word Field_is_nullable_offset = 50;
+static constexpr dart::word Field_static_value_offset = 16;
+static constexpr dart::word Field_kind_bits_offset = 58;
+static constexpr dart::word Function_code_offset = 44;
+static constexpr dart::word Function_entry_point_offset = 4;
+static constexpr dart::word Function_unchecked_entry_point_offset = 8;
+static constexpr dart::word Function_usage_counter_offset = 76;
+static constexpr dart::word GrowableObjectArray_data_offset = 12;
+static constexpr dart::word GrowableObjectArray_length_offset = 8;
+static constexpr dart::word GrowableObjectArray_type_arguments_offset = 4;
+static constexpr dart::word HeapPage_card_table_offset = 20;
+static constexpr dart::word ICData_NumArgsTestedMask = 3;
+static constexpr dart::word ICData_NumArgsTestedShift = 0;
+static constexpr dart::word ICData_arguments_descriptor_offset = 12;
+static constexpr dart::word ICData_entries_offset = 4;
+static constexpr dart::word ICData_owner_offset = 20;
+static constexpr dart::word ICData_state_bits_offset = 28;
+static constexpr dart::word ICData_receivers_static_type_offset = 16;
+static constexpr dart::word Isolate_class_table_offset = 24;
+static constexpr dart::word Isolate_current_tag_offset = 8;
+static constexpr dart::word Isolate_default_tag_offset = 12;
+static constexpr dart::word Isolate_ic_miss_code_offset = 16;
+static constexpr dart::word Isolate_object_store_offset = 20;
+static constexpr dart::word Isolate_single_step_offset = 44;
+static constexpr dart::word Isolate_user_tag_offset = 4;
+static constexpr dart::word LinkedHashMap_data_offset = 16;
+static constexpr dart::word LinkedHashMap_deleted_keys_offset = 24;
+static constexpr dart::word LinkedHashMap_hash_mask_offset = 12;
+static constexpr dart::word LinkedHashMap_index_offset = 8;
+static constexpr dart::word LinkedHashMap_used_data_offset = 20;
+static constexpr dart::word MarkingStackBlock_pointers_offset = 8;
+static constexpr dart::word MarkingStackBlock_top_offset = 4;
+static constexpr dart::word MegamorphicCache_arguments_descriptor_offset = 16;
+static constexpr dart::word MegamorphicCache_buckets_offset = 4;
+static constexpr dart::word MegamorphicCache_mask_offset = 8;
+static constexpr dart::word Mint_value_offset = 8;
+static constexpr dart::word NativeArguments_argc_tag_offset = 4;
+static constexpr dart::word NativeArguments_argv_offset = 8;
+static constexpr dart::word NativeArguments_retval_offset = 12;
+static constexpr dart::word NativeArguments_thread_offset = 0;
+static constexpr dart::word ObjectStore_double_type_offset = 64;
+static constexpr dart::word ObjectStore_int_type_offset = 32;
+static constexpr dart::word ObjectStore_string_type_offset = 80;
+static constexpr dart::word OneByteString_data_offset = 12;
+static constexpr dart::word Pointer_c_memory_address_offset = 8;
+static constexpr dart::word SingleTargetCache_entry_point_offset = 8;
+static constexpr dart::word SingleTargetCache_lower_limit_offset = 12;
+static constexpr dart::word SingleTargetCache_target_offset = 4;
+static constexpr dart::word SingleTargetCache_upper_limit_offset = 14;
+static constexpr dart::word StoreBufferBlock_pointers_offset = 8;
+static constexpr dart::word StoreBufferBlock_top_offset = 4;
+static constexpr dart::word String_hash_offset = 8;
+static constexpr dart::word String_length_offset = 4;
+static constexpr dart::word SubtypeTestCache_cache_offset = 4;
+static constexpr dart::word Thread_AllocateArray_entry_point_offset = 152;
+static constexpr dart::word Thread_active_exception_offset = 444;
+static constexpr dart::word Thread_active_stacktrace_offset = 448;
+static constexpr dart::word Thread_async_stack_trace_offset = 84;
+static constexpr dart::word
+    Thread_auto_scope_native_wrapper_entry_point_offset = 112;
+static constexpr dart::word Thread_bool_false_offset = 104;
+static constexpr dart::word Thread_bool_true_offset = 100;
+static constexpr dart::word Thread_dart_stream_offset = 476;
+static constexpr dart::word Thread_double_abs_address_offset = 132;
+static constexpr dart::word Thread_double_negate_address_offset = 128;
+static constexpr dart::word Thread_end_offset = 60;
+static constexpr dart::word Thread_execution_state_offset = 460;
+static constexpr dart::word Thread_float_absolute_address_offset = 144;
+static constexpr dart::word Thread_float_negate_address_offset = 140;
+static constexpr dart::word Thread_float_not_address_offset = 136;
+static constexpr dart::word Thread_float_zerow_address_offset = 148;
+static constexpr dart::word Thread_global_object_pool_offset = 452;
+static constexpr dart::word Thread_isolate_offset = 48;
+static constexpr dart::word Thread_marking_stack_block_offset = 72;
+static constexpr dart::word Thread_no_scope_native_wrapper_entry_point_offset =
+    108;
+static constexpr dart::word Thread_object_null_offset = 96;
+static constexpr dart::word Thread_predefined_symbols_address_offset = 120;
+static constexpr dart::word Thread_resume_pc_offset = 456;
+static constexpr dart::word Thread_safepoint_state_offset = 464;
+static constexpr dart::word Thread_stack_limit_offset = 36;
+static constexpr dart::word Thread_stack_overflow_flags_offset = 40;
+static constexpr dart::word Thread_store_buffer_block_offset = 68;
+static constexpr dart::word Thread_top_exit_frame_info_offset = 64;
+static constexpr dart::word Thread_top_offset = 56;
+static constexpr dart::word Thread_top_resource_offset = 24;
+static constexpr dart::word Thread_unboxed_int64_runtime_arg_offset = 88;
+static constexpr dart::word Thread_vm_tag_offset = 80;
+static constexpr dart::word Thread_write_barrier_mask_offset = 44;
+static constexpr dart::word Thread_callback_code_offset = 468;
+static constexpr dart::word TimelineStream_enabled_offset = 8;
+static constexpr dart::word TwoByteString_data_offset = 12;
+static constexpr dart::word Type_arguments_offset = 16;
+static constexpr dart::word Type_hash_offset = 20;
+static constexpr dart::word Type_signature_offset = 24;
+static constexpr dart::word Type_type_class_id_offset = 12;
+static constexpr dart::word Type_type_state_offset = 32;
+static constexpr dart::word TypeArguments_instantiations_offset = 4;
+static constexpr dart::word TypeRef_type_offset = 12;
+static constexpr dart::word TypedDataBase_data_field_offset = 4;
+static constexpr dart::word TypedDataBase_length_offset = 8;
+static constexpr dart::word TypedDataView_data_offset = 12;
+static constexpr dart::word TypedDataView_offset_in_bytes_offset = 16;
+static constexpr dart::word TypedData_data_offset = 12;
+static constexpr dart::word UserTag_tag_offset = 8;
+static constexpr dart::word Array_elements_start_offset = 12;
+static constexpr dart::word Array_element_size = 4;
+static constexpr dart::word TypeArguments_elements_start_offset = 16;
+static constexpr dart::word TypeArguments_element_size = 4;
+static constexpr dart::word ClassTable_elements_start_offset = 0;
+static constexpr dart::word ClassTable_element_size = 168;
+static constexpr dart::word ClassTable_class_heap_stats_table_offset = 16;
+static dart::word Code_entry_point_offset[] = {4, 12, 8, 16};
+static dart::word Code_function_entry_point_offset[] = {4, 8};
+static constexpr dart::word Array_header_size = 12;
+static constexpr dart::word Context_header_size = 12;
+static constexpr dart::word Double_InstanceSize = 16;
+static constexpr dart::word Float32x4_InstanceSize = 24;
+static constexpr dart::word Float64x2_InstanceSize = 24;
+static constexpr dart::word Instructions_UnalignedHeaderSize = 16;
+static constexpr dart::word Int32x4_InstanceSize = 24;
+static constexpr dart::word Mint_InstanceSize = 16;
+static constexpr dart::word NativeArguments_StructSize = 16;
+static constexpr dart::word String_InstanceSize = 12;
+static constexpr dart::word TypedData_InstanceSize = 12;
+#endif  // defined(TARGET_ARCH_DBC) && defined(TARGET_ARCH_IS_32_BIT)
+
+#endif  // RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
new file mode 100644
index 0000000..6882e1c
--- /dev/null
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -0,0 +1,267 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#ifndef RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_LIST_H_
+#define RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_LIST_H_
+
+// Macro list of all constants that differ based on whether the architecture is
+// 32-bit or 64-bit. They are used to allow the target architecture to differ
+// from the host, like this:
+// 1) The macros correspond to constants defined throughout the VM that are
+//    sized based on the *host* architecture.
+// 2) offsets_extractor.cc prints these values to runtime_offsets_extracted.h,
+//    for both 32 and 64 bit architectures.
+// 3) runtime_api.h presents the runtime_offsets_extracted.h constants in a way
+//    designed to look like the original constants from 1), but now namespaced
+//    to dart::compiler::target, and sized based on the *target* architecture.
+// 4) Users of the constants from 1) can now just add the namespace from 3) to
+//    get all their constants sized based on the target rather than the host.
+
+// FIELD(Class, Name) Offset of a field within a class.
+// ARRAY(Class, Name) Offset of the first element and the size of the elements
+//     in an array of this class.
+// ARRAY_STRUCTFIELD(Class, Name, Element, Field) Offset of a field within a
+//     struct in an array of that struct, relative to the start of the array.
+// SIZEOF(Class, Name, What) Size of an object.
+// RANGE(Class, Name, Type, First, Last, Filter) An array of offsets generated
+//     by passing a value of the given Type in the range from First to Last to
+//     Class::Name() if Filter returns true for that value.
+// CONSTANT(Class, Name) Miscellaneous constant.
+// PRECOMP_NO_CHECK(Code) Don't check this offset in the precompiled runtime.
+#define OFFSETS_LIST(FIELD, ARRAY, ARRAY_STRUCTFIELD, SIZEOF, RANGE, CONSTANT, \
+                     PRECOMP_NO_CHECK)                                         \
+  ARRAY(ObjectPool, element_offset)                                            \
+  CONSTANT(Array, kMaxElements)                                                \
+  CONSTANT(Array, kMaxNewSpaceElements)                                        \
+  CONSTANT(ClassTable, kSizeOfClassPairLog2)                                   \
+  CONSTANT(Instructions, kMonomorphicEntryOffset)                              \
+  CONSTANT(Instructions, kPolymorphicEntryOffset)                              \
+  CONSTANT(HeapPage, kBytesPerCardLog2)                                        \
+  CONSTANT(NativeEntry, kNumCallWrapperArguments)                              \
+  CONSTANT(String, kMaxElements)                                               \
+  CONSTANT(SubtypeTestCache, kFunctionTypeArguments)                           \
+  CONSTANT(SubtypeTestCache, kInstanceClassIdOrFunction)                       \
+  CONSTANT(SubtypeTestCache, kInstanceDelayedFunctionTypeArguments)            \
+  CONSTANT(SubtypeTestCache, kInstanceParentFunctionTypeArguments)             \
+  CONSTANT(SubtypeTestCache, kInstanceTypeArguments)                           \
+  CONSTANT(SubtypeTestCache, kInstantiatorTypeArguments)                       \
+  CONSTANT(SubtypeTestCache, kTestEntryLength)                                 \
+  CONSTANT(SubtypeTestCache, kTestResult)                                      \
+  FIELD(AbstractType, type_test_stub_entry_point_offset)                       \
+  FIELD(ArgumentsDescriptor, count_offset)                                     \
+  FIELD(ArgumentsDescriptor, first_named_entry_offset)                         \
+  FIELD(ArgumentsDescriptor, named_entry_size)                                 \
+  FIELD(ArgumentsDescriptor, name_offset)                                      \
+  FIELD(ArgumentsDescriptor, position_offset)                                  \
+  FIELD(ArgumentsDescriptor, positional_count_offset)                          \
+  FIELD(ArgumentsDescriptor, type_args_len_offset)                             \
+  FIELD(Array, data_offset)                                                    \
+  FIELD(Array, length_offset)                                                  \
+  FIELD(Array, tags_offset)                                                    \
+  FIELD(Array, type_arguments_offset)                                          \
+  FIELD(Class, declaration_type_offset)                                        \
+  FIELD(Class, num_type_arguments_offset)                                      \
+  FIELD(Class, super_type_offset)                                              \
+  FIELD(Class, type_arguments_field_offset_in_words_offset)                    \
+  NOT_IN_PRODUCT(FIELD(ClassHeapStats, TraceAllocationMask))                   \
+  NOT_IN_PRODUCT(FIELD(ClassHeapStats, allocated_since_gc_new_space_offset))   \
+  NOT_IN_PRODUCT(                                                              \
+      FIELD(ClassHeapStats, allocated_size_since_gc_new_space_offset))         \
+  NOT_IN_PRODUCT(FIELD(ClassHeapStats, state_offset))                          \
+  FIELD(ClassTable, table_offset)                                              \
+  FIELD(Closure, context_offset)                                               \
+  FIELD(Closure, delayed_type_arguments_offset)                                \
+  FIELD(Closure, function_offset)                                              \
+  FIELD(Closure, function_type_arguments_offset)                               \
+  FIELD(Closure, hash_offset)                                                  \
+  FIELD(Closure, instantiator_type_arguments_offset)                           \
+  FIELD(Code, object_pool_offset)                                              \
+  FIELD(Code, saved_instructions_offset)                                       \
+  FIELD(Code, owner_offset)                                                    \
+  FIELD(Context, num_variables_offset)                                         \
+  FIELD(Context, parent_offset)                                                \
+  FIELD(Double, value_offset)                                                  \
+  FIELD(ExternalOneByteString, external_data_offset)                           \
+  FIELD(ExternalTwoByteString, external_data_offset)                           \
+  FIELD(Float32x4, value_offset)                                               \
+  FIELD(Float64x2, value_offset)                                               \
+  PRECOMP_NO_CHECK(FIELD(Field, guarded_cid_offset))                           \
+  PRECOMP_NO_CHECK(FIELD(Field, guarded_list_length_in_object_offset_offset))  \
+  PRECOMP_NO_CHECK(FIELD(Field, guarded_list_length_offset))                   \
+  PRECOMP_NO_CHECK(FIELD(Field, is_nullable_offset))                           \
+  FIELD(Field, static_value_offset)                                            \
+  PRECOMP_NO_CHECK(FIELD(Field, kind_bits_offset))                             \
+  FIELD(Function, code_offset)                                                 \
+  FIELD(Function, entry_point_offset)                                          \
+  FIELD(Function, unchecked_entry_point_offset)                                \
+  PRECOMP_NO_CHECK(FIELD(Function, usage_counter_offset))                      \
+  FIELD(GrowableObjectArray, data_offset)                                      \
+  FIELD(GrowableObjectArray, length_offset)                                    \
+  FIELD(GrowableObjectArray, type_arguments_offset)                            \
+  FIELD(HeapPage, card_table_offset)                                           \
+  FIELD(ICData, NumArgsTestedMask)                                             \
+  FIELD(ICData, NumArgsTestedShift)                                            \
+  FIELD(ICData, arguments_descriptor_offset)                                   \
+  FIELD(ICData, entries_offset)                                                \
+  PRECOMP_NO_CHECK(FIELD(ICData, owner_offset))                                \
+  PRECOMP_NO_CHECK(FIELD(ICData, state_bits_offset))                           \
+  NOT_IN_PRECOMPILED_RUNTIME(FIELD(ICData, receivers_static_type_offset))      \
+  FIELD(Isolate, class_table_offset)                                           \
+  FIELD(Isolate, current_tag_offset)                                           \
+  FIELD(Isolate, default_tag_offset)                                           \
+  FIELD(Isolate, ic_miss_code_offset)                                          \
+  FIELD(Isolate, object_store_offset)                                          \
+  NOT_IN_PRODUCT(FIELD(Isolate, single_step_offset))                           \
+  FIELD(Isolate, user_tag_offset)                                              \
+  FIELD(LinkedHashMap, data_offset)                                            \
+  FIELD(LinkedHashMap, deleted_keys_offset)                                    \
+  FIELD(LinkedHashMap, hash_mask_offset)                                       \
+  FIELD(LinkedHashMap, index_offset)                                           \
+  FIELD(LinkedHashMap, used_data_offset)                                       \
+  FIELD(MarkingStackBlock, pointers_offset)                                    \
+  FIELD(MarkingStackBlock, top_offset)                                         \
+  FIELD(MegamorphicCache, arguments_descriptor_offset)                         \
+  FIELD(MegamorphicCache, buckets_offset)                                      \
+  FIELD(MegamorphicCache, mask_offset)                                         \
+  FIELD(Mint, value_offset)                                                    \
+  FIELD(NativeArguments, argc_tag_offset)                                      \
+  FIELD(NativeArguments, argv_offset)                                          \
+  FIELD(NativeArguments, retval_offset)                                        \
+  FIELD(NativeArguments, thread_offset)                                        \
+  FIELD(ObjectStore, double_type_offset)                                       \
+  FIELD(ObjectStore, int_type_offset)                                          \
+  FIELD(ObjectStore, string_type_offset)                                       \
+  FIELD(OneByteString, data_offset)                                            \
+  FIELD(Pointer, c_memory_address_offset)                                      \
+  FIELD(SingleTargetCache, entry_point_offset)                                 \
+  FIELD(SingleTargetCache, lower_limit_offset)                                 \
+  FIELD(SingleTargetCache, target_offset)                                      \
+  FIELD(SingleTargetCache, upper_limit_offset)                                 \
+  FIELD(StoreBufferBlock, pointers_offset)                                     \
+  FIELD(StoreBufferBlock, top_offset)                                          \
+  FIELD(String, hash_offset)                                                   \
+  FIELD(String, length_offset)                                                 \
+  FIELD(SubtypeTestCache, cache_offset)                                        \
+  FIELD(Thread, AllocateArray_entry_point_offset)                              \
+  FIELD(Thread, active_exception_offset)                                       \
+  FIELD(Thread, active_stacktrace_offset)                                      \
+  NOT_IN_DBC(FIELD(Thread, array_write_barrier_code_offset))                   \
+  NOT_IN_DBC(FIELD(Thread, array_write_barrier_entry_point_offset))            \
+  FIELD(Thread, async_stack_trace_offset)                                      \
+  FIELD(Thread, auto_scope_native_wrapper_entry_point_offset)                  \
+  FIELD(Thread, bool_false_offset)                                             \
+  FIELD(Thread, bool_true_offset)                                              \
+  NOT_IN_DBC(FIELD(Thread, call_to_runtime_entry_point_offset))                \
+  NOT_IN_DBC(FIELD(Thread, call_to_runtime_stub_offset))                       \
+  FIELD(Thread, dart_stream_offset)                                            \
+  NOT_IN_DBC(FIELD(Thread, deoptimize_entry_offset))                           \
+  NOT_IN_DBC(FIELD(Thread, deoptimize_stub_offset))                            \
+  FIELD(Thread, double_abs_address_offset)                                     \
+  FIELD(Thread, double_negate_address_offset)                                  \
+  FIELD(Thread, end_offset)                                                    \
+  NOT_IN_DBC(FIELD(Thread, enter_safepoint_stub_offset))                       \
+  FIELD(Thread, execution_state_offset)                                        \
+  NOT_IN_DBC(FIELD(Thread, exit_safepoint_stub_offset))                        \
+  NOT_IN_DBC(FIELD(Thread, fix_allocation_stub_code_offset))                   \
+  NOT_IN_DBC(FIELD(Thread, fix_callers_target_code_offset))                    \
+  FIELD(Thread, float_absolute_address_offset)                                 \
+  FIELD(Thread, float_negate_address_offset)                                   \
+  FIELD(Thread, float_not_address_offset)                                      \
+  FIELD(Thread, float_zerow_address_offset)                                    \
+  FIELD(Thread, global_object_pool_offset)                                     \
+  NOT_IN_DBC(FIELD(Thread, ic_lookup_through_code_stub_offset))                \
+  NOT_IN_DBC(FIELD(Thread, interpret_call_entry_point_offset))                 \
+  NOT_IN_DBC(FIELD(Thread, invoke_dart_code_from_bytecode_stub_offset))        \
+  NOT_IN_DBC(FIELD(Thread, invoke_dart_code_stub_offset))                      \
+  FIELD(Thread, isolate_offset)                                                \
+  NOT_IN_DBC(FIELD(Thread, lazy_deopt_from_return_stub_offset))                \
+  NOT_IN_DBC(FIELD(Thread, lazy_deopt_from_throw_stub_offset))                 \
+  NOT_IN_DBC(FIELD(Thread, lazy_specialize_type_test_stub_offset))             \
+  FIELD(Thread, marking_stack_block_offset)                                    \
+  NOT_IN_DBC(FIELD(Thread, megamorphic_call_checked_entry_offset))             \
+  NOT_IN_DBC(FIELD(Thread, monomorphic_miss_entry_offset))                     \
+  NOT_IN_DBC(FIELD(Thread, monomorphic_miss_stub_offset))                      \
+  FIELD(Thread, no_scope_native_wrapper_entry_point_offset)                    \
+  NOT_IN_DBC(                                                                  \
+      FIELD(Thread, null_error_shared_with_fpu_regs_entry_point_offset))       \
+  NOT_IN_DBC(FIELD(Thread, null_error_shared_with_fpu_regs_stub_offset))       \
+  NOT_IN_DBC(                                                                  \
+      FIELD(Thread, null_error_shared_without_fpu_regs_entry_point_offset))    \
+  NOT_IN_DBC(FIELD(Thread, null_error_shared_without_fpu_regs_stub_offset))    \
+  FIELD(Thread, object_null_offset)                                            \
+  FIELD(Thread, predefined_symbols_address_offset)                             \
+  FIELD(Thread, resume_pc_offset)                                              \
+  FIELD(Thread, safepoint_state_offset)                                        \
+  NOT_IN_DBC(FIELD(Thread, slow_type_test_stub_offset))                        \
+  FIELD(Thread, stack_limit_offset)                                            \
+  FIELD(Thread, stack_overflow_flags_offset)                                   \
+  NOT_IN_DBC(                                                                  \
+      FIELD(Thread, stack_overflow_shared_with_fpu_regs_entry_point_offset))   \
+  NOT_IN_DBC(FIELD(Thread, stack_overflow_shared_with_fpu_regs_stub_offset))   \
+  NOT_IN_DBC(FIELD(Thread,                                                     \
+                   stack_overflow_shared_without_fpu_regs_entry_point_offset)) \
+  NOT_IN_DBC(                                                                  \
+      FIELD(Thread, stack_overflow_shared_without_fpu_regs_stub_offset))       \
+  FIELD(Thread, store_buffer_block_offset)                                     \
+  FIELD(Thread, top_exit_frame_info_offset)                                    \
+  FIELD(Thread, top_offset)                                                    \
+  FIELD(Thread, top_resource_offset)                                           \
+  FIELD(Thread, unboxed_int64_runtime_arg_offset)                              \
+  FIELD(Thread, vm_tag_offset)                                                 \
+  NOT_IN_DBC(FIELD(Thread, write_barrier_code_offset))                         \
+  NOT_IN_DBC(FIELD(Thread, write_barrier_entry_point_offset))                  \
+  FIELD(Thread, write_barrier_mask_offset)                                     \
+  NOT_IN_DBC(FIELD(Thread, verify_callback_entry_offset))                      \
+  FIELD(Thread, callback_code_offset)                                          \
+  FIELD(TimelineStream, enabled_offset)                                        \
+  FIELD(TwoByteString, data_offset)                                            \
+  FIELD(Type, arguments_offset)                                                \
+  FIELD(Type, hash_offset)                                                     \
+  FIELD(Type, signature_offset)                                                \
+  FIELD(Type, type_class_id_offset)                                            \
+  FIELD(Type, type_state_offset)                                               \
+  FIELD(TypeArguments, instantiations_offset)                                  \
+  FIELD(TypeRef, type_offset)                                                  \
+  FIELD(TypedDataBase, data_field_offset)                                      \
+  FIELD(TypedDataBase, length_offset)                                          \
+  FIELD(TypedDataView, data_offset)                                            \
+  FIELD(TypedDataView, offset_in_bytes_offset)                                 \
+  FIELD(TypedData, data_offset)                                                \
+  FIELD(UserTag, tag_offset)                                                   \
+  ARRAY(Array, element_offset)                                                 \
+  ARRAY(TypeArguments, type_at_offset)                                         \
+  NOT_IN_PRODUCT(ARRAY(ClassTable, ClassOffsetFor))                            \
+  NOT_IN_PRODUCT(ARRAY_STRUCTFIELD(                                            \
+      ClassTable, NewSpaceCounterOffsetFor, ClassOffsetFor,                    \
+      ClassHeapStats::allocated_since_gc_new_space_offset()))                  \
+  NOT_IN_PRODUCT(ARRAY_STRUCTFIELD(                                            \
+      ClassTable, StateOffsetFor, ClassOffsetFor,                              \
+      ClassHeapStats::allocated_since_gc_new_space_offset()))                  \
+  NOT_IN_PRODUCT(ARRAY_STRUCTFIELD(                                            \
+      ClassTable, NewSpaceSizeOffsetFor, ClassOffsetFor,                       \
+      ClassHeapStats::allocated_size_since_gc_new_space_offset()))             \
+  NOT_IN_PRODUCT(FIELD(ClassTable, class_heap_stats_table_offset))             \
+  RANGE(Code, entry_point_offset, CodeEntryKind, CodeEntryKind::kNormal,       \
+        CodeEntryKind::kMonomorphicUnchecked,                                  \
+        [](CodeEntryKind value) { return true; })                              \
+  RANGE(Code, function_entry_point_offset, CodeEntryKind,                      \
+        CodeEntryKind::kNormal, CodeEntryKind::kUnchecked,                     \
+        [](CodeEntryKind value) { return true; })                              \
+  ONLY_IN_ARM_ARM64_X64(RANGE(                                                 \
+      Thread, write_barrier_wrappers_thread_offset, Register, 0,               \
+      kNumberOfCpuRegisters - 1,                                               \
+      [](Register reg) { return (kDartAvailableCpuRegs & (1 << reg)) != 0; })) \
+  SIZEOF(Array, header_size, RawArray)                                         \
+  SIZEOF(Context, header_size, RawContext)                                     \
+  SIZEOF(Double, InstanceSize, RawDouble)                                      \
+  SIZEOF(Float32x4, InstanceSize, RawFloat32x4)                                \
+  SIZEOF(Float64x2, InstanceSize, RawFloat64x2)                                \
+  SIZEOF(Instructions, UnalignedHeaderSize, RawInstructions)                   \
+  SIZEOF(Int32x4, InstanceSize, RawInt32x4)                                    \
+  SIZEOF(Mint, InstanceSize, RawMint)                                          \
+  SIZEOF(NativeArguments, StructSize, NativeArguments)                         \
+  SIZEOF(String, InstanceSize, RawString)                                      \
+  SIZEOF(TypedData, InstanceSize, RawTypedData)
+
+#endif  // RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_LIST_H_
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index 822cab8..bf929e9 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -6,6 +6,8 @@
 
 #include "vm/clustered_snapshot.h"
 #include "vm/code_observers.h"
+#include "vm/compiler/runtime_offsets_extracted.h"
+#include "vm/compiler/runtime_offsets_list.h"
 #include "vm/cpu.h"
 #include "vm/dart_api_state.h"
 #include "vm/dart_entry.h"
@@ -22,6 +24,7 @@
 #include "vm/malloc_hooks.h"
 #include "vm/message_handler.h"
 #include "vm/metrics.h"
+#include "vm/native_entry.h"
 #include "vm/object.h"
 #include "vm/object_id_ring.h"
 #include "vm/object_store.h"
@@ -84,36 +87,40 @@
 };
 
 static void CheckOffsets() {
+  // These offsets are embedded in precompiled instructions. We need the
+  // compiler and the runtime to agree.
   bool ok = true;
 #define CHECK_OFFSET(expr, offset)                                             \
   if ((expr) != (offset)) {                                                    \
-    OS::PrintErr("%s got %" Pd " expected %" Pd "\n", #expr, (expr),           \
+    OS::PrintErr("%s got %" Pd ", %s expected %" Pd "\n", #expr,               \
+                 static_cast<intptr_t>(expr), #offset,                         \
                  static_cast<intptr_t>(offset));                               \
     ok = false;                                                                \
   }
 
-#if defined(TARGET_ARCH_ARM)
-  // These offsets are embedded in precompiled instructions. We need simarm
-  // (compiler) and arm (runtime) to agree.
-  CHECK_OFFSET(Thread::stack_limit_offset(), 36);
-  CHECK_OFFSET(Thread::object_null_offset(), 96);
-  CHECK_OFFSET(SingleTargetCache::upper_limit_offset(), 14);
-  CHECK_OFFSET(Isolate::object_store_offset(), 20);
-  NOT_IN_PRODUCT(CHECK_OFFSET(sizeof(ClassHeapStats), 168));
-#endif
-#if defined(TARGET_ARCH_ARM64)
-  // These offsets are embedded in precompiled instructions. We need simarm64
-  // (compiler) and arm64 (runtime) to agree.
-  CHECK_OFFSET(Thread::stack_limit_offset(), 72);
-  CHECK_OFFSET(Thread::object_null_offset(), 184);
-  CHECK_OFFSET(SingleTargetCache::upper_limit_offset(), 26);
-  CHECK_OFFSET(Isolate::object_store_offset(), 40);
-  NOT_IN_PRODUCT(CHECK_OFFSET(sizeof(ClassHeapStats), 288));
-#endif
+#define CHECK_FIELD(Class, Name) CHECK_OFFSET(Class::Name(), Class##_##Name)
+#define CHECK_ARRAY(Class, Name)                                               \
+  CHECK_OFFSET(Class::ArrayLayout::elements_start_offset(),                    \
+               Class##_elements_start_offset)                                  \
+  CHECK_OFFSET(Class::ArrayLayout::kElementSize, Class##_element_size)
+#define CHECK_ARRAY_STRUCTFIELD(Class, Name, ElementOffsetName, FieldOffset)
+#define CHECK_SIZEOF(Class, Name, What)                                        \
+  CHECK_OFFSET(sizeof(What), Class##_##Name)
+#define CHECK_RANGE(Class, Name, Type, First, Last, Filter)
+#define CHECK_CONSTANT(Class, Name) CHECK_OFFSET(Class::Name, Class##_##Name)
+
+  OFFSETS_LIST(CHECK_FIELD, CHECK_ARRAY, CHECK_ARRAY_STRUCTFIELD, CHECK_SIZEOF,
+               CHECK_RANGE, CHECK_CONSTANT, NOT_IN_PRECOMPILED_RUNTIME)
 
   if (!ok) {
     FATAL("CheckOffsets failed.");
   }
+#undef CHECK_FIELD
+#undef CHECK_ARRAY
+#undef CHECK_ARRAY_STRUCTFIELD
+#undef CHECK_SIZEOF
+#undef CHECK_RANGE
+#undef CHECK_CONSTANT
 #undef CHECK_OFFSET
 }
 
diff --git a/runtime/vm/dart_entry.cc b/runtime/vm/dart_entry.cc
index a4c22c3..4bd384c 100644
--- a/runtime/vm/dart_entry.cc
+++ b/runtime/vm/dart_entry.cc
@@ -377,22 +377,6 @@
   return names.raw();
 }
 
-intptr_t ArgumentsDescriptor::type_args_len_offset() {
-  return Array::element_offset(kTypeArgsLenIndex);
-}
-
-intptr_t ArgumentsDescriptor::count_offset() {
-  return Array::element_offset(kCountIndex);
-}
-
-intptr_t ArgumentsDescriptor::positional_count_offset() {
-  return Array::element_offset(kPositionalCountIndex);
-}
-
-intptr_t ArgumentsDescriptor::first_named_entry_offset() {
-  return Array::element_offset(kFirstNamedEntryIndex);
-}
-
 RawArray* ArgumentsDescriptor::New(intptr_t type_args_len,
                                    intptr_t num_arguments,
                                    const Array& optional_arguments_names) {
diff --git a/runtime/vm/dart_entry.h b/runtime/vm/dart_entry.h
index 23342d3..94764a3 100644
--- a/runtime/vm/dart_entry.h
+++ b/runtime/vm/dart_entry.h
@@ -49,10 +49,20 @@
   RawArray* GetArgumentNames() const;
 
   // Generated code support.
-  static intptr_t type_args_len_offset();
-  static intptr_t count_offset();
-  static intptr_t positional_count_offset();
-  static intptr_t first_named_entry_offset();
+  static intptr_t type_args_len_offset() {
+    return Array::element_offset(kTypeArgsLenIndex);
+  }
+
+  static intptr_t count_offset() { return Array::element_offset(kCountIndex); }
+
+  static intptr_t positional_count_offset() {
+    return Array::element_offset(kPositionalCountIndex);
+  }
+
+  static intptr_t first_named_entry_offset() {
+    return Array::element_offset(kFirstNamedEntryIndex);
+  }
+
   static intptr_t name_offset() { return kNameOffset * kWordSize; }
   static intptr_t position_offset() { return kPositionOffset * kWordSize; }
   static intptr_t named_entry_size() { return kNamedEntrySize * kWordSize; }
diff --git a/runtime/vm/globals.h b/runtime/vm/globals.h
index 7336f1f..1734984c 100644
--- a/runtime/vm/globals.h
+++ b/runtime/vm/globals.h
@@ -73,6 +73,25 @@
 #define NOT_IN_PRECOMPILED(code) code
 #endif  // defined(DART_PRECOMPILED_RUNTIME)
 
+#if defined(TARGET_ARCH_DBC)
+#define NOT_IN_DBC(code)
+#else
+#define NOT_IN_DBC(code) code
+#endif  // defined(TARGET_ARCH_DBC)
+
+#if defined(TARGET_ARCH_ARM) || defined(TARGET_ARCH_ARM64) ||                  \
+    defined(TARGET_ARCH_X64)
+#define ONLY_IN_ARM_ARM64_X64(code) code
+#else
+#define ONLY_IN_ARM_ARM64_X64(code)
+#endif
+
+#if defined(DART_PRECOMPILED_RUNTIME)
+#define NOT_IN_PRECOMPILED_RUNTIME(code)
+#else
+#define NOT_IN_PRECOMPILED_RUNTIME(code) code
+#endif  // defined(DART_PRECOMPILED_RUNTIME)
+
 #if !defined(PRODUCT) || defined(HOST_OS_FUCHSIA) || defined(TARGET_OS_FUCHSIA)
 #define SUPPORT_TIMELINE 1
 #endif
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index a1cb363..453e847 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -4318,6 +4318,14 @@
            sizeof(RawObjectPool::Entry) * index;
   }
 
+  struct ArrayLayout {
+    static intptr_t elements_start_offset() {
+      return ObjectPool::data_offset();
+    }
+
+    static constexpr intptr_t kElementSize = sizeof(RawObjectPool::Entry);
+  };
+
   EntryType TypeAt(intptr_t index) const {
     return TypeBits::decode(raw_ptr()->entry_bits()[index]);
   }
@@ -6265,6 +6273,14 @@
   }
   void SetTypeAt(intptr_t index, const AbstractType& value) const;
 
+  struct ArrayLayout {
+    static intptr_t elements_start_offset() {
+      return TypeArguments::type_at_offset(0);
+    }
+
+    static constexpr intptr_t kElementSize = kWordSize;
+  };
+
   // The name of this type argument vector, e.g. "<T, dynamic, List<T>, Smi>".
   RawString* Name() const { return SubvectorName(0, Length(), kInternalName); }
 
@@ -8046,6 +8062,12 @@
     return OFFSET_OF_RETURNED_VALUE(RawArray, data) + kWordSize * index;
   }
 
+  struct ArrayLayout {
+    static intptr_t elements_start_offset() { return Array::data_offset(); }
+
+    static constexpr intptr_t kElementSize = kWordSize;
+  };
+
   static bool Equals(RawArray* a, RawArray* b) {
     if (a == b) return true;
     if (a->IsRawNull() || b->IsRawNull()) return false;
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 783748a..355cb6b 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -1404,15 +1404,14 @@
   uint32_t size_and_flags_;
   uint32_t unchecked_entrypoint_pc_offset_;
 
-#if defined(DART_PRECOMPILER)
   // There is a gap between size_and_flags_ and the entry point
   // because we align entry point by 4 words on all platforms.
   // This allows us to have a free field here without affecting
   // the aligned size of the Instructions object header.
   // This also means that entry point offset is the same
   // whether this field is included or excluded.
+  // TODO(37103): This field should be removed.
   CodeStatistics* stats_;
-#endif
 
   // Variable length data follows here.
   uint8_t* data() { OPEN_ARRAY_START(uint8_t, uint8_t); }
diff --git a/tools/run_offsets_extractor.sh b/tools/run_offsets_extractor.sh
new file mode 100755
index 0000000..4e1a5ad
--- /dev/null
+++ b/tools/run_offsets_extractor.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+set -e
+
+FILE="runtime/vm/compiler/runtime_offsets_extracted.h"
+
+# Make sure we're running in the SDK directory.
+if ! test -f "$FILE"; then
+  echo "Couldn't find $FILE"
+  echo "Make sure to run this script from the Dart SDK directory."
+  exit 1
+fi
+
+# We're regenerating the file, but we want to keep all the comments etc at the
+# top of the file. So just delete everything after the first "#if defined".
+LINE=$(grep "#if defined" "$FILE" -n | head -n 1 | sed "s/^\([0-9]*\):.*/\1/")
+TEMP="${FILE}.temp"
+head -n $(expr $LINE - 1) "$FILE" >"$TEMP"
+
+# Run offsets_extractor for every architecture and append the results.
+run() {
+  echo "" >>"$TEMP"
+  tools/gn.py --mode=release --arch=$1
+  tools/build.py --mode=release --arch=$1 offsets_extractor
+  out/$2/offsets_extractor >>"$TEMP"
+}
+run simarm ReleaseSIMARM
+run x64 ReleaseX64
+run ia32 ReleaseIA32
+run simarm64 ReleaseSIMARM64
+run simdbc64 ReleaseSIMDBC64
+run simdbc ReleaseSIMDBC
+
+# Cleanup.
+echo "" >>"$TEMP"
+echo "#endif  // RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_" >>"$TEMP"
+mv "$TEMP" "$FILE"
+git cl format "$FILE"
+echo -e "\n\nSuccessfully generated $FILE :)"