OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_HYDROGEN_H_ | 5 #ifndef V8_HYDROGEN_H_ |
6 #define V8_HYDROGEN_H_ | 6 #define V8_HYDROGEN_H_ |
7 | 7 |
8 #include "v8.h" | 8 #include "v8.h" |
9 | 9 |
10 #include "accessors.h" | 10 #include "accessors.h" |
(...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 store_map->SkipWriteBarrier(); | 1390 store_map->SkipWriteBarrier(); |
1391 return store_map; | 1391 return store_map; |
1392 } | 1392 } |
1393 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map> map); | 1393 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map> map); |
1394 HStoreNamedField* AddStoreMapConstantNoWriteBarrier(HValue* object, | 1394 HStoreNamedField* AddStoreMapConstantNoWriteBarrier(HValue* object, |
1395 Handle<Map> map) { | 1395 Handle<Map> map) { |
1396 HStoreNamedField* store_map = AddStoreMapConstant(object, map); | 1396 HStoreNamedField* store_map = AddStoreMapConstant(object, map); |
1397 store_map->SkipWriteBarrier(); | 1397 store_map->SkipWriteBarrier(); |
1398 return store_map; | 1398 return store_map; |
1399 } | 1399 } |
1400 HLoadNamedField* AddLoadElements(HValue* object); | 1400 HLoadNamedField* AddLoadElements(HValue* object, |
| 1401 HValue* dependency = NULL); |
1401 | 1402 |
1402 bool MatchRotateRight(HValue* left, | 1403 bool MatchRotateRight(HValue* left, |
1403 HValue* right, | 1404 HValue* right, |
1404 HValue** operand, | 1405 HValue** operand, |
1405 HValue** shift_amount); | 1406 HValue** shift_amount); |
1406 | 1407 |
1407 HValue* BuildBinaryOperation(Token::Value op, | 1408 HValue* BuildBinaryOperation(Token::Value op, |
1408 HValue* left, | 1409 HValue* left, |
1409 HValue* right, | 1410 HValue* right, |
1410 Type* left_type, | 1411 Type* left_type, |
1411 Type* right_type, | 1412 Type* right_type, |
1412 Type* result_type, | 1413 Type* result_type, |
1413 Maybe<int> fixed_right_arg, | 1414 Maybe<int> fixed_right_arg, |
1414 HAllocationMode allocation_mode); | 1415 HAllocationMode allocation_mode); |
1415 | 1416 |
1416 HLoadNamedField* AddLoadFixedArrayLength(HValue *object); | 1417 HLoadNamedField* AddLoadFixedArrayLength(HValue *object, |
| 1418 HValue *dependency = NULL); |
| 1419 |
| 1420 HLoadNamedField* AddLoadArrayLength(HValue *object, |
| 1421 ElementsKind kind, |
| 1422 HValue *dependency = NULL); |
1417 | 1423 |
1418 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); | 1424 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); |
1419 | 1425 |
1420 HValue* EnforceNumberType(HValue* number, Type* expected); | 1426 HValue* EnforceNumberType(HValue* number, Type* expected); |
1421 HValue* TruncateToNumber(HValue* value, Type** expected); | 1427 HValue* TruncateToNumber(HValue* value, Type** expected); |
1422 | 1428 |
1423 void FinishExitWithHardDeoptimization(const char* reason); | 1429 void FinishExitWithHardDeoptimization(const char* reason); |
1424 | 1430 |
1425 void AddIncrementCounter(StatsCounter* counter); | 1431 void AddIncrementCounter(StatsCounter* counter); |
1426 | 1432 |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1746 ElementsKind kind, | 1752 ElementsKind kind, |
1747 ElementsKind new_kind, | 1753 ElementsKind new_kind, |
1748 HValue* length, | 1754 HValue* length, |
1749 HValue* new_capacity); | 1755 HValue* new_capacity); |
1750 | 1756 |
1751 void BuildFillElementsWithHole(HValue* elements, | 1757 void BuildFillElementsWithHole(HValue* elements, |
1752 ElementsKind elements_kind, | 1758 ElementsKind elements_kind, |
1753 HValue* from, | 1759 HValue* from, |
1754 HValue* to); | 1760 HValue* to); |
1755 | 1761 |
1756 void BuildCopyElements(HValue* from_elements, | 1762 void BuildCopyElements(HValue* array, |
| 1763 HValue* from_elements, |
1757 ElementsKind from_elements_kind, | 1764 ElementsKind from_elements_kind, |
1758 HValue* to_elements, | 1765 HValue* to_elements, |
1759 ElementsKind to_elements_kind, | 1766 ElementsKind to_elements_kind, |
1760 HValue* length, | 1767 HValue* length, |
1761 HValue* capacity); | 1768 HValue* capacity); |
1762 | 1769 |
1763 HValue* BuildCloneShallowArray(HValue* boilerplate, | 1770 HValue* BuildCloneShallowArrayCommon(HValue* boilerplate, |
1764 HValue* allocation_site, | 1771 HValue* allocation_site, |
1765 AllocationSiteMode mode, | 1772 HValue* extra_size, |
1766 ElementsKind kind, | 1773 HValue** return_elements, |
1767 int length); | 1774 AllocationSiteMode mode); |
| 1775 |
| 1776 HValue* BuildCloneShallowArrayCow(HValue* boilerplate, |
| 1777 HValue* allocation_site, |
| 1778 AllocationSiteMode mode, |
| 1779 ElementsKind kind); |
| 1780 |
| 1781 HValue* BuildCloneShallowArrayEmpty(HValue* boilerplate, |
| 1782 HValue* allocation_site, |
| 1783 AllocationSiteMode mode); |
| 1784 |
| 1785 HValue* BuildCloneShallowArrayNonEmpty(HValue* boilerplate, |
| 1786 HValue* allocation_site, |
| 1787 AllocationSiteMode mode, |
| 1788 ElementsKind kind); |
1768 | 1789 |
1769 HValue* BuildElementIndexHash(HValue* index); | 1790 HValue* BuildElementIndexHash(HValue* index); |
1770 | 1791 |
1771 void BuildCompareNil( | 1792 void BuildCompareNil( |
1772 HValue* value, | 1793 HValue* value, |
1773 Type* type, | 1794 Type* type, |
1774 HIfContinuation* continuation); | 1795 HIfContinuation* continuation); |
1775 | 1796 |
1776 void BuildCreateAllocationMemento(HValue* previous_object, | 1797 void BuildCreateAllocationMemento(HValue* previous_object, |
1777 HValue* previous_object_size, | 1798 HValue* previous_object_size, |
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2780 } | 2801 } |
2781 | 2802 |
2782 private: | 2803 private: |
2783 HGraphBuilder* builder_; | 2804 HGraphBuilder* builder_; |
2784 }; | 2805 }; |
2785 | 2806 |
2786 | 2807 |
2787 } } // namespace v8::internal | 2808 } } // namespace v8::internal |
2788 | 2809 |
2789 #endif // V8_HYDROGEN_H_ | 2810 #endif // V8_HYDROGEN_H_ |
OLD | NEW |