| 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 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 // |to_kind| elements. | 359 // |to_kind| elements. |
| 360 compiler::Node* LoadElementAndPrepareForStore(compiler::Node* array, | 360 compiler::Node* LoadElementAndPrepareForStore(compiler::Node* array, |
| 361 compiler::Node* offset, | 361 compiler::Node* offset, |
| 362 ElementsKind from_kind, | 362 ElementsKind from_kind, |
| 363 ElementsKind to_kind, | 363 ElementsKind to_kind, |
| 364 Label* if_hole); | 364 Label* if_hole); |
| 365 | 365 |
| 366 compiler::Node* CalculateNewElementsCapacity( | 366 compiler::Node* CalculateNewElementsCapacity( |
| 367 compiler::Node* old_capacity, ParameterMode mode = INTEGER_PARAMETERS); | 367 compiler::Node* old_capacity, ParameterMode mode = INTEGER_PARAMETERS); |
| 368 | 368 |
| 369 compiler::Node* CheckAndGrowElementsCapacity(compiler::Node* context, | 369 // Tries to grow the |elements| array of given |object| to store the |key| |
| 370 compiler::Node* elements, | 370 // or bails out if the growing gap is too big. Returns new elements. |
| 371 ElementsKind kind, | 371 compiler::Node* TryGrowElementsCapacity(compiler::Node* object, |
| 372 compiler::Node* key, | 372 compiler::Node* elements, |
| 373 Label* fail); | 373 ElementsKind kind, |
| 374 compiler::Node* key, Label* bailout); |
| 375 |
| 376 // Tries to grow the |capacity|-length |elements| array of given |object| |
| 377 // to store the |key| or bails out if the growing gap is too big. Returns |
| 378 // new elements. |
| 379 compiler::Node* TryGrowElementsCapacity(compiler::Node* object, |
| 380 compiler::Node* elements, |
| 381 ElementsKind kind, |
| 382 compiler::Node* key, |
| 383 compiler::Node* capacity, |
| 384 ParameterMode mode, Label* bailout); |
| 385 |
| 386 // Grows elements capacity of given object. Returns new elements. |
| 387 compiler::Node* GrowElementsCapacity( |
| 388 compiler::Node* object, compiler::Node* elements, ElementsKind from_kind, |
| 389 ElementsKind to_kind, compiler::Node* capacity, |
| 390 compiler::Node* new_capacity, ParameterMode mode, Label* bailout); |
| 374 | 391 |
| 375 // Allocation site manipulation | 392 // Allocation site manipulation |
| 376 void InitializeAllocationMemento(compiler::Node* base_allocation, | 393 void InitializeAllocationMemento(compiler::Node* base_allocation, |
| 377 int base_allocation_size, | 394 int base_allocation_size, |
| 378 compiler::Node* allocation_site); | 395 compiler::Node* allocation_site); |
| 379 | 396 |
| 380 compiler::Node* TruncateTaggedToFloat64(compiler::Node* context, | 397 compiler::Node* TruncateTaggedToFloat64(compiler::Node* context, |
| 381 compiler::Node* value); | 398 compiler::Node* value); |
| 382 compiler::Node* TruncateTaggedToWord32(compiler::Node* context, | 399 compiler::Node* TruncateTaggedToWord32(compiler::Node* context, |
| 383 compiler::Node* value); | 400 compiler::Node* value); |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 compiler::Node* SmiShiftBitsConstant(); | 693 compiler::Node* SmiShiftBitsConstant(); |
| 677 | 694 |
| 678 static const int kElementLoopUnrollThreshold = 8; | 695 static const int kElementLoopUnrollThreshold = 8; |
| 679 }; | 696 }; |
| 680 | 697 |
| 681 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 698 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 682 | 699 |
| 683 } // namespace internal | 700 } // namespace internal |
| 684 } // namespace v8 | 701 } // namespace v8 |
| 685 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 702 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |