OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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_CODE_STUB_ASSEMBLER_H_ | 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ |
6 #define V8_CODE_STUB_ASSEMBLER_H_ | 6 #define V8_CODE_STUB_ASSEMBLER_H_ |
7 | 7 |
8 #include <functional> | 8 #include <functional> |
9 | 9 |
10 #include "src/compiler/code-assembler.h" | 10 #include "src/compiler/code-assembler.h" |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
630 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, | 630 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, |
631 compiler::Node* entry_offset, | 631 compiler::Node* entry_offset, |
632 compiler::Node* name, compiler::Node* map, | 632 compiler::Node* name, compiler::Node* map, |
633 Label* if_handler, Variable* var_handler, | 633 Label* if_handler, Variable* var_handler, |
634 Label* if_miss); | 634 Label* if_miss); |
635 | 635 |
636 void TryProbeStubCache(StubCache* stub_cache, compiler::Node* receiver, | 636 void TryProbeStubCache(StubCache* stub_cache, compiler::Node* receiver, |
637 compiler::Node* name, Label* if_handler, | 637 compiler::Node* name, Label* if_handler, |
638 Variable* var_handler, Label* if_miss); | 638 Variable* var_handler, Label* if_miss); |
639 | 639 |
| 640 // Extends properties backing store by JSObject::kFieldsAdded elements. |
| 641 void ExtendPropertiesBackingStore(compiler::Node* object); |
| 642 |
640 compiler::Node* PrepareValueForWrite(compiler::Node* value, | 643 compiler::Node* PrepareValueForWrite(compiler::Node* value, |
641 Representation representation, | 644 Representation representation, |
642 Label* bailout); | 645 Label* bailout); |
643 | 646 |
644 void StoreNamedField(compiler::Node* object, FieldIndex index, | 647 void StoreNamedField(compiler::Node* object, FieldIndex index, |
645 Representation representation, compiler::Node* value, | 648 Representation representation, compiler::Node* value, |
646 bool transition_to_field); | 649 bool transition_to_field); |
647 | 650 |
648 // Emits keyed sloppy arguments load. Returns either the loaded value. | 651 // Emits keyed sloppy arguments load. Returns either the loaded value. |
649 compiler::Node* LoadKeyedSloppyArguments(compiler::Node* receiver, | 652 compiler::Node* LoadKeyedSloppyArguments(compiler::Node* receiver, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 compiler::Node* CopyElementsOnWrite(compiler::Node* object, | 687 compiler::Node* CopyElementsOnWrite(compiler::Node* object, |
685 compiler::Node* elements, | 688 compiler::Node* elements, |
686 ElementsKind kind, compiler::Node* length, | 689 ElementsKind kind, compiler::Node* length, |
687 ParameterMode mode, Label* bailout); | 690 ParameterMode mode, Label* bailout); |
688 | 691 |
689 void LoadIC(const LoadICParameters* p); | 692 void LoadIC(const LoadICParameters* p); |
690 void LoadGlobalIC(const LoadICParameters* p); | 693 void LoadGlobalIC(const LoadICParameters* p); |
691 void KeyedLoadIC(const LoadICParameters* p); | 694 void KeyedLoadIC(const LoadICParameters* p); |
692 void KeyedLoadICGeneric(const LoadICParameters* p); | 695 void KeyedLoadICGeneric(const LoadICParameters* p); |
693 | 696 |
| 697 void TransitionElementsKind(compiler::Node* object, compiler::Node* map, |
| 698 ElementsKind from_kind, ElementsKind to_kind, |
| 699 bool is_jsarray, Label* bailout); |
| 700 |
| 701 void TrapAllocationMemento(compiler::Node* object, Label* memento_found); |
| 702 |
| 703 compiler::Node* PageFromAddress(compiler::Node* address); |
| 704 |
694 // Get the enumerable length from |map| and return the result as a Smi. | 705 // Get the enumerable length from |map| and return the result as a Smi. |
695 compiler::Node* EnumLength(compiler::Node* map); | 706 compiler::Node* EnumLength(compiler::Node* map); |
696 | 707 |
697 // Check the cache validity for |receiver|. Branch to |use_cache| if | 708 // Check the cache validity for |receiver|. Branch to |use_cache| if |
698 // the cache is valid, otherwise branch to |use_runtime|. | 709 // the cache is valid, otherwise branch to |use_runtime|. |
699 void CheckEnumCache(compiler::Node* receiver, | 710 void CheckEnumCache(compiler::Node* receiver, |
700 CodeStubAssembler::Label* use_cache, | 711 CodeStubAssembler::Label* use_cache, |
701 CodeStubAssembler::Label* use_runtime); | 712 CodeStubAssembler::Label* use_runtime); |
702 | 713 |
703 // Create a new weak cell with a specified value and install it into a | 714 // Create a new weak cell with a specified value and install it into a |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 Label* bailout); | 773 Label* bailout); |
763 | 774 |
764 static const int kElementLoopUnrollThreshold = 8; | 775 static const int kElementLoopUnrollThreshold = 8; |
765 }; | 776 }; |
766 | 777 |
767 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 778 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
768 | 779 |
769 } // namespace internal | 780 } // namespace internal |
770 } // namespace v8 | 781 } // namespace v8 |
771 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 782 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |