Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 3748970585155bb876219b0a70a777aa9b49e32f..a1bc873bd4fbd6cdae3966094a637692a3389486 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -425,7 +425,8 @@ enum FrameType { |
JS_CONSTRUCT, |
JS_GETTER, |
JS_SETTER, |
- ARGUMENTS_ADAPTOR |
+ ARGUMENTS_ADAPTOR, |
+ STUB |
}; |
@@ -436,6 +437,8 @@ class HEnvironment: public ZoneObject { |
Handle<JSFunction> closure, |
Zone* zone); |
+ explicit HEnvironment(Zone* zone); |
+ |
HEnvironment* arguments_environment() { |
return outer()->frame_type() == ARGUMENTS_ADAPTOR ? outer() : this; |
} |
@@ -1119,24 +1122,51 @@ class HGraphBuilder: public AstVisitor { |
HValue* right); |
HInstruction* BuildIncrement(bool returns_original_input, |
CountOperation* expr); |
- HInstruction* BuildFastElementAccess(HValue* elements, |
- HValue* checked_key, |
- HValue* val, |
- HValue* dependency, |
- ElementsKind elements_kind, |
- bool is_store); |
+ HLoadNamedField* BuildLoadNamedField(HValue* object, |
Jakob Kummerow
2012/11/19 12:36:00
merge problem?
danno
2012/11/26 17:16:18
Done.
|
+ Property* expr, |
+ Handle<Map> type, |
+ LookupResult* result, |
+ bool smi_and_map_check); |
+ HInstruction* BuildLoadNamedGeneric(HValue* object, Property* expr); |
+ HInstruction* BuildLoadKeyedGeneric(HValue* object, |
+ HValue* key); |
+ static HInstruction* BuildExternalArrayElementAccess( |
+ HGraph* graph, |
+ HBasicBlock* current_block, |
+ HValue* external_elements, |
+ HValue* checked_key, |
+ HValue* val, |
+ HValue* dependency, |
+ ElementsKind elements_kind, |
+ bool is_store, |
+ Zone* zone); |
+ static HInstruction* BuildFastElementAccess( |
+ HGraph* graph, |
+ HBasicBlock* current_block, |
+ HValue* elements, |
+ HValue* checked_key, |
+ HValue* val, |
+ HValue* dependency, |
+ ElementsKind elements_kind, |
+ bool is_store, |
+ Zone* zone); |
HInstruction* TryBuildConsolidatedElementLoad(HValue* object, |
HValue* key, |
HValue* val, |
SmallMapList* maps); |
- HInstruction* BuildUncheckedMonomorphicElementAccess(HValue* object, |
- HValue* key, |
- HValue* val, |
- HCheckMaps* mapcheck, |
- Handle<Map> map, |
- bool is_store); |
+ static HInstruction* BuildUncheckedMonomorphicElementAccess( |
+ HGraph* graph, |
+ HBasicBlock* current_block, |
+ HValue* object, |
+ HValue* key, |
+ HValue* val, |
+ HCheckMaps* mapcheck, |
+ bool is_js_array, |
+ ElementsKind elements_kind, |
+ bool is_store, |
+ Zone* zone); |
HInstruction* BuildMonomorphicElementAccess(HValue* object, |
HValue* key, |
@@ -1177,14 +1207,6 @@ class HGraphBuilder: public AstVisitor { |
Handle<String> name, |
Property* expr, |
Handle<Map> map); |
- HInstruction* BuildLoadKeyedGeneric(HValue* object, HValue* key); |
- HInstruction* BuildExternalArrayElementAccess( |
- HValue* external_elements, |
- HValue* checked_key, |
- HValue* val, |
- HValue* dependency, |
- ElementsKind elements_kind, |
- bool is_store); |
void AddCheckMapsWithTransitions(HValue* object, |
Handle<Map> map); |
@@ -1253,6 +1275,7 @@ class HGraphBuilder: public AstVisitor { |
friend class FunctionState; // Pushes and pops the state stack. |
friend class AstContext; // Pushes and pops the AST context stack. |
+ friend class KeyedLoadFastElementStub; |
DISALLOW_COPY_AND_ASSIGN(HGraphBuilder); |
}; |
@@ -1416,7 +1439,7 @@ class HPhase BASE_EMBEDDED { |
class HTracer: public Malloced { |
public: |
- void TraceCompilation(FunctionLiteral* function); |
+ void TraceCompilation(CompilationInfo* info); |
void TraceHydrogen(const char* name, HGraph* graph); |
void TraceLithium(const char* name, LChunk* chunk); |
void TraceLiveRanges(const char* name, LAllocator* allocator); |