| 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 "src/compiler/code-assembler.h" | 8 #include "src/compiler/code-assembler.h" |
| 9 #include "src/objects.h" | 9 #include "src/objects.h" |
| 10 | 10 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 int additional_offset = 0); | 135 int additional_offset = 0); |
| 136 compiler::Node* LoadFixedArrayElementSmiIndex(compiler::Node* object, | 136 compiler::Node* LoadFixedArrayElementSmiIndex(compiler::Node* object, |
| 137 compiler::Node* smi_index, | 137 compiler::Node* smi_index, |
| 138 int additional_offset = 0); | 138 int additional_offset = 0); |
| 139 compiler::Node* LoadFixedArrayElementConstantIndex(compiler::Node* object, | 139 compiler::Node* LoadFixedArrayElementConstantIndex(compiler::Node* object, |
| 140 int index); | 140 int index); |
| 141 | 141 |
| 142 // Context manipulation | 142 // Context manipulation |
| 143 compiler::Node* LoadNativeContext(compiler::Node* context); | 143 compiler::Node* LoadNativeContext(compiler::Node* context); |
| 144 | 144 |
| 145 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind, |
| 146 compiler::Node* native_context); |
| 147 |
| 145 // Store the floating point value of a HeapNumber. | 148 // Store the floating point value of a HeapNumber. |
| 146 compiler::Node* StoreHeapNumberValue(compiler::Node* object, | 149 compiler::Node* StoreHeapNumberValue(compiler::Node* object, |
| 147 compiler::Node* value); | 150 compiler::Node* value); |
| 148 // Store a field to an object on the heap. | 151 // Store a field to an object on the heap. |
| 149 compiler::Node* StoreObjectField( | 152 compiler::Node* StoreObjectField( |
| 150 compiler::Node* object, int offset, compiler::Node* value); | 153 compiler::Node* object, int offset, compiler::Node* value); |
| 151 compiler::Node* StoreObjectFieldNoWriteBarrier( | 154 compiler::Node* StoreObjectFieldNoWriteBarrier( |
| 152 compiler::Node* object, int offset, compiler::Node* value, | 155 compiler::Node* object, int offset, compiler::Node* value, |
| 153 MachineRepresentation rep = MachineRepresentation::kTagged); | 156 MachineRepresentation rep = MachineRepresentation::kTagged); |
| 154 // Store the Map of an HeapObject. | 157 // Store the Map of an HeapObject. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 176 | 179 |
| 177 // Allocate a HeapNumber without initializing its value. | 180 // Allocate a HeapNumber without initializing its value. |
| 178 compiler::Node* AllocateHeapNumber(); | 181 compiler::Node* AllocateHeapNumber(); |
| 179 // Allocate a HeapNumber with a specific value. | 182 // Allocate a HeapNumber with a specific value. |
| 180 compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value); | 183 compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value); |
| 181 // Allocate a SeqOneByteString with the given length. | 184 // Allocate a SeqOneByteString with the given length. |
| 182 compiler::Node* AllocateSeqOneByteString(int length); | 185 compiler::Node* AllocateSeqOneByteString(int length); |
| 183 // Allocate a SeqTwoByteString with the given length. | 186 // Allocate a SeqTwoByteString with the given length. |
| 184 compiler::Node* AllocateSeqTwoByteString(int length); | 187 compiler::Node* AllocateSeqTwoByteString(int length); |
| 185 // Allocated an JSArray | 188 // Allocated an JSArray |
| 186 compiler::Node* AllocateJSArray(ElementsKind kind, | 189 compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map, |
| 187 compiler::Node* native_context, int capacity, | 190 int capacity, int length, |
| 188 int length, | |
| 189 compiler::Node* allocation_site = nullptr); | 191 compiler::Node* allocation_site = nullptr); |
| 190 | 192 |
| 191 // Allocation site manipulation | 193 // Allocation site manipulation |
| 192 void InitializeAllocationMemento(compiler::Node* base_allocation, | 194 void InitializeAllocationMemento(compiler::Node* base_allocation, |
| 193 int base_allocation_size, | 195 int base_allocation_size, |
| 194 compiler::Node* allocation_site); | 196 compiler::Node* allocation_site); |
| 195 | 197 |
| 196 compiler::Node* TruncateTaggedToFloat64(compiler::Node* context, | 198 compiler::Node* TruncateTaggedToFloat64(compiler::Node* context, |
| 197 compiler::Node* value); | 199 compiler::Node* value); |
| 198 compiler::Node* TruncateTaggedToWord32(compiler::Node* context, | 200 compiler::Node* TruncateTaggedToWord32(compiler::Node* context, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 compiler::Node* top_adddress, | 239 compiler::Node* top_adddress, |
| 238 compiler::Node* limit_address); | 240 compiler::Node* limit_address); |
| 239 | 241 |
| 240 static const int kElementLoopUnrollThreshold = 8; | 242 static const int kElementLoopUnrollThreshold = 8; |
| 241 }; | 243 }; |
| 242 | 244 |
| 243 } // namespace internal | 245 } // namespace internal |
| 244 } // namespace v8 | 246 } // namespace v8 |
| 245 | 247 |
| 246 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 248 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |