Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: src/hydrogen.h

Issue 257563004: Unify and simplify the FastCloneShallowArrayStub (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review feedback Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 store_map->SkipWriteBarrier(); 1414 store_map->SkipWriteBarrier();
1415 return store_map; 1415 return store_map;
1416 } 1416 }
1417 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map> map); 1417 HStoreNamedField* AddStoreMapConstant(HValue* object, Handle<Map> map);
1418 HStoreNamedField* AddStoreMapConstantNoWriteBarrier(HValue* object, 1418 HStoreNamedField* AddStoreMapConstantNoWriteBarrier(HValue* object,
1419 Handle<Map> map) { 1419 Handle<Map> map) {
1420 HStoreNamedField* store_map = AddStoreMapConstant(object, map); 1420 HStoreNamedField* store_map = AddStoreMapConstant(object, map);
1421 store_map->SkipWriteBarrier(); 1421 store_map->SkipWriteBarrier();
1422 return store_map; 1422 return store_map;
1423 } 1423 }
1424 HLoadNamedField* AddLoadElements(HValue* object); 1424 HLoadNamedField* AddLoadElements(HValue* object,
1425 HValue* dependency = NULL);
1425 1426
1426 bool MatchRotateRight(HValue* left, 1427 bool MatchRotateRight(HValue* left,
1427 HValue* right, 1428 HValue* right,
1428 HValue** operand, 1429 HValue** operand,
1429 HValue** shift_amount); 1430 HValue** shift_amount);
1430 1431
1431 HValue* BuildBinaryOperation(Token::Value op, 1432 HValue* BuildBinaryOperation(Token::Value op,
1432 HValue* left, 1433 HValue* left,
1433 HValue* right, 1434 HValue* right,
1434 Type* left_type, 1435 Type* left_type,
1435 Type* right_type, 1436 Type* right_type,
1436 Type* result_type, 1437 Type* result_type,
1437 Maybe<int> fixed_right_arg, 1438 Maybe<int> fixed_right_arg,
1438 HAllocationMode allocation_mode); 1439 HAllocationMode allocation_mode);
1439 1440
1440 HLoadNamedField* AddLoadFixedArrayLength(HValue *object); 1441 HLoadNamedField* AddLoadFixedArrayLength(HValue *object,
1442 HValue *dependency = NULL);
1443
1444 HLoadNamedField* AddLoadArrayLength(HValue *object,
1445 ElementsKind kind,
1446 HValue *dependency = NULL);
1441 1447
1442 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); 1448 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin);
1443 1449
1444 HValue* EnforceNumberType(HValue* number, Type* expected); 1450 HValue* EnforceNumberType(HValue* number, Type* expected);
1445 HValue* TruncateToNumber(HValue* value, Type** expected); 1451 HValue* TruncateToNumber(HValue* value, Type** expected);
1446 1452
1447 void FinishExitWithHardDeoptimization(const char* reason); 1453 void FinishExitWithHardDeoptimization(const char* reason);
1448 1454
1449 void AddIncrementCounter(StatsCounter* counter); 1455 void AddIncrementCounter(StatsCounter* counter);
1450 1456
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1773 ElementsKind kind, 1779 ElementsKind kind,
1774 ElementsKind new_kind, 1780 ElementsKind new_kind,
1775 HValue* length, 1781 HValue* length,
1776 HValue* new_capacity); 1782 HValue* new_capacity);
1777 1783
1778 void BuildFillElementsWithHole(HValue* elements, 1784 void BuildFillElementsWithHole(HValue* elements,
1779 ElementsKind elements_kind, 1785 ElementsKind elements_kind,
1780 HValue* from, 1786 HValue* from,
1781 HValue* to); 1787 HValue* to);
1782 1788
1783 void BuildCopyElements(HValue* from_elements, 1789 void BuildCopyElements(HValue* array,
1790 HValue* from_elements,
1784 ElementsKind from_elements_kind, 1791 ElementsKind from_elements_kind,
1785 HValue* to_elements, 1792 HValue* to_elements,
1786 ElementsKind to_elements_kind, 1793 ElementsKind to_elements_kind,
1787 HValue* length, 1794 HValue* length,
1788 HValue* capacity); 1795 HValue* capacity);
1789 1796
1790 HValue* BuildCloneShallowArray(HValue* boilerplate, 1797 HValue* BuildCloneShallowArrayCommon(HValue* boilerplate,
1791 HValue* allocation_site, 1798 HValue* allocation_site,
1792 AllocationSiteMode mode, 1799 HValue* extra_size,
1793 ElementsKind kind, 1800 HValue** return_elements,
1794 int length); 1801 AllocationSiteMode mode);
1802
1803 HValue* BuildCloneShallowArrayCow(HValue* boilerplate,
1804 HValue* allocation_site,
1805 AllocationSiteMode mode,
1806 ElementsKind kind);
1807
1808 HValue* BuildCloneShallowArrayEmpty(HValue* boilerplate,
1809 HValue* allocation_site,
1810 AllocationSiteMode mode);
1811
1812 HValue* BuildCloneShallowArrayNonEmpty(HValue* boilerplate,
1813 HValue* allocation_site,
1814 AllocationSiteMode mode,
1815 ElementsKind kind);
1795 1816
1796 HValue* BuildElementIndexHash(HValue* index); 1817 HValue* BuildElementIndexHash(HValue* index);
1797 1818
1798 void BuildCompareNil( 1819 void BuildCompareNil(
1799 HValue* value, 1820 HValue* value,
1800 Type* type, 1821 Type* type,
1801 HIfContinuation* continuation); 1822 HIfContinuation* continuation);
1802 1823
1803 void BuildCreateAllocationMemento(HValue* previous_object, 1824 void BuildCreateAllocationMemento(HValue* previous_object,
1804 HValue* previous_object_size, 1825 HValue* previous_object_size,
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after
2805 } 2826 }
2806 2827
2807 private: 2828 private:
2808 HGraphBuilder* builder_; 2829 HGraphBuilder* builder_;
2809 }; 2830 };
2810 2831
2811 2832
2812 } } // namespace v8::internal 2833 } } // namespace v8::internal
2813 2834
2814 #endif // V8_HYDROGEN_H_ 2835 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698