| 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 compiler::Node* IntPtrSubFoldConstants(compiler::Node* left, | 108 compiler::Node* IntPtrSubFoldConstants(compiler::Node* left, |
| 109 compiler::Node* right); | 109 compiler::Node* right); |
| 110 // Round the 32bits payload of the provided word up to the next power of two. | 110 // Round the 32bits payload of the provided word up to the next power of two. |
| 111 compiler::Node* IntPtrRoundUpToPowerOfTwo32(compiler::Node* value); | 111 compiler::Node* IntPtrRoundUpToPowerOfTwo32(compiler::Node* value); |
| 112 compiler::Node* IntPtrMax(compiler::Node* left, compiler::Node* right); | 112 compiler::Node* IntPtrMax(compiler::Node* left, compiler::Node* right); |
| 113 | 113 |
| 114 // Float64 operations. | 114 // Float64 operations. |
| 115 compiler::Node* Float64Ceil(compiler::Node* x); | 115 compiler::Node* Float64Ceil(compiler::Node* x); |
| 116 compiler::Node* Float64Floor(compiler::Node* x); | 116 compiler::Node* Float64Floor(compiler::Node* x); |
| 117 compiler::Node* Float64Round(compiler::Node* x); | 117 compiler::Node* Float64Round(compiler::Node* x); |
| 118 compiler::Node* Float64RoundToEven(compiler::Node* x); |
| 118 compiler::Node* Float64Trunc(compiler::Node* x); | 119 compiler::Node* Float64Trunc(compiler::Node* x); |
| 119 | 120 |
| 120 // Tag a Word as a Smi value. | 121 // Tag a Word as a Smi value. |
| 121 compiler::Node* SmiTag(compiler::Node* value); | 122 compiler::Node* SmiTag(compiler::Node* value); |
| 122 // Untag a Smi value as a Word. | 123 // Untag a Smi value as a Word. |
| 123 compiler::Node* SmiUntag(compiler::Node* value); | 124 compiler::Node* SmiUntag(compiler::Node* value); |
| 124 | 125 |
| 125 // Smi conversions. | 126 // Smi conversions. |
| 126 compiler::Node* SmiToFloat64(compiler::Node* value); | 127 compiler::Node* SmiToFloat64(compiler::Node* value); |
| 127 compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); } | 128 compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); } |
| (...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 969 // Emits keyed sloppy arguments store. | 970 // Emits keyed sloppy arguments store. |
| 970 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key, | 971 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key, |
| 971 compiler::Node* value, Label* bailout) { | 972 compiler::Node* value, Label* bailout) { |
| 972 DCHECK_NOT_NULL(value); | 973 DCHECK_NOT_NULL(value); |
| 973 EmitKeyedSloppyArguments(receiver, key, value, bailout); | 974 EmitKeyedSloppyArguments(receiver, key, value, bailout); |
| 974 } | 975 } |
| 975 | 976 |
| 976 // Loads script context from the script context table. | 977 // Loads script context from the script context table. |
| 977 compiler::Node* LoadScriptContext(compiler::Node* context, int context_index); | 978 compiler::Node* LoadScriptContext(compiler::Node* context, int context_index); |
| 978 | 979 |
| 979 compiler::Node* ClampedToUint8(compiler::Node* int32_value); | 980 compiler::Node* Int32ToUint8Clamped(compiler::Node* int32_value); |
| 981 compiler::Node* Float64ToUint8Clamped(compiler::Node* float64_value); |
| 982 |
| 983 compiler::Node* PrepareValueForWriteToTypedArray(compiler::Node* key, |
| 984 ElementsKind elements_kind, |
| 985 Label* bailout); |
| 980 | 986 |
| 981 // Store value to an elements array with given elements kind. | 987 // Store value to an elements array with given elements kind. |
| 982 void StoreElement(compiler::Node* elements, ElementsKind kind, | 988 void StoreElement(compiler::Node* elements, ElementsKind kind, |
| 983 compiler::Node* index, compiler::Node* value, | 989 compiler::Node* index, compiler::Node* value, |
| 984 ParameterMode mode); | 990 ParameterMode mode); |
| 985 | 991 |
| 986 void EmitElementStore(compiler::Node* object, compiler::Node* key, | 992 void EmitElementStore(compiler::Node* object, compiler::Node* key, |
| 987 compiler::Node* value, bool is_jsarray, | 993 compiler::Node* value, bool is_jsarray, |
| 988 ElementsKind elements_kind, | 994 ElementsKind elements_kind, |
| 989 KeyedAccessStoreMode store_mode, Label* bailout); | 995 KeyedAccessStoreMode store_mode, Label* bailout); |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1311 } | 1317 } |
| 1312 #else | 1318 #else |
| 1313 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1319 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
| 1314 #endif | 1320 #endif |
| 1315 | 1321 |
| 1316 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1322 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 1317 | 1323 |
| 1318 } // namespace internal | 1324 } // namespace internal |
| 1319 } // namespace v8 | 1325 } // namespace v8 |
| 1320 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1326 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |