OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 protected: | 985 protected: |
986 virtual bool BuildGraph() = 0; | 986 virtual bool BuildGraph() = 0; |
987 | 987 |
988 HBasicBlock* CreateBasicBlock(HEnvironment* env); | 988 HBasicBlock* CreateBasicBlock(HEnvironment* env); |
989 HBasicBlock* CreateLoopHeaderBlock(); | 989 HBasicBlock* CreateLoopHeaderBlock(); |
990 | 990 |
991 HValue* BuildCheckNonSmi(HValue* object); | 991 HValue* BuildCheckNonSmi(HValue* object); |
992 HValue* BuildCheckMap(HValue* obj, Handle<Map> map); | 992 HValue* BuildCheckMap(HValue* obj, Handle<Map> map); |
993 | 993 |
994 // Building common constructs | 994 // Building common constructs |
995 HLoadNamedField* DoBuildLoadNamedField(HValue* object, | |
996 bool inobject, | |
997 Representation representation, | |
998 int offset); | |
999 | |
1000 HInstruction* BuildExternalArrayElementAccess( | 995 HInstruction* BuildExternalArrayElementAccess( |
1001 HValue* external_elements, | 996 HValue* external_elements, |
1002 HValue* checked_key, | 997 HValue* checked_key, |
1003 HValue* val, | 998 HValue* val, |
1004 HValue* dependency, | 999 HValue* dependency, |
1005 ElementsKind elements_kind, | 1000 ElementsKind elements_kind, |
1006 bool is_store); | 1001 bool is_store); |
1007 | 1002 |
1008 HInstruction* BuildFastElementAccess( | 1003 HInstruction* BuildFastElementAccess( |
1009 HValue* elements, | 1004 HValue* elements, |
(...skipping 22 matching lines...) Expand all Loading... |
1032 HValue* key, | 1027 HValue* key, |
1033 HValue* val, | 1028 HValue* val, |
1034 HCheckMaps* mapcheck, | 1029 HCheckMaps* mapcheck, |
1035 bool is_js_array, | 1030 bool is_js_array, |
1036 ElementsKind elements_kind, | 1031 ElementsKind elements_kind, |
1037 bool is_store, | 1032 bool is_store, |
1038 LoadKeyedHoleMode load_mode, | 1033 LoadKeyedHoleMode load_mode, |
1039 KeyedAccessStoreMode store_mode, | 1034 KeyedAccessStoreMode store_mode, |
1040 Representation checked_index_representation = Representation::None()); | 1035 Representation checked_index_representation = Representation::None()); |
1041 | 1036 |
1042 HInstruction* BuildStoreMap(HValue* object, HValue* map); | 1037 HLoadNamedField* AddLoad( |
1043 HInstruction* BuildStoreMap(HValue* object, Handle<Map> map); | 1038 HValue *object, |
| 1039 HObjectAccess access, |
| 1040 HValue *typecheck = NULL, |
| 1041 Representation representation = Representation::Tagged()); |
| 1042 |
| 1043 HLoadNamedField* BuildLoadNamedField( |
| 1044 HValue* object, |
| 1045 HObjectAccess access, |
| 1046 Representation representation); |
| 1047 |
| 1048 HStoreNamedField* AddStore( |
| 1049 HValue *object, |
| 1050 HObjectAccess access, |
| 1051 HValue *val, |
| 1052 Representation representation = Representation::Tagged()); |
| 1053 |
| 1054 HStoreNamedField* AddStoreMapConstant(HValue *object, Handle<Map>); |
1044 | 1055 |
1045 HLoadNamedField* AddLoadElements(HValue *object, HValue *typecheck = NULL); | 1056 HLoadNamedField* AddLoadElements(HValue *object, HValue *typecheck = NULL); |
1046 | 1057 |
1047 class IfBuilder { | 1058 class IfBuilder { |
1048 public: | 1059 public: |
1049 explicit IfBuilder(HGraphBuilder* builder, | 1060 explicit IfBuilder(HGraphBuilder* builder, |
1050 int position = RelocInfo::kNoPosition); | 1061 int position = RelocInfo::kNoPosition); |
1051 IfBuilder(HGraphBuilder* builder, | 1062 IfBuilder(HGraphBuilder* builder, |
1052 HIfContinuation* continuation); | 1063 HIfContinuation* continuation); |
1053 | 1064 |
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1685 | 1696 |
1686 HValue* HandleKeyedElementAccess(HValue* obj, | 1697 HValue* HandleKeyedElementAccess(HValue* obj, |
1687 HValue* key, | 1698 HValue* key, |
1688 HValue* val, | 1699 HValue* val, |
1689 Expression* expr, | 1700 Expression* expr, |
1690 BailoutId ast_id, | 1701 BailoutId ast_id, |
1691 int position, | 1702 int position, |
1692 bool is_store, | 1703 bool is_store, |
1693 bool* has_side_effects); | 1704 bool* has_side_effects); |
1694 | 1705 |
1695 HLoadNamedField* BuildLoadNamedField(HValue* object, | |
1696 Handle<Map> map, | |
1697 LookupResult* result); | |
1698 HInstruction* BuildLoadNamedGeneric(HValue* object, | 1706 HInstruction* BuildLoadNamedGeneric(HValue* object, |
1699 Handle<String> name, | 1707 Handle<String> name, |
1700 Property* expr); | 1708 Property* expr); |
1701 HInstruction* BuildCallGetter(HValue* object, | 1709 HInstruction* BuildCallGetter(HValue* object, |
1702 Handle<Map> map, | 1710 Handle<Map> map, |
1703 Handle<JSFunction> getter, | 1711 Handle<JSFunction> getter, |
1704 Handle<JSObject> holder); | 1712 Handle<JSObject> holder); |
1705 HInstruction* BuildLoadNamedMonomorphic(HValue* object, | 1713 HInstruction* BuildLoadNamedMonomorphic(HValue* object, |
1706 Handle<String> name, | 1714 Handle<String> name, |
1707 Property* expr, | 1715 Property* expr, |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2025 EmbeddedVector<char, 64> filename_; | 2033 EmbeddedVector<char, 64> filename_; |
2026 HeapStringAllocator string_allocator_; | 2034 HeapStringAllocator string_allocator_; |
2027 StringStream trace_; | 2035 StringStream trace_; |
2028 int indent_; | 2036 int indent_; |
2029 }; | 2037 }; |
2030 | 2038 |
2031 | 2039 |
2032 } } // namespace v8::internal | 2040 } } // namespace v8::internal |
2033 | 2041 |
2034 #endif // V8_HYDROGEN_H_ | 2042 #endif // V8_HYDROGEN_H_ |
OLD | NEW |