| Index: src/lithium.h
|
| diff --git a/src/lithium.h b/src/lithium.h
|
| index ff644ee5f36188f0e4f3dce7f1fbb68f53365ed1..febf50ac9085ac8146fcc048ce0a1aa1062f35b0 100644
|
| --- a/src/lithium.h
|
| +++ b/src/lithium.h
|
| @@ -622,6 +622,64 @@ class DeepIterator BASE_EMBEDDED {
|
| };
|
|
|
|
|
| +class LGap;
|
| +class LLabel;
|
| +
|
| +// Superclass providing data and behavior common to all the
|
| +// arch-specific LChunk classes.
|
| +class LChunkBase: public ZoneObject {
|
| + public:
|
| + LChunkBase(CompilationInfo* info, HGraph* graph)
|
| + : spill_slot_count_(0),
|
| + info_(info),
|
| + graph_(graph),
|
| + instructions_(32, graph->zone()),
|
| + pointer_maps_(8, graph->zone()),
|
| + inlined_closures_(1, graph->zone()) { }
|
| +
|
| + void AddInstruction(LInstruction* instruction, HBasicBlock* block);
|
| + LConstantOperand* DefineConstantOperand(HConstant* constant);
|
| + Handle<Object> LookupLiteral(LConstantOperand* operand) const;
|
| + Representation LookupLiteralRepresentation(LConstantOperand* operand) const;
|
| +
|
| + int ParameterAt(int index);
|
| + int GetParameterStackSlot(int index) const;
|
| + int spill_slot_count() const { return spill_slot_count_; }
|
| + CompilationInfo* info() const { return info_; }
|
| + HGraph* graph() const { return graph_; }
|
| + const ZoneList<LInstruction*>* instructions() const { return &instructions_; }
|
| + void AddGapMove(int index, LOperand* from, LOperand* to);
|
| + LGap* GetGapAt(int index) const;
|
| + bool IsGapAt(int index) const;
|
| + int NearestGapPos(int index) const;
|
| + void MarkEmptyBlocks();
|
| + const ZoneList<LPointerMap*>* pointer_maps() const { return &pointer_maps_; }
|
| + LLabel* GetLabel(int block_id) const;
|
| + int LookupDestination(int block_id) const;
|
| + Label* GetAssemblyLabel(int block_id) const;
|
| +
|
| + const ZoneList<Handle<JSFunction> >* inlined_closures() const {
|
| + return &inlined_closures_;
|
| + }
|
| +
|
| + void AddInlinedClosure(Handle<JSFunction> closure) {
|
| + inlined_closures_.Add(closure, zone());
|
| + }
|
| +
|
| + Zone* zone() const { return info_->zone(); }
|
| +
|
| + protected:
|
| + int spill_slot_count_;
|
| +
|
| + private:
|
| + CompilationInfo* info_;
|
| + HGraph* const graph_;
|
| + ZoneList<LInstruction*> instructions_;
|
| + ZoneList<LPointerMap*> pointer_maps_;
|
| + ZoneList<Handle<JSFunction> > inlined_closures_;
|
| +};
|
| +
|
| +
|
| int ElementsKindToShiftSize(ElementsKind elements_kind);
|
|
|
|
|
|
|