Index: src/lithium.h |
diff --git a/src/lithium.h b/src/lithium.h |
index d4395f2d7ee39231f97f8773b991421fcff1930e..754f88da82184816de334a89daf09a86a55c1231 100644 |
--- a/src/lithium.h |
+++ b/src/lithium.h |
@@ -791,6 +791,35 @@ class LChunk : public ZoneObject { |
}; |
+class LChunkBuilderBase BASE_EMBEDDED { |
+ public: |
+ explicit LChunkBuilderBase(Zone* zone) |
+ : argument_count_(0), |
+ zone_(zone) { } |
+ |
+ virtual ~LChunkBuilderBase() { } |
+ |
+ protected: |
+ // An input operand in register, stack slot or a constant operand. |
+ // Will not be moved to a register even if one is freely available. |
+ virtual MUST_USE_RESULT LOperand* UseAny(HValue* value) = 0; |
+ |
+ LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, |
+ int* argument_index_accumulator, |
+ ZoneList<HValue*>* objects_to_materialize); |
+ void AddObjectToMaterialize(HValue* value, |
+ ZoneList<HValue*>* objects_to_materialize, |
+ LEnvironment* result); |
+ |
+ Zone* zone() const { return zone_; } |
+ |
+ int argument_count_; |
+ |
+ private: |
+ Zone* zone_; |
+}; |
+ |
+ |
int StackSlotOffset(int index); |
enum NumberUntagDMode { |