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

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

Issue 2325013004: [stubs] Port LoadScriptContextFieldStub and StoreScriptContextFieldStub to TurboFan. (Closed)
Patch Set: Rebasing 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 | « no previous file | 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 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 Label* if_hole = nullptr); 267 Label* if_hole = nullptr);
268 268
269 // Load Float64 value by |base| + |offset| address. If the value is a double 269 // Load Float64 value by |base| + |offset| address. If the value is a double
270 // hole then jump to |if_hole|. If |machine_type| is None then only the hole 270 // hole then jump to |if_hole|. If |machine_type| is None then only the hole
271 // check is generated. 271 // check is generated.
272 compiler::Node* LoadDoubleWithHoleCheck( 272 compiler::Node* LoadDoubleWithHoleCheck(
273 compiler::Node* base, compiler::Node* offset, Label* if_hole, 273 compiler::Node* base, compiler::Node* offset, Label* if_hole,
274 MachineType machine_type = MachineType::Float64()); 274 MachineType machine_type = MachineType::Float64());
275 275
276 // Context manipulation 276 // Context manipulation
277 compiler::Node* LoadContextElement(compiler::Node* context, int slot_index);
277 compiler::Node* LoadNativeContext(compiler::Node* context); 278 compiler::Node* LoadNativeContext(compiler::Node* context);
278 279
279 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind, 280 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind,
280 compiler::Node* native_context); 281 compiler::Node* native_context);
281 282
282 // Store the floating point value of a HeapNumber. 283 // Store the floating point value of a HeapNumber.
283 compiler::Node* StoreHeapNumberValue(compiler::Node* object, 284 compiler::Node* StoreHeapNumberValue(compiler::Node* object,
284 compiler::Node* value); 285 compiler::Node* value);
285 // Store a field to an object on the heap. 286 // Store a field to an object on the heap.
286 compiler::Node* StoreObjectField( 287 compiler::Node* StoreObjectField(
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 return EmitKeyedSloppyArguments(receiver, key, nullptr, bailout); 652 return EmitKeyedSloppyArguments(receiver, key, nullptr, bailout);
652 } 653 }
653 654
654 // Emits keyed sloppy arguments store. 655 // Emits keyed sloppy arguments store.
655 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key, 656 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key,
656 compiler::Node* value, Label* bailout) { 657 compiler::Node* value, Label* bailout) {
657 DCHECK_NOT_NULL(value); 658 DCHECK_NOT_NULL(value);
658 EmitKeyedSloppyArguments(receiver, key, value, bailout); 659 EmitKeyedSloppyArguments(receiver, key, value, bailout);
659 } 660 }
660 661
662 // Loads script context from the script context table.
663 compiler::Node* LoadScriptContext(compiler::Node* context, int context_index);
664
661 void LoadIC(const LoadICParameters* p); 665 void LoadIC(const LoadICParameters* p);
662 void LoadGlobalIC(const LoadICParameters* p); 666 void LoadGlobalIC(const LoadICParameters* p);
663 void KeyedLoadIC(const LoadICParameters* p); 667 void KeyedLoadIC(const LoadICParameters* p);
664 void KeyedLoadICGeneric(const LoadICParameters* p); 668 void KeyedLoadICGeneric(const LoadICParameters* p);
665 669
666 // Get the enumerable length from |map| and return the result as a Smi. 670 // Get the enumerable length from |map| and return the result as a Smi.
667 compiler::Node* EnumLength(compiler::Node* map); 671 compiler::Node* EnumLength(compiler::Node* map);
668 672
669 // Check the cache validity for |receiver|. Branch to |use_cache| if 673 // Check the cache validity for |receiver|. Branch to |use_cache| if
670 // the cache is valid, otherwise branch to |use_runtime|. 674 // the cache is valid, otherwise branch to |use_runtime|.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 Label* bailout); 734 Label* bailout);
731 735
732 static const int kElementLoopUnrollThreshold = 8; 736 static const int kElementLoopUnrollThreshold = 8;
733 }; 737 };
734 738
735 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); 739 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags);
736 740
737 } // namespace internal 741 } // namespace internal
738 } // namespace v8 742 } // namespace v8
739 #endif // V8_CODE_STUB_ASSEMBLER_H_ 743 #endif // V8_CODE_STUB_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698