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 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 Node* StoreFixedArrayElement( | 491 Node* StoreFixedArrayElement( |
492 Node* object, Node* index, Node* value, | 492 Node* object, Node* index, Node* value, |
493 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER, | 493 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER, |
494 int additional_offset = 0, | 494 int additional_offset = 0, |
495 ParameterMode parameter_mode = INTPTR_PARAMETERS); | 495 ParameterMode parameter_mode = INTPTR_PARAMETERS); |
496 | 496 |
497 Node* StoreFixedDoubleArrayElement( | 497 Node* StoreFixedDoubleArrayElement( |
498 Node* object, Node* index, Node* value, | 498 Node* object, Node* index, Node* value, |
499 ParameterMode parameter_mode = INTPTR_PARAMETERS); | 499 ParameterMode parameter_mode = INTPTR_PARAMETERS); |
500 | 500 |
501 Node* BuildAppendJSArray(ElementsKind kind, Node* context, Node* array, | 501 // EnsureArrayPushable verifies that receiver is: |
| 502 // 1. Is not a prototype. |
| 503 // 2. Is not a dictionary. |
| 504 // 3. Has a writeable length property. |
| 505 // It returns ElementsKind as a node for further division into cases. |
| 506 Node* EnsureArrayPushable(Node* receiver, Label* bailout); |
| 507 |
| 508 void TryStoreArrayElement(ElementsKind kind, ParameterMode mode, |
| 509 Label* bailout, Node* elements, Node* index, |
| 510 Node* value); |
| 511 Node* BuildAppendJSArray(ElementsKind kind, Node* array, |
502 CodeStubArguments& args, Variable& arg_index, | 512 CodeStubArguments& args, Variable& arg_index, |
503 Label* bailout); | 513 Label* bailout); |
| 514 Node* BuildAppendJSArray(ElementsKind kind, Node* array, Node* value, |
| 515 Label* bailout); |
504 | 516 |
505 void StoreFieldsNoWriteBarrier(Node* start_address, Node* end_address, | 517 void StoreFieldsNoWriteBarrier(Node* start_address, Node* end_address, |
506 Node* value); | 518 Node* value); |
507 | 519 |
508 // Allocate a HeapNumber without initializing its value. | 520 // Allocate a HeapNumber without initializing its value. |
509 Node* AllocateHeapNumber(MutableMode mode = IMMUTABLE); | 521 Node* AllocateHeapNumber(MutableMode mode = IMMUTABLE); |
510 // Allocate a HeapNumber with a specific value. | 522 // Allocate a HeapNumber with a specific value. |
511 Node* AllocateHeapNumberWithValue(Node* value, MutableMode mode = IMMUTABLE); | 523 Node* AllocateHeapNumberWithValue(Node* value, MutableMode mode = IMMUTABLE); |
512 // Allocate a SeqOneByteString with the given length. | 524 // Allocate a SeqOneByteString with the given length. |
513 Node* AllocateSeqOneByteString(int length, AllocationFlags flags = kNone); | 525 Node* AllocateSeqOneByteString(int length, AllocationFlags flags = kNone); |
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1484 } | 1496 } |
1485 #else | 1497 #else |
1486 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1498 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1487 #endif | 1499 #endif |
1488 | 1500 |
1489 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1501 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1490 | 1502 |
1491 } // namespace internal | 1503 } // namespace internal |
1492 } // namespace v8 | 1504 } // namespace v8 |
1493 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1505 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |