Index: runtime/vm/intermediate_language.h |
=================================================================== |
--- runtime/vm/intermediate_language.h (revision 31428) |
+++ runtime/vm/intermediate_language.h (working copy) |
@@ -620,6 +620,7 @@ |
M(EqualityCompare) \ |
M(RelationalOp) \ |
M(NativeCall) \ |
+ M(DebugStepCheck) \ |
M(LoadIndexed) \ |
M(StoreIndexed) \ |
M(StoreInstanceField) \ |
@@ -3416,6 +3417,28 @@ |
}; |
+class DebugStepCheckInstr : public TemplateInstruction<0> { |
+ public: |
+ explicit DebugStepCheckInstr(intptr_t token_pos) |
+ : token_pos_(token_pos) { |
+ } |
+ |
+ DECLARE_INSTRUCTION(DebugStepCheck) |
+ |
+ intptr_t token_pos() const { return token_pos_; } |
+ virtual bool MayThrow() const { return false; } |
+ virtual bool CanDeoptimize() const { return false; } |
+ virtual EffectSet Effects() const { return EffectSet::None(); } |
+ virtual intptr_t ArgumentCount() const { return 0; } |
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph); |
+ |
+ private: |
+ const intptr_t token_pos_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DebugStepCheckInstr); |
+}; |
+ |
+ |
enum StoreBarrierType { |
kNoStoreBarrier, |
kEmitStoreBarrier |