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 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 template<class I, class P1, class P2> | 990 template<class I, class P1, class P2> |
991 I* Add(P1 p1, P2 p2) { | 991 I* Add(P1 p1, P2 p2) { |
992 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2))); | 992 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2))); |
993 } | 993 } |
994 | 994 |
995 template<class I, class P1, class P2, class P3> | 995 template<class I, class P1, class P2, class P3> |
996 I* Add(P1 p1, P2 p2, P3 p3) { | 996 I* Add(P1 p1, P2 p2, P3 p3) { |
997 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2, p3))); | 997 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2, p3))); |
998 } | 998 } |
999 | 999 |
| 1000 template<class I, class P1, class P2, class P3, class P4> |
| 1001 I* Add(P1 p1, P2 p2, P3 p3, P4 p4) { |
| 1002 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2, p3, p4))); |
| 1003 } |
| 1004 |
| 1005 template<class I, class P1, class P2, class P3, class P4, class P5> |
| 1006 I* Add(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) { |
| 1007 return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2, p3, p4, p5))); |
| 1008 } |
| 1009 |
| 1010 template<class I, class P1, class P2, class P3, class P4, class P5, class P6> |
| 1011 I* Add(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) { |
| 1012 return static_cast<I*>(AddInstruction( |
| 1013 new(zone()) I(p1, p2, p3, p4, p5, p6))); |
| 1014 } |
| 1015 |
| 1016 template<class I, class P1, class P2, class P3, |
| 1017 class P4, class P5, class P6, class P7> |
| 1018 I* Add(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) { |
| 1019 return static_cast<I*>(AddInstruction( |
| 1020 new(zone()) I(p1, p2, p3, p4, p5, p6, p7))); |
| 1021 } |
| 1022 |
| 1023 template<class I, class P1, class P2, class P3, class P4, |
| 1024 class P5, class P6, class P7, class P8> |
| 1025 I* Add(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) { |
| 1026 return static_cast<I*>(AddInstruction( |
| 1027 new(zone()) I(p1, p2, p3, p4, p5, p6, p7, p8))); |
| 1028 } |
| 1029 |
1000 void AddSimulate(BailoutId id, | 1030 void AddSimulate(BailoutId id, |
1001 RemovableSimulate removable = FIXED_SIMULATE); | 1031 RemovableSimulate removable = FIXED_SIMULATE); |
1002 | 1032 |
1003 HReturn* AddReturn(HValue* value); | 1033 HReturn* AddReturn(HValue* value); |
1004 | 1034 |
1005 void IncrementInNoSideEffectsScope() { | 1035 void IncrementInNoSideEffectsScope() { |
1006 no_side_effects_scope_count_++; | 1036 no_side_effects_scope_count_++; |
1007 } | 1037 } |
1008 | 1038 |
1009 void DecrementInNoSideEffectsScope() { | 1039 void DecrementInNoSideEffectsScope() { |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1284 HValue* AllocateEmptyArray(); | 1314 HValue* AllocateEmptyArray(); |
1285 HValue* AllocateArray(HValue* capacity, HValue* length_field, | 1315 HValue* AllocateArray(HValue* capacity, HValue* length_field, |
1286 bool fill_with_hole); | 1316 bool fill_with_hole); |
1287 HValue* GetElementsLocation() { return elements_location_; } | 1317 HValue* GetElementsLocation() { return elements_location_; } |
1288 | 1318 |
1289 private: | 1319 private: |
1290 Zone* zone() const { return builder_->zone(); } | 1320 Zone* zone() const { return builder_->zone(); } |
1291 int elements_size() const { | 1321 int elements_size() const { |
1292 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; | 1322 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; |
1293 } | 1323 } |
1294 HInstruction* AddInstruction(HInstruction* instr) { | |
1295 return builder_->AddInstruction(instr); | |
1296 } | |
1297 HGraphBuilder* builder() { return builder_; } | 1324 HGraphBuilder* builder() { return builder_; } |
1298 HGraph* graph() { return builder_->graph(); } | 1325 HGraph* graph() { return builder_->graph(); } |
1299 int initial_capacity() { | 1326 int initial_capacity() { |
1300 STATIC_ASSERT(JSArray::kPreallocatedArrayElements > 0); | 1327 STATIC_ASSERT(JSArray::kPreallocatedArrayElements > 0); |
1301 return JSArray::kPreallocatedArrayElements; | 1328 return JSArray::kPreallocatedArrayElements; |
1302 } | 1329 } |
1303 | 1330 |
1304 HValue* EmitMapCode(HValue* context); | 1331 HValue* EmitMapCode(HValue* context); |
1305 HValue* EmitInternalMapCode(); | 1332 HValue* EmitInternalMapCode(); |
1306 HValue* EstablishEmptyArrayAllocationSize(); | 1333 HValue* EstablishEmptyArrayAllocationSize(); |
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2054 EmbeddedVector<char, 64> filename_; | 2081 EmbeddedVector<char, 64> filename_; |
2055 HeapStringAllocator string_allocator_; | 2082 HeapStringAllocator string_allocator_; |
2056 StringStream trace_; | 2083 StringStream trace_; |
2057 int indent_; | 2084 int indent_; |
2058 }; | 2085 }; |
2059 | 2086 |
2060 | 2087 |
2061 } } // namespace v8::internal | 2088 } } // namespace v8::internal |
2062 | 2089 |
2063 #endif // V8_HYDROGEN_H_ | 2090 #endif // V8_HYDROGEN_H_ |
OLD | NEW |