| 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 | 96 |
| 97 compiler::Node* HashSeed(); | 97 compiler::Node* HashSeed(); |
| 98 compiler::Node* StaleRegisterConstant(); | 98 compiler::Node* StaleRegisterConstant(); |
| 99 | 99 |
| 100 compiler::Node* IntPtrOrSmiConstant(int value, ParameterMode mode); | 100 compiler::Node* IntPtrOrSmiConstant(int value, ParameterMode mode); |
| 101 | 101 |
| 102 // Float64 operations. | 102 // Float64 operations. |
| 103 compiler::Node* Float64Ceil(compiler::Node* x); | 103 compiler::Node* Float64Ceil(compiler::Node* x); |
| 104 compiler::Node* Float64Floor(compiler::Node* x); | 104 compiler::Node* Float64Floor(compiler::Node* x); |
| 105 compiler::Node* Float64Round(compiler::Node* x); | 105 compiler::Node* Float64Round(compiler::Node* x); |
| 106 compiler::Node* Float64RoundToEven(compiler::Node* x); |
| 106 compiler::Node* Float64Trunc(compiler::Node* x); | 107 compiler::Node* Float64Trunc(compiler::Node* x); |
| 107 | 108 |
| 108 // Tag a Word as a Smi value. | 109 // Tag a Word as a Smi value. |
| 109 compiler::Node* SmiTag(compiler::Node* value); | 110 compiler::Node* SmiTag(compiler::Node* value); |
| 110 // Untag a Smi value as a Word. | 111 // Untag a Smi value as a Word. |
| 111 compiler::Node* SmiUntag(compiler::Node* value); | 112 compiler::Node* SmiUntag(compiler::Node* value); |
| 112 | 113 |
| 113 // Smi conversions. | 114 // Smi conversions. |
| 114 compiler::Node* SmiToFloat64(compiler::Node* value); | 115 compiler::Node* SmiToFloat64(compiler::Node* value); |
| 115 compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); } | 116 compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); } |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 768 // Emits keyed sloppy arguments store. | 769 // Emits keyed sloppy arguments store. |
| 769 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key, | 770 void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key, |
| 770 compiler::Node* value, Label* bailout) { | 771 compiler::Node* value, Label* bailout) { |
| 771 DCHECK_NOT_NULL(value); | 772 DCHECK_NOT_NULL(value); |
| 772 EmitKeyedSloppyArguments(receiver, key, value, bailout); | 773 EmitKeyedSloppyArguments(receiver, key, value, bailout); |
| 773 } | 774 } |
| 774 | 775 |
| 775 // Loads script context from the script context table. | 776 // Loads script context from the script context table. |
| 776 compiler::Node* LoadScriptContext(compiler::Node* context, int context_index); | 777 compiler::Node* LoadScriptContext(compiler::Node* context, int context_index); |
| 777 | 778 |
| 778 compiler::Node* ClampedToUint8(compiler::Node* int32_value); | 779 compiler::Node* Int32ToUint8Clamped(compiler::Node* int32_value); |
| 780 compiler::Node* Float64ToUint8Clamped(compiler::Node* float64_value); |
| 781 |
| 782 compiler::Node* PrepareValueForWriteToTypedArray(compiler::Node* key, |
| 783 ElementsKind elements_kind, |
| 784 Label* bailout); |
| 779 | 785 |
| 780 // Store value to an elements array with given elements kind. | 786 // Store value to an elements array with given elements kind. |
| 781 void StoreElement(compiler::Node* elements, ElementsKind kind, | 787 void StoreElement(compiler::Node* elements, ElementsKind kind, |
| 782 compiler::Node* index, compiler::Node* value, | 788 compiler::Node* index, compiler::Node* value, |
| 783 ParameterMode mode); | 789 ParameterMode mode); |
| 784 | 790 |
| 785 void EmitElementStore(compiler::Node* object, compiler::Node* key, | 791 void EmitElementStore(compiler::Node* object, compiler::Node* key, |
| 786 compiler::Node* value, bool is_jsarray, | 792 compiler::Node* value, bool is_jsarray, |
| 787 ElementsKind elements_kind, | 793 ElementsKind elements_kind, |
| 788 KeyedAccessStoreMode store_mode, Label* bailout); | 794 KeyedAccessStoreMode store_mode, Label* bailout); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 901 Label* bailout); | 907 Label* bailout); |
| 902 | 908 |
| 903 static const int kElementLoopUnrollThreshold = 8; | 909 static const int kElementLoopUnrollThreshold = 8; |
| 904 }; | 910 }; |
| 905 | 911 |
| 906 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 912 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 907 | 913 |
| 908 } // namespace internal | 914 } // namespace internal |
| 909 } // namespace v8 | 915 } // namespace v8 |
| 910 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 916 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |