| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 45190)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -440,6 +440,7 @@
|
| M(Return) \
|
| M(Throw) \
|
| M(ReThrow) \
|
| + M(Stop) \
|
| M(Goto) \
|
| M(IndirectGoto) \
|
| M(Branch) \
|
| @@ -2125,6 +2126,32 @@
|
| };
|
|
|
|
|
| +class StopInstr : public TemplateInstruction<0, NoThrow> {
|
| + public:
|
| + explicit StopInstr(const char* message)
|
| + : message_(message) {
|
| + ASSERT(message != NULL);
|
| + }
|
| +
|
| + const char* message() const { return message_; }
|
| +
|
| + DECLARE_INSTRUCTION(Stop);
|
| +
|
| + virtual intptr_t ArgumentCount() const { return 0; }
|
| +
|
| + virtual bool CanDeoptimize() const { return false; }
|
| +
|
| + virtual EffectSet Effects() const { return EffectSet::None(); }
|
| +
|
| + virtual EffectSet Dependencies() const { return EffectSet::None(); }
|
| +
|
| + private:
|
| + const char* message_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(StopInstr);
|
| +};
|
| +
|
| +
|
| class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| explicit GotoInstr(JoinEntryInstr* entry)
|
|
|