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 |