14CodePtr ReversePc::FindCodeInGroup(IsolateGroup*
group,
16 bool is_return_address) {
17#if defined(DART_PRECOMPILED_RUNTIME)
19 NoSafepointScope no_safepoint;
21 if (is_return_address) {
28 GrowableObjectArrayPtr tables =
group->object_store()->instructions_tables();
29 intptr_t tables_length =
Smi::Value(tables->untag()->length());
30 for (intptr_t
i = 0;
i < tables_length;
i++) {
31 InstructionsTablePtr
table =
static_cast<InstructionsTablePtr
>(
32 tables->untag()->data()->untag()->element(
i));
42const UntaggedCompressedStackMaps::Payload* ReversePc::FindStackMapInGroup(
45 bool is_return_address,
47 const UntaggedCompressedStackMaps::Payload** global_table) {
48#if defined(DART_PRECOMPILED_RUNTIME)
50 NoSafepointScope no_safepoint;
52 if (is_return_address) {
59 GrowableObjectArrayPtr tables =
group->object_store()->instructions_tables();
60 intptr_t tables_length =
Smi::Value(tables->untag()->length());
61 for (intptr_t
i = 0;
i < tables_length;
i++) {
62 InstructionsTablePtr
table =
static_cast<InstructionsTablePtr
>(
63 tables->untag()->data()->untag()->element(
i));
67 table =
static_cast<InstructionsTablePtr
>(
68 tables->untag()->data()->untag()->element(0));
82 bool is_return_address,
85 ASSERT(FLAG_precompiled_mode);
88 auto map = FindStackMapInGroup(
group, pc, is_return_address, code_start,
92 code_start, global_table);
99 bool is_return_address) {
100 ASSERT(FLAG_precompiled_mode);
103 auto code_descriptor = FindCodeInGroup(
group, pc, is_return_address);
108 return code_descriptor;
113 bool is_return_address) {
114 ASSERT(FLAG_precompiled_mode);
117 return FindCode(
group, pc, is_return_address);
static IsolateGroup * vm_isolate_group()
static CodePtr FindCode(InstructionsTablePtr table, uword pc)
static const UntaggedCompressedStackMaps::Payload * FindStackMap(InstructionsTablePtr table, uword pc, uword *start_pc)
static const UntaggedCompressedStackMaps::Payload * GetCanonicalStackMap(InstructionsTablePtr table)
static CodePtr Lookup(IsolateGroup *group, uword pc, bool is_return_address)
static const UntaggedCompressedStackMaps::Payload * FindStackMap(IsolateGroup *group, uword pc, bool is_return_address, uword *code_start, const UntaggedCompressedStackMaps::Payload **global_table)
SI auto map(std::index_sequence< I... >, Fn &&fn, const Args &... args) -> skvx::Vec< sizeof...(I), decltype(fn(args[0]...))>