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); | |
1402 | 1401 |
1403 bool MatchRotateRight(HValue* left, | 1402 bool MatchRotateRight(HValue* left, |
1404 HValue* right, | 1403 HValue* right, |
1405 HValue** operand, | 1404 HValue** operand, |
1406 HValue** shift_amount); | 1405 HValue** shift_amount); |
1407 | 1406 |
1408 HValue* BuildBinaryOperation(Token::Value op, | 1407 HValue* BuildBinaryOperation(Token::Value op, |
1409 HValue* left, | 1408 HValue* left, |
1410 HValue* right, | 1409 HValue* right, |
1411 Type* left_type, | 1410 Type* left_type, |
1412 Type* right_type, | 1411 Type* right_type, |
1413 Type* result_type, | 1412 Type* result_type, |
1414 Maybe<int> fixed_right_arg, | 1413 Maybe<int> fixed_right_arg, |
1415 HAllocationMode allocation_mode); | 1414 HAllocationMode allocation_mode); |
1416 | 1415 |
1417 HLoadNamedField* AddLoadFixedArrayLength(HValue *object, | 1416 HLoadNamedField* AddLoadFixedArrayLength(HValue *object); |
1418 HValue *dependency = NULL); | |
1419 | |
1420 HLoadNamedField* AddLoadArrayLength(HValue *object, | |
1421 ElementsKind kind, | |
1422 HValue *dependency = NULL); | |
1423 | 1417 |
1424 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); | 1418 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); |
1425 | 1419 |
1426 HValue* EnforceNumberType(HValue* number, Type* expected); | 1420 HValue* EnforceNumberType(HValue* number, Type* expected); |
1427 HValue* TruncateToNumber(HValue* value, Type** expected); | 1421 HValue* TruncateToNumber(HValue* value, Type** expected); |
1428 | 1422 |
1429 void FinishExitWithHardDeoptimization(const char* reason); | 1423 void FinishExitWithHardDeoptimization(const char* reason); |
1430 | 1424 |
1431 void AddIncrementCounter(StatsCounter* counter); | 1425 void AddIncrementCounter(StatsCounter* counter); |
1432 | 1426 |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1752 ElementsKind kind, | 1746 ElementsKind kind, |
1753 ElementsKind new_kind, | 1747 ElementsKind new_kind, |
1754 HValue* length, | 1748 HValue* length, |
1755 HValue* new_capacity); | 1749 HValue* new_capacity); |
1756 | 1750 |
1757 void BuildFillElementsWithHole(HValue* elements, | 1751 void BuildFillElementsWithHole(HValue* elements, |
1758 ElementsKind elements_kind, | 1752 ElementsKind elements_kind, |
1759 HValue* from, | 1753 HValue* from, |
1760 HValue* to); | 1754 HValue* to); |
1761 | 1755 |
1762 void BuildCopyElements(HValue* array, | 1756 void BuildCopyElements(HValue* from_elements, |
1763 HValue* from_elements, | |
1764 ElementsKind from_elements_kind, | 1757 ElementsKind from_elements_kind, |
1765 HValue* to_elements, | 1758 HValue* to_elements, |
1766 ElementsKind to_elements_kind, | 1759 ElementsKind to_elements_kind, |
1767 HValue* length, | 1760 HValue* length, |
1768 HValue* capacity); | 1761 HValue* capacity); |
1769 | 1762 |
1770 HValue* BuildCloneShallowArrayCommon(HValue* boilerplate, | 1763 HValue* BuildCloneShallowArray(HValue* boilerplate, |
1771 HValue* allocation_site, | 1764 HValue* allocation_site, |
1772 HValue* extra_size, | 1765 AllocationSiteMode mode, |
1773 HValue** return_elements, | 1766 ElementsKind kind, |
1774 AllocationSiteMode mode); | 1767 int length); |
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); | |
1789 | 1768 |
1790 HValue* BuildElementIndexHash(HValue* index); | 1769 HValue* BuildElementIndexHash(HValue* index); |
1791 | 1770 |
1792 void BuildCompareNil( | 1771 void BuildCompareNil( |
1793 HValue* value, | 1772 HValue* value, |
1794 Type* type, | 1773 Type* type, |
1795 HIfContinuation* continuation); | 1774 HIfContinuation* continuation); |
1796 | 1775 |
1797 void BuildCreateAllocationMemento(HValue* previous_object, | 1776 void BuildCreateAllocationMemento(HValue* previous_object, |
1798 HValue* previous_object_size, | 1777 HValue* previous_object_size, |
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2801 } | 2780 } |
2802 | 2781 |
2803 private: | 2782 private: |
2804 HGraphBuilder* builder_; | 2783 HGraphBuilder* builder_; |
2805 }; | 2784 }; |
2806 | 2785 |
2807 | 2786 |
2808 } } // namespace v8::internal | 2787 } } // namespace v8::internal |
2809 | 2788 |
2810 #endif // V8_HYDROGEN_H_ | 2789 #endif // V8_HYDROGEN_H_ |
OLD | NEW |