Chromium Code Reviews| Index: runtime/vm/intermediate_language.h |
| =================================================================== |
| --- runtime/vm/intermediate_language.h (revision 23243) |
| +++ runtime/vm/intermediate_language.h (working copy) |
| @@ -529,6 +529,8 @@ |
| M(PolymorphicInstanceCall) \ |
| M(StaticCall) \ |
| M(LoadLocal) \ |
| + M(PushTemp) \ |
| + M(DropTemps) \ |
| M(StoreLocal) \ |
| M(StrictCompare) \ |
| M(EqualityCompare) \ |
| @@ -3145,6 +3147,68 @@ |
| }; |
| +class PushTempInstr : public TemplateDefinition<1> { |
| + public: |
| + explicit PushTempInstr(Value* value) { |
| + SetInputAt(0, value); |
| + } |
| + |
| + DECLARE_INSTRUCTION(PushTemp) |
| + |
| + Value* value() const { return inputs_[0]; } |
| + |
| + virtual CompileType ComputeType() const; |
| + |
| + virtual bool CanDeoptimize() const { return false; } |
| + |
| + virtual EffectSet Effects() const { |
| + UNREACHABLE(); // Eliminated by SSA construction. |
| + return EffectSet::None(); |
| + } |
| + |
| + virtual bool MayThrow() const { |
| + UNREACHABLE(); |
| + return false; |
| + } |
| + |
|
srdjan
2013/05/28 13:30:43
private:
Florian Schneider
2013/05/30 09:29:31
Done.
|
| + DISALLOW_COPY_AND_ASSIGN(PushTempInstr); |
| +}; |
| + |
| + |
| +class DropTempsInstr : public TemplateDefinition<1> { |
| + public: |
| + explicit DropTempsInstr(intptr_t num_temps, Value* value) |
| + : num_temps_(num_temps) { |
| + SetInputAt(0, value); |
| + } |
| + |
| + DECLARE_INSTRUCTION(DropTemps) |
| + |
| + Value* value() const { return inputs_[0]; } |
| + |
| + intptr_t num_temps() const { return num_temps_; } |
| + |
| + virtual CompileType ComputeType() const; |
| + |
| + virtual bool CanDeoptimize() const { return false; } |
| + |
| + virtual EffectSet Effects() const { |
| + UNREACHABLE(); // Eliminated by SSA construction. |
| + return EffectSet::None(); |
| + } |
| + |
| + virtual bool MayThrow() const { |
| + UNREACHABLE(); |
| + return false; |
| + } |
| + |
| + private: |
| + intptr_t num_temps_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DropTempsInstr); |
| +}; |
| + |
| + |
| class StoreLocalInstr : public TemplateDefinition<1> { |
| public: |
| StoreLocalInstr(const LocalVariable& local, Value* value) |