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

Side by Side Diff: src/code-stub-assembler.h

Issue 2313093002: [stubs] Port StoreTransitionStub and ElementsTransitionAndStoreStub to TurboFan. (Closed)
Patch Set: Addressing comments Created 4 years, 3 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
« no previous file with comments | « src/arm64/interface-descriptors-arm64.cc ('k') | src/code-stub-assembler.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 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
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
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
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_
OLDNEW
« no previous file with comments | « src/arm64/interface-descriptors-arm64.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698