| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 39381)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -706,6 +706,7 @@
|
| M(LoadIndexed) \
|
| M(StoreIndexed) \
|
| M(StoreInstanceField) \
|
| + M(InitStaticField) \
|
| M(LoadStaticField) \
|
| M(StoreStaticField) \
|
| M(BooleanNegate) \
|
| @@ -4626,6 +4627,31 @@
|
| };
|
|
|
|
|
| +class InitStaticFieldInstr : public TemplateInstruction<1> {
|
| + public:
|
| + InitStaticFieldInstr(Value* input, const Field& field)
|
| + : field_(field) {
|
| + SetInputAt(0, input);
|
| + }
|
| +
|
| + virtual intptr_t token_pos() const { return field_.token_pos(); }
|
| + const Field& field() const { return field_; }
|
| +
|
| + DECLARE_INSTRUCTION(InitStaticField)
|
| +
|
| + virtual intptr_t ArgumentCount() const { return 0; }
|
| + virtual bool CanDeoptimize() const { return true; }
|
| + virtual EffectSet Effects() const { return EffectSet::All(); }
|
| + virtual bool MayThrow() const { return true; }
|
| + virtual Instruction* Canonicalize(FlowGraph* flow_graph);
|
| +
|
| + private:
|
| + const Field& field_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(InitStaticFieldInstr);
|
| +};
|
| +
|
| +
|
| class AllocateUninitializedContextInstr : public TemplateDefinition<0> {
|
| public:
|
| AllocateUninitializedContextInstr(intptr_t token_pos,
|
|
|