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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 | 101 |
102 compiler::Node* HashSeed(); | 102 compiler::Node* HashSeed(); |
103 compiler::Node* StaleRegisterConstant(); | 103 compiler::Node* StaleRegisterConstant(); |
104 | 104 |
105 compiler::Node* IntPtrOrSmiConstant(int value, ParameterMode mode); | 105 compiler::Node* IntPtrOrSmiConstant(int value, ParameterMode mode); |
106 | 106 |
107 compiler::Node* IntPtrAddFoldConstants(compiler::Node* left, | 107 compiler::Node* IntPtrAddFoldConstants(compiler::Node* left, |
108 compiler::Node* right); | 108 compiler::Node* right); |
109 compiler::Node* IntPtrSubFoldConstants(compiler::Node* left, | 109 compiler::Node* IntPtrSubFoldConstants(compiler::Node* left, |
110 compiler::Node* right); | 110 compiler::Node* right); |
| 111 void BranchIfWordIsPowerOfTwo(compiler::Node* value, Label* if_true, |
| 112 Label* if_false); |
111 | 113 |
112 // Float64 operations. | 114 // Float64 operations. |
113 compiler::Node* Float64Ceil(compiler::Node* x); | 115 compiler::Node* Float64Ceil(compiler::Node* x); |
114 compiler::Node* Float64Floor(compiler::Node* x); | 116 compiler::Node* Float64Floor(compiler::Node* x); |
115 compiler::Node* Float64Round(compiler::Node* x); | 117 compiler::Node* Float64Round(compiler::Node* x); |
116 compiler::Node* Float64Trunc(compiler::Node* x); | 118 compiler::Node* Float64Trunc(compiler::Node* x); |
117 | 119 |
118 // Tag a Word as a Smi value. | 120 // Tag a Word as a Smi value. |
119 compiler::Node* SmiTag(compiler::Node* value); | 121 compiler::Node* SmiTag(compiler::Node* value); |
120 // Untag a Smi value as a Word. | 122 // Untag a Smi value as a Word. |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 | 426 |
425 // Allocate a RegExpResult with the given length (the number of captures, | 427 // Allocate a RegExpResult with the given length (the number of captures, |
426 // including the match itself), index (the index where the match starts), | 428 // including the match itself), index (the index where the match starts), |
427 // and input string. |length| and |index| are expected to be tagged, and | 429 // and input string. |length| and |index| are expected to be tagged, and |
428 // |input| must be a string. | 430 // |input| must be a string. |
429 compiler::Node* AllocateRegExpResult(compiler::Node* context, | 431 compiler::Node* AllocateRegExpResult(compiler::Node* context, |
430 compiler::Node* length, | 432 compiler::Node* length, |
431 compiler::Node* index, | 433 compiler::Node* index, |
432 compiler::Node* input); | 434 compiler::Node* input); |
433 | 435 |
| 436 compiler::Node* AllocateNameDictionary(int capacity); |
| 437 compiler::Node* AllocateNameDictionary(compiler::Node* capacity); |
| 438 |
434 compiler::Node* AllocateJSObjectFromMap(compiler::Node* map, | 439 compiler::Node* AllocateJSObjectFromMap(compiler::Node* map, |
435 compiler::Node* properties = nullptr, | 440 compiler::Node* properties = nullptr, |
436 compiler::Node* elements = nullptr); | 441 compiler::Node* elements = nullptr); |
437 | 442 |
438 void InitializeJSObjectFromMap(compiler::Node* object, compiler::Node* map, | 443 void InitializeJSObjectFromMap(compiler::Node* object, compiler::Node* map, |
439 compiler::Node* size, | 444 compiler::Node* size, |
440 compiler::Node* properties = nullptr, | 445 compiler::Node* properties = nullptr, |
441 compiler::Node* elements = nullptr); | 446 compiler::Node* elements = nullptr); |
442 | 447 |
443 void InitializeJSObjectBody(compiler::Node* object, compiler::Node* map, | 448 void InitializeJSObjectBody(compiler::Node* object, compiler::Node* map, |
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1098 static const int kElementLoopUnrollThreshold = 8; | 1103 static const int kElementLoopUnrollThreshold = 8; |
1099 }; | 1104 }; |
1100 | 1105 |
1101 #define CSA_ASSERT(x) Assert((x), #x, __FILE__, __LINE__) | 1106 #define CSA_ASSERT(x) Assert((x), #x, __FILE__, __LINE__) |
1102 | 1107 |
1103 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1108 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1104 | 1109 |
1105 } // namespace internal | 1110 } // namespace internal |
1106 } // namespace v8 | 1111 } // namespace v8 |
1107 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1112 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |