Chromium Code Reviews| Index: runtime/vm/stack_frame.h |
| diff --git a/runtime/vm/stack_frame.h b/runtime/vm/stack_frame.h |
| index 9cc7bd573ef68598eff00ab0799f337509b6b4cc..48152b323db81986521dd181a0ec4a45e6773ddf 100644 |
| --- a/runtime/vm/stack_frame.h |
| +++ b/runtime/vm/stack_frame.h |
| @@ -51,6 +51,18 @@ class StackFrame : public ValueObject { |
| return 0; |
| } |
| + uword IsMarkedForLazyDeopt() const { |
| + uword raw_pc = *reinterpret_cast<uword*>( |
| + sp() + (kSavedPcSlotFromSp * kWordSize)); |
| + return raw_pc == StubCode::DeoptimizeLazyFromReturn_entry()->EntryPoint(); |
| + } |
| + void MarkForLazyDeopt() { |
| + set_pc(StubCode::DeoptimizeLazyFromReturn_entry()->EntryPoint()); |
| + } |
| + void UnmarkForLazyDeopt() { |
|
Florian Schneider
2016/10/04 21:32:41
This reads a little weird: Maybe comment that pc_
rmacnak
2016/10/04 22:11:28
Added comment and assert. Can't use GetCallerPc h
|
| + set_pc(pc()); |
| + } |
| + |
| void set_pc(uword value) { |
| *reinterpret_cast<uword*>(sp() + (kSavedPcSlotFromSp * kWordSize)) = value; |
| pc_ = value; |
| @@ -362,6 +374,9 @@ class InlinedFunctionsIterator : public ValueObject { |
| }; |
| +void ValidateFrames(); |
|
Florian Schneider
2016/10/04 21:32:41
#ifdef DEBUG
rmacnak
2016/10/04 22:11:28
Done.
|
| + |
| + |
| #if !defined(TARGET_ARCH_DBC) |
| DART_FORCE_INLINE static intptr_t LocalVarIndex(intptr_t fp_offset, |
| intptr_t var_index) { |