| 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 26 matching lines...) Expand all Loading... |
| 37 // Create with JSCall linkage. | 37 // Create with JSCall linkage. |
| 38 CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count, | 38 CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count, |
| 39 Code::Flags flags, const char* name); | 39 Code::Flags flags, const char* name); |
| 40 | 40 |
| 41 enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS }; | 41 enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS }; |
| 42 | 42 |
| 43 compiler::Node* BooleanMapConstant(); | 43 compiler::Node* BooleanMapConstant(); |
| 44 compiler::Node* EmptyStringConstant(); | 44 compiler::Node* EmptyStringConstant(); |
| 45 compiler::Node* HeapNumberMapConstant(); | 45 compiler::Node* HeapNumberMapConstant(); |
| 46 compiler::Node* NoContextConstant(); | 46 compiler::Node* NoContextConstant(); |
| 47 compiler::Node* MinusZeroConstant(); |
| 48 compiler::Node* NanConstant(); |
| 47 compiler::Node* NullConstant(); | 49 compiler::Node* NullConstant(); |
| 48 compiler::Node* UndefinedConstant(); | 50 compiler::Node* UndefinedConstant(); |
| 49 compiler::Node* TheHoleConstant(); | 51 compiler::Node* TheHoleConstant(); |
| 50 compiler::Node* HashSeed(); | 52 compiler::Node* HashSeed(); |
| 51 compiler::Node* StaleRegisterConstant(); | 53 compiler::Node* StaleRegisterConstant(); |
| 52 | 54 |
| 53 // Float64 operations. | 55 // Float64 operations. |
| 54 compiler::Node* Float64Ceil(compiler::Node* x); | 56 compiler::Node* Float64Ceil(compiler::Node* x); |
| 55 compiler::Node* Float64Floor(compiler::Node* x); | 57 compiler::Node* Float64Floor(compiler::Node* x); |
| 56 compiler::Node* Float64Round(compiler::Node* x); | 58 compiler::Node* Float64Round(compiler::Node* x); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 71 // Smi operations. | 73 // Smi operations. |
| 72 compiler::Node* SmiAdd(compiler::Node* a, compiler::Node* b); | 74 compiler::Node* SmiAdd(compiler::Node* a, compiler::Node* b); |
| 73 compiler::Node* SmiAddWithOverflow(compiler::Node* a, compiler::Node* b); | 75 compiler::Node* SmiAddWithOverflow(compiler::Node* a, compiler::Node* b); |
| 74 compiler::Node* SmiSub(compiler::Node* a, compiler::Node* b); | 76 compiler::Node* SmiSub(compiler::Node* a, compiler::Node* b); |
| 75 compiler::Node* SmiSubWithOverflow(compiler::Node* a, compiler::Node* b); | 77 compiler::Node* SmiSubWithOverflow(compiler::Node* a, compiler::Node* b); |
| 76 compiler::Node* SmiEqual(compiler::Node* a, compiler::Node* b); | 78 compiler::Node* SmiEqual(compiler::Node* a, compiler::Node* b); |
| 77 compiler::Node* SmiAboveOrEqual(compiler::Node* a, compiler::Node* b); | 79 compiler::Node* SmiAboveOrEqual(compiler::Node* a, compiler::Node* b); |
| 78 compiler::Node* SmiLessThan(compiler::Node* a, compiler::Node* b); | 80 compiler::Node* SmiLessThan(compiler::Node* a, compiler::Node* b); |
| 79 compiler::Node* SmiLessThanOrEqual(compiler::Node* a, compiler::Node* b); | 81 compiler::Node* SmiLessThanOrEqual(compiler::Node* a, compiler::Node* b); |
| 80 compiler::Node* SmiMin(compiler::Node* a, compiler::Node* b); | 82 compiler::Node* SmiMin(compiler::Node* a, compiler::Node* b); |
| 83 // Computes a % b for Smi inputs a and b; result is not necessarily a Smi. |
| 84 compiler::Node* SmiMod(compiler::Node* a, compiler::Node* b); |
| 81 | 85 |
| 82 // Allocate an object of the given size. | 86 // Allocate an object of the given size. |
| 83 compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone); | 87 compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone); |
| 84 compiler::Node* Allocate(int size, AllocationFlags flags = kNone); | 88 compiler::Node* Allocate(int size, AllocationFlags flags = kNone); |
| 85 compiler::Node* InnerAllocate(compiler::Node* previous, int offset); | 89 compiler::Node* InnerAllocate(compiler::Node* previous, int offset); |
| 86 compiler::Node* InnerAllocate(compiler::Node* previous, | 90 compiler::Node* InnerAllocate(compiler::Node* previous, |
| 87 compiler::Node* offset); | 91 compiler::Node* offset); |
| 88 | 92 |
| 89 void Assert(compiler::Node* condition); | 93 void Assert(compiler::Node* condition); |
| 90 | 94 |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 AllocationFlags flags, | 474 AllocationFlags flags, |
| 471 compiler::Node* top_adddress, | 475 compiler::Node* top_adddress, |
| 472 compiler::Node* limit_address); | 476 compiler::Node* limit_address); |
| 473 | 477 |
| 474 static const int kElementLoopUnrollThreshold = 8; | 478 static const int kElementLoopUnrollThreshold = 8; |
| 475 }; | 479 }; |
| 476 | 480 |
| 477 } // namespace internal | 481 } // namespace internal |
| 478 } // namespace v8 | 482 } // namespace v8 |
| 479 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 483 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |