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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 compiler::Node* StoreFixedArrayElement( | 297 compiler::Node* StoreFixedArrayElement( |
298 compiler::Node* object, compiler::Node* index, compiler::Node* value, | 298 compiler::Node* object, compiler::Node* index, compiler::Node* value, |
299 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER, | 299 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER, |
300 ParameterMode parameter_mode = INTEGER_PARAMETERS); | 300 ParameterMode parameter_mode = INTEGER_PARAMETERS); |
301 | 301 |
302 compiler::Node* StoreFixedDoubleArrayElement( | 302 compiler::Node* StoreFixedDoubleArrayElement( |
303 compiler::Node* object, compiler::Node* index, compiler::Node* value, | 303 compiler::Node* object, compiler::Node* index, compiler::Node* value, |
304 ParameterMode parameter_mode = INTEGER_PARAMETERS); | 304 ParameterMode parameter_mode = INTEGER_PARAMETERS); |
305 | 305 |
306 // Allocate a HeapNumber without initializing its value. | 306 // Allocate a HeapNumber without initializing its value. |
307 compiler::Node* AllocateHeapNumber(); | 307 compiler::Node* AllocateHeapNumber(MutableMode mode = IMMUTABLE); |
308 // Allocate a HeapNumber with a specific value. | 308 // Allocate a HeapNumber with a specific value. |
309 compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value); | 309 compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value, |
| 310 MutableMode mode = IMMUTABLE); |
310 // Allocate a SeqOneByteString with the given length. | 311 // Allocate a SeqOneByteString with the given length. |
311 compiler::Node* AllocateSeqOneByteString(int length); | 312 compiler::Node* AllocateSeqOneByteString(int length); |
312 compiler::Node* AllocateSeqOneByteString(compiler::Node* context, | 313 compiler::Node* AllocateSeqOneByteString(compiler::Node* context, |
313 compiler::Node* length); | 314 compiler::Node* length); |
314 // Allocate a SeqTwoByteString with the given length. | 315 // Allocate a SeqTwoByteString with the given length. |
315 compiler::Node* AllocateSeqTwoByteString(int length); | 316 compiler::Node* AllocateSeqTwoByteString(int length); |
316 compiler::Node* AllocateSeqTwoByteString(compiler::Node* context, | 317 compiler::Node* AllocateSeqTwoByteString(compiler::Node* context, |
317 compiler::Node* length); | 318 compiler::Node* length); |
318 // Allocated an JSArray | 319 // Allocated an JSArray |
319 compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map, | 320 compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map, |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, | 622 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, |
622 compiler::Node* entry_offset, | 623 compiler::Node* entry_offset, |
623 compiler::Node* name, compiler::Node* map, | 624 compiler::Node* name, compiler::Node* map, |
624 Label* if_handler, Variable* var_handler, | 625 Label* if_handler, Variable* var_handler, |
625 Label* if_miss); | 626 Label* if_miss); |
626 | 627 |
627 void TryProbeStubCache(StubCache* stub_cache, compiler::Node* receiver, | 628 void TryProbeStubCache(StubCache* stub_cache, compiler::Node* receiver, |
628 compiler::Node* name, Label* if_handler, | 629 compiler::Node* name, Label* if_handler, |
629 Variable* var_handler, Label* if_miss); | 630 Variable* var_handler, Label* if_miss); |
630 | 631 |
| 632 compiler::Node* PrepareValueForWrite(compiler::Node* value, |
| 633 Representation representation, |
| 634 Label* bailout); |
| 635 |
| 636 void StoreNamedField(compiler::Node* object, FieldIndex index, |
| 637 Representation representation, compiler::Node* value, |
| 638 bool transition_to_field); |
| 639 |
631 void LoadIC(const LoadICParameters* p); | 640 void LoadIC(const LoadICParameters* p); |
632 void LoadGlobalIC(const LoadICParameters* p); | 641 void LoadGlobalIC(const LoadICParameters* p); |
633 void KeyedLoadIC(const LoadICParameters* p); | 642 void KeyedLoadIC(const LoadICParameters* p); |
634 void KeyedLoadICGeneric(const LoadICParameters* p); | 643 void KeyedLoadICGeneric(const LoadICParameters* p); |
635 | 644 |
636 // Get the enumerable length from |map| and return the result as a Smi. | 645 // Get the enumerable length from |map| and return the result as a Smi. |
637 compiler::Node* EnumLength(compiler::Node* map); | 646 compiler::Node* EnumLength(compiler::Node* map); |
638 | 647 |
639 // Check the cache validity for |receiver|. Branch to |use_cache| if | 648 // Check the cache validity for |receiver|. Branch to |use_cache| if |
640 // the cache is valid, otherwise branch to |use_runtime|. | 649 // the cache is valid, otherwise branch to |use_runtime|. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 compiler::Node* SmiShiftBitsConstant(); | 702 compiler::Node* SmiShiftBitsConstant(); |
694 | 703 |
695 static const int kElementLoopUnrollThreshold = 8; | 704 static const int kElementLoopUnrollThreshold = 8; |
696 }; | 705 }; |
697 | 706 |
698 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 707 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
699 | 708 |
700 } // namespace internal | 709 } // namespace internal |
701 } // namespace v8 | 710 } // namespace v8 |
702 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 711 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |