OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_CALL_INTERFACE_DESCRIPTOR_H_ | 5 #ifndef V8_CALL_INTERFACE_DESCRIPTOR_H_ |
6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_ | 6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
10 | 10 |
11 namespace v8 { | 11 namespace v8 { |
12 namespace internal { | 12 namespace internal { |
13 | 13 |
14 class PlatformInterfaceDescriptor; | 14 class PlatformInterfaceDescriptor; |
15 | 15 |
16 #define INTERFACE_DESCRIPTOR_LIST(V) \ | 16 #define INTERFACE_DESCRIPTOR_LIST(V) \ |
17 V(Load) \ | 17 V(Load) \ |
18 V(Store) \ | 18 V(Store) \ |
19 V(ElementTransitionAndStore) \ | 19 V(ElementTransitionAndStore) \ |
20 V(Instanceof) \ | 20 V(Instanceof) \ |
| 21 V(VectorLoadICTrampoline) \ |
21 V(VectorLoadIC) \ | 22 V(VectorLoadIC) \ |
22 V(FastNewClosure) \ | 23 V(FastNewClosure) \ |
23 V(FastNewContext) \ | 24 V(FastNewContext) \ |
24 V(ToNumber) \ | 25 V(ToNumber) \ |
25 V(NumberToString) \ | 26 V(NumberToString) \ |
26 V(FastCloneShallowArray) \ | 27 V(FastCloneShallowArray) \ |
27 V(FastCloneShallowObject) \ | 28 V(FastCloneShallowObject) \ |
28 V(CreateAllocationSite) \ | 29 V(CreateAllocationSite) \ |
29 V(CallFunction) \ | 30 V(CallFunction) \ |
| 31 V(CallFunctionWithFeedback) \ |
30 V(CallConstruct) \ | 32 V(CallConstruct) \ |
31 V(RegExpConstructResult) \ | 33 V(RegExpConstructResult) \ |
32 V(TransitionElementsKind) \ | 34 V(TransitionElementsKind) \ |
33 V(ArrayConstructorConstantArgCount) \ | 35 V(ArrayConstructorConstantArgCount) \ |
34 V(ArrayConstructor) \ | 36 V(ArrayConstructor) \ |
35 V(InternalArrayConstructorConstantArgCount) \ | 37 V(InternalArrayConstructorConstantArgCount) \ |
36 V(InternalArrayConstructor) \ | 38 V(InternalArrayConstructor) \ |
37 V(CompareNil) \ | 39 V(CompareNil) \ |
38 V(ToBoolean) \ | 40 V(ToBoolean) \ |
39 V(BinaryOp) \ | 41 V(BinaryOp) \ |
40 V(BinaryOpWithAllocationSite) \ | 42 V(BinaryOpWithAllocationSite) \ |
41 V(StringAdd) \ | 43 V(StringAdd) \ |
42 V(Keyed) \ | 44 V(Keyed) \ |
43 V(Named) \ | 45 V(Named) \ |
44 V(CallHandler) \ | 46 V(CallHandler) \ |
45 V(ArgumentAdaptor) \ | 47 V(ArgumentAdaptor) \ |
46 V(ApiFunction) | 48 V(ApiGetter) \ |
| 49 V(ApiFunction) \ |
| 50 V(ArgumentsAccessRead) \ |
| 51 V(StoreArrayLiteralElement) \ |
| 52 V(MathPowTagged) \ |
| 53 V(MathPowInteger) \ |
| 54 V(ContextOnly) |
47 | 55 |
48 | 56 |
49 class CallInterfaceDescriptorData { | 57 class CallInterfaceDescriptorData { |
50 public: | 58 public: |
51 CallInterfaceDescriptorData() : register_param_count_(-1) {} | 59 CallInterfaceDescriptorData() : register_param_count_(-1) {} |
52 | 60 |
53 // A copy of the passed in registers and param_representations is made | 61 // A copy of the passed in registers and param_representations is made |
54 // and owned by the CallInterfaceDescriptorData. | 62 // and owned by the CallInterfaceDescriptorData. |
55 | 63 |
56 // TODO(mvstanton): Instead of taking parallel arrays register and | 64 // TODO(mvstanton): Instead of taking parallel arrays register and |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 const char* DebugName(Isolate* isolate); | 165 const char* DebugName(Isolate* isolate); |
158 | 166 |
159 protected: | 167 protected: |
160 const CallInterfaceDescriptorData* data() const { return data_; } | 168 const CallInterfaceDescriptorData* data() const { return data_; } |
161 | 169 |
162 private: | 170 private: |
163 const CallInterfaceDescriptorData* data_; | 171 const CallInterfaceDescriptorData* data_; |
164 }; | 172 }; |
165 | 173 |
166 | 174 |
167 #define DECLARE_DESCRIPTOR(name) \ | 175 #define DECLARE_DESCRIPTOR(name, base) \ |
168 explicit name(Isolate* isolate) : CallInterfaceDescriptor(isolate, key()) { \ | 176 explicit name(Isolate* isolate) : base(isolate, key()) { \ |
169 if (!data()->IsInitialized()) \ | 177 if (!data()->IsInitialized()) \ |
170 Initialize(isolate->call_descriptor_data(key())); \ | 178 Initialize(isolate->call_descriptor_data(key())); \ |
171 } \ | 179 } \ |
172 static inline CallDescriptors::Key key(); \ | 180 \ |
173 void Initialize(CallInterfaceDescriptorData* data); | 181 protected: \ |
| 182 void Initialize(CallInterfaceDescriptorData* data); \ |
| 183 name(Isolate* isolate, CallDescriptors::Key key) : base(isolate, key) {} \ |
| 184 \ |
| 185 public: \ |
| 186 static inline CallDescriptors::Key key(); |
174 | 187 |
175 | 188 |
| 189 // LoadDescriptor is used by all stubs that implement Load/KeyedLoad ICs. |
176 class LoadDescriptor : public CallInterfaceDescriptor { | 190 class LoadDescriptor : public CallInterfaceDescriptor { |
177 public: | 191 public: |
178 DECLARE_DESCRIPTOR(LoadDescriptor) | 192 DECLARE_DESCRIPTOR(LoadDescriptor, CallInterfaceDescriptor) |
179 | 193 |
180 enum ParameterIndices { kReceiverIndex, kNameIndex }; | 194 enum ParameterIndices { kReceiverIndex, kNameIndex }; |
181 static const Register ReceiverRegister(); | 195 static const Register ReceiverRegister(); |
182 static const Register NameRegister(); | 196 static const Register NameRegister(); |
183 }; | 197 }; |
184 | 198 |
185 | 199 |
186 class StoreDescriptor : public CallInterfaceDescriptor { | 200 class StoreDescriptor : public CallInterfaceDescriptor { |
187 public: | 201 public: |
188 DECLARE_DESCRIPTOR(StoreDescriptor) | 202 DECLARE_DESCRIPTOR(StoreDescriptor, CallInterfaceDescriptor) |
189 | 203 |
190 enum ParameterIndices { | 204 enum ParameterIndices { |
191 kReceiverIndex, | 205 kReceiverIndex, |
192 kNameIndex, | 206 kNameIndex, |
193 kValueIndex, | 207 kValueIndex, |
194 kParameterCount | 208 kParameterCount |
195 }; | 209 }; |
196 static const Register ReceiverRegister(); | 210 static const Register ReceiverRegister(); |
197 static const Register NameRegister(); | 211 static const Register NameRegister(); |
198 static const Register ValueRegister(); | 212 static const Register ValueRegister(); |
199 }; | 213 }; |
200 | 214 |
201 | 215 |
202 class ElementTransitionAndStoreDescriptor : public CallInterfaceDescriptor { | 216 class ElementTransitionAndStoreDescriptor : public StoreDescriptor { |
203 public: | 217 public: |
204 DECLARE_DESCRIPTOR(ElementTransitionAndStoreDescriptor) | 218 DECLARE_DESCRIPTOR(ElementTransitionAndStoreDescriptor, StoreDescriptor) |
205 | 219 |
206 static const Register ReceiverRegister(); | |
207 static const Register NameRegister(); | |
208 static const Register ValueRegister(); | |
209 static const Register MapRegister(); | 220 static const Register MapRegister(); |
210 }; | 221 }; |
211 | 222 |
212 | 223 |
213 class InstanceofDescriptor : public CallInterfaceDescriptor { | 224 class InstanceofDescriptor : public CallInterfaceDescriptor { |
214 public: | 225 public: |
215 DECLARE_DESCRIPTOR(InstanceofDescriptor) | 226 DECLARE_DESCRIPTOR(InstanceofDescriptor, CallInterfaceDescriptor) |
216 | 227 |
217 enum ParameterIndices { kLeftIndex, kRightIndex, kParameterCount }; | 228 enum ParameterIndices { kLeftIndex, kRightIndex, kParameterCount }; |
218 static const Register left(); | 229 static const Register left(); |
219 static const Register right(); | 230 static const Register right(); |
220 }; | 231 }; |
221 | 232 |
222 | 233 |
223 class VectorLoadICDescriptor : public CallInterfaceDescriptor { | 234 class VectorLoadICTrampolineDescriptor : public LoadDescriptor { |
224 public: | 235 public: |
225 DECLARE_DESCRIPTOR(VectorLoadICDescriptor) | 236 DECLARE_DESCRIPTOR(VectorLoadICTrampolineDescriptor, LoadDescriptor) |
| 237 |
| 238 enum ParameterIndices { kReceiverIndex, kNameIndex, kSlotIndex }; |
| 239 |
| 240 static const Register SlotRegister(); |
| 241 }; |
| 242 |
| 243 |
| 244 class VectorLoadICDescriptor : public VectorLoadICTrampolineDescriptor { |
| 245 public: |
| 246 DECLARE_DESCRIPTOR(VectorLoadICDescriptor, VectorLoadICTrampolineDescriptor) |
226 | 247 |
227 enum ParameterIndices { | 248 enum ParameterIndices { |
228 kReceiverIndex, | 249 kReceiverIndex, |
229 kNameIndex, | 250 kNameIndex, |
230 kSlotIndex, | 251 kSlotIndex, |
231 kVectorIndex, | 252 kVectorIndex |
232 kParameterCount | |
233 }; | 253 }; |
234 | 254 |
235 static const Register ReceiverRegister(); | |
236 static const Register NameRegister(); | |
237 static const Register SlotRegister(); | |
238 static const Register VectorRegister(); | 255 static const Register VectorRegister(); |
239 }; | 256 }; |
240 | 257 |
241 | 258 |
242 class FastNewClosureDescriptor : public CallInterfaceDescriptor { | 259 class FastNewClosureDescriptor : public CallInterfaceDescriptor { |
243 public: | 260 public: |
244 DECLARE_DESCRIPTOR(FastNewClosureDescriptor) | 261 DECLARE_DESCRIPTOR(FastNewClosureDescriptor, CallInterfaceDescriptor) |
245 }; | 262 }; |
246 | 263 |
247 | 264 |
248 class FastNewContextDescriptor : public CallInterfaceDescriptor { | 265 class FastNewContextDescriptor : public CallInterfaceDescriptor { |
249 public: | 266 public: |
250 DECLARE_DESCRIPTOR(FastNewContextDescriptor) | 267 DECLARE_DESCRIPTOR(FastNewContextDescriptor, CallInterfaceDescriptor) |
251 }; | 268 }; |
252 | 269 |
253 | 270 |
254 class ToNumberDescriptor : public CallInterfaceDescriptor { | 271 class ToNumberDescriptor : public CallInterfaceDescriptor { |
255 public: | 272 public: |
256 DECLARE_DESCRIPTOR(ToNumberDescriptor) | 273 DECLARE_DESCRIPTOR(ToNumberDescriptor, CallInterfaceDescriptor) |
257 }; | 274 }; |
258 | 275 |
259 | 276 |
260 class NumberToStringDescriptor : public CallInterfaceDescriptor { | 277 class NumberToStringDescriptor : public CallInterfaceDescriptor { |
261 public: | 278 public: |
262 DECLARE_DESCRIPTOR(NumberToStringDescriptor) | 279 DECLARE_DESCRIPTOR(NumberToStringDescriptor, CallInterfaceDescriptor) |
263 }; | 280 }; |
264 | 281 |
265 | 282 |
266 class FastCloneShallowArrayDescriptor : public CallInterfaceDescriptor { | 283 class FastCloneShallowArrayDescriptor : public CallInterfaceDescriptor { |
267 public: | 284 public: |
268 DECLARE_DESCRIPTOR(FastCloneShallowArrayDescriptor) | 285 DECLARE_DESCRIPTOR(FastCloneShallowArrayDescriptor, CallInterfaceDescriptor) |
269 }; | 286 }; |
270 | 287 |
271 | 288 |
272 class FastCloneShallowObjectDescriptor : public CallInterfaceDescriptor { | 289 class FastCloneShallowObjectDescriptor : public CallInterfaceDescriptor { |
273 public: | 290 public: |
274 DECLARE_DESCRIPTOR(FastCloneShallowObjectDescriptor) | 291 DECLARE_DESCRIPTOR(FastCloneShallowObjectDescriptor, CallInterfaceDescriptor) |
275 }; | 292 }; |
276 | 293 |
277 | 294 |
278 class CreateAllocationSiteDescriptor : public CallInterfaceDescriptor { | 295 class CreateAllocationSiteDescriptor : public CallInterfaceDescriptor { |
279 public: | 296 public: |
280 DECLARE_DESCRIPTOR(CreateAllocationSiteDescriptor) | 297 DECLARE_DESCRIPTOR(CreateAllocationSiteDescriptor, CallInterfaceDescriptor) |
281 }; | 298 }; |
282 | 299 |
283 | 300 |
284 class CallFunctionDescriptor : public CallInterfaceDescriptor { | 301 class CallFunctionDescriptor : public CallInterfaceDescriptor { |
285 public: | 302 public: |
286 DECLARE_DESCRIPTOR(CallFunctionDescriptor) | 303 DECLARE_DESCRIPTOR(CallFunctionDescriptor, CallInterfaceDescriptor) |
| 304 }; |
| 305 |
| 306 |
| 307 class CallFunctionWithFeedbackDescriptor : public CallInterfaceDescriptor { |
| 308 public: |
| 309 DECLARE_DESCRIPTOR(CallFunctionWithFeedbackDescriptor, |
| 310 CallInterfaceDescriptor) |
287 }; | 311 }; |
288 | 312 |
289 | 313 |
290 class CallConstructDescriptor : public CallInterfaceDescriptor { | 314 class CallConstructDescriptor : public CallInterfaceDescriptor { |
291 public: | 315 public: |
292 DECLARE_DESCRIPTOR(CallConstructDescriptor) | 316 DECLARE_DESCRIPTOR(CallConstructDescriptor, CallInterfaceDescriptor) |
293 }; | 317 }; |
294 | 318 |
295 | 319 |
296 class RegExpConstructResultDescriptor : public CallInterfaceDescriptor { | 320 class RegExpConstructResultDescriptor : public CallInterfaceDescriptor { |
297 public: | 321 public: |
298 DECLARE_DESCRIPTOR(RegExpConstructResultDescriptor) | 322 DECLARE_DESCRIPTOR(RegExpConstructResultDescriptor, CallInterfaceDescriptor) |
299 }; | 323 }; |
300 | 324 |
301 | 325 |
302 class TransitionElementsKindDescriptor : public CallInterfaceDescriptor { | 326 class TransitionElementsKindDescriptor : public CallInterfaceDescriptor { |
303 public: | 327 public: |
304 DECLARE_DESCRIPTOR(TransitionElementsKindDescriptor) | 328 DECLARE_DESCRIPTOR(TransitionElementsKindDescriptor, CallInterfaceDescriptor) |
305 }; | 329 }; |
306 | 330 |
307 | 331 |
308 class ArrayConstructorConstantArgCountDescriptor | 332 class ArrayConstructorConstantArgCountDescriptor |
309 : public CallInterfaceDescriptor { | 333 : public CallInterfaceDescriptor { |
310 public: | 334 public: |
311 DECLARE_DESCRIPTOR(ArrayConstructorConstantArgCountDescriptor) | 335 DECLARE_DESCRIPTOR(ArrayConstructorConstantArgCountDescriptor, |
| 336 CallInterfaceDescriptor) |
312 }; | 337 }; |
313 | 338 |
314 | 339 |
315 class ArrayConstructorDescriptor : public CallInterfaceDescriptor { | 340 class ArrayConstructorDescriptor : public CallInterfaceDescriptor { |
316 public: | 341 public: |
317 DECLARE_DESCRIPTOR(ArrayConstructorDescriptor) | 342 DECLARE_DESCRIPTOR(ArrayConstructorDescriptor, CallInterfaceDescriptor) |
318 }; | 343 }; |
319 | 344 |
320 | 345 |
321 class InternalArrayConstructorConstantArgCountDescriptor | 346 class InternalArrayConstructorConstantArgCountDescriptor |
322 : public CallInterfaceDescriptor { | 347 : public CallInterfaceDescriptor { |
323 public: | 348 public: |
324 DECLARE_DESCRIPTOR(InternalArrayConstructorConstantArgCountDescriptor) | 349 DECLARE_DESCRIPTOR(InternalArrayConstructorConstantArgCountDescriptor, |
| 350 CallInterfaceDescriptor) |
325 }; | 351 }; |
326 | 352 |
327 | 353 |
328 class InternalArrayConstructorDescriptor : public CallInterfaceDescriptor { | 354 class InternalArrayConstructorDescriptor : public CallInterfaceDescriptor { |
329 public: | 355 public: |
330 DECLARE_DESCRIPTOR(InternalArrayConstructorDescriptor) | 356 DECLARE_DESCRIPTOR(InternalArrayConstructorDescriptor, |
| 357 CallInterfaceDescriptor) |
331 }; | 358 }; |
332 | 359 |
333 | 360 |
334 class CompareNilDescriptor : public CallInterfaceDescriptor { | 361 class CompareNilDescriptor : public CallInterfaceDescriptor { |
335 public: | 362 public: |
336 DECLARE_DESCRIPTOR(CompareNilDescriptor) | 363 DECLARE_DESCRIPTOR(CompareNilDescriptor, CallInterfaceDescriptor) |
337 }; | 364 }; |
338 | 365 |
339 | 366 |
340 class ToBooleanDescriptor : public CallInterfaceDescriptor { | 367 class ToBooleanDescriptor : public CallInterfaceDescriptor { |
341 public: | 368 public: |
342 DECLARE_DESCRIPTOR(ToBooleanDescriptor) | 369 DECLARE_DESCRIPTOR(ToBooleanDescriptor, CallInterfaceDescriptor) |
343 }; | 370 }; |
344 | 371 |
345 | 372 |
346 class BinaryOpDescriptor : public CallInterfaceDescriptor { | 373 class BinaryOpDescriptor : public CallInterfaceDescriptor { |
347 public: | 374 public: |
348 DECLARE_DESCRIPTOR(BinaryOpDescriptor) | 375 DECLARE_DESCRIPTOR(BinaryOpDescriptor, CallInterfaceDescriptor) |
349 }; | 376 }; |
350 | 377 |
351 | 378 |
352 class BinaryOpWithAllocationSiteDescriptor : public CallInterfaceDescriptor { | 379 class BinaryOpWithAllocationSiteDescriptor : public CallInterfaceDescriptor { |
353 public: | 380 public: |
354 DECLARE_DESCRIPTOR(BinaryOpWithAllocationSiteDescriptor) | 381 DECLARE_DESCRIPTOR(BinaryOpWithAllocationSiteDescriptor, |
| 382 CallInterfaceDescriptor) |
355 }; | 383 }; |
356 | 384 |
357 | 385 |
358 class StringAddDescriptor : public CallInterfaceDescriptor { | 386 class StringAddDescriptor : public CallInterfaceDescriptor { |
359 public: | 387 public: |
360 DECLARE_DESCRIPTOR(StringAddDescriptor) | 388 DECLARE_DESCRIPTOR(StringAddDescriptor, CallInterfaceDescriptor) |
361 }; | 389 }; |
362 | 390 |
363 | 391 |
364 class KeyedDescriptor : public CallInterfaceDescriptor { | 392 class KeyedDescriptor : public CallInterfaceDescriptor { |
365 public: | 393 public: |
366 DECLARE_DESCRIPTOR(KeyedDescriptor) | 394 DECLARE_DESCRIPTOR(KeyedDescriptor, CallInterfaceDescriptor) |
367 }; | 395 }; |
368 | 396 |
369 | 397 |
370 class NamedDescriptor : public CallInterfaceDescriptor { | 398 class NamedDescriptor : public CallInterfaceDescriptor { |
371 public: | 399 public: |
372 DECLARE_DESCRIPTOR(NamedDescriptor) | 400 DECLARE_DESCRIPTOR(NamedDescriptor, CallInterfaceDescriptor) |
373 }; | 401 }; |
374 | 402 |
375 | 403 |
376 class CallHandlerDescriptor : public CallInterfaceDescriptor { | 404 class CallHandlerDescriptor : public CallInterfaceDescriptor { |
377 public: | 405 public: |
378 DECLARE_DESCRIPTOR(CallHandlerDescriptor) | 406 DECLARE_DESCRIPTOR(CallHandlerDescriptor, CallInterfaceDescriptor) |
379 }; | 407 }; |
380 | 408 |
381 | 409 |
382 class ArgumentAdaptorDescriptor : public CallInterfaceDescriptor { | 410 class ArgumentAdaptorDescriptor : public CallInterfaceDescriptor { |
383 public: | 411 public: |
384 DECLARE_DESCRIPTOR(ArgumentAdaptorDescriptor) | 412 DECLARE_DESCRIPTOR(ArgumentAdaptorDescriptor, CallInterfaceDescriptor) |
385 }; | 413 }; |
386 | 414 |
387 | 415 |
388 class ApiFunctionDescriptor : public CallInterfaceDescriptor { | 416 class ApiFunctionDescriptor : public CallInterfaceDescriptor { |
389 public: | 417 public: |
390 DECLARE_DESCRIPTOR(ApiFunctionDescriptor) | 418 DECLARE_DESCRIPTOR(ApiFunctionDescriptor, CallInterfaceDescriptor) |
| 419 }; |
| 420 |
| 421 |
| 422 class ApiGetterDescriptor : public CallInterfaceDescriptor { |
| 423 public: |
| 424 DECLARE_DESCRIPTOR(ApiGetterDescriptor, CallInterfaceDescriptor) |
| 425 |
| 426 static const Register function_address(); |
| 427 }; |
| 428 |
| 429 |
| 430 class ArgumentsAccessReadDescriptor : public CallInterfaceDescriptor { |
| 431 public: |
| 432 DECLARE_DESCRIPTOR(ArgumentsAccessReadDescriptor, CallInterfaceDescriptor) |
| 433 |
| 434 static const Register index(); |
| 435 static const Register parameter_count(); |
| 436 }; |
| 437 |
| 438 |
| 439 class StoreArrayLiteralElementDescriptor : public CallInterfaceDescriptor { |
| 440 public: |
| 441 DECLARE_DESCRIPTOR(StoreArrayLiteralElementDescriptor, |
| 442 CallInterfaceDescriptor) |
| 443 }; |
| 444 |
| 445 |
| 446 class MathPowTaggedDescriptor : public CallInterfaceDescriptor { |
| 447 public: |
| 448 DECLARE_DESCRIPTOR(MathPowTaggedDescriptor, CallInterfaceDescriptor) |
| 449 |
| 450 static const Register exponent(); |
| 451 }; |
| 452 |
| 453 |
| 454 class MathPowIntegerDescriptor : public CallInterfaceDescriptor { |
| 455 public: |
| 456 DECLARE_DESCRIPTOR(MathPowIntegerDescriptor, CallInterfaceDescriptor) |
| 457 |
| 458 static const Register exponent(); |
| 459 }; |
| 460 |
| 461 |
| 462 class ContextOnlyDescriptor : public CallInterfaceDescriptor { |
| 463 public: |
| 464 DECLARE_DESCRIPTOR(ContextOnlyDescriptor, CallInterfaceDescriptor) |
391 }; | 465 }; |
392 | 466 |
393 #undef DECLARE_DESCRIPTOR | 467 #undef DECLARE_DESCRIPTOR |
394 | 468 |
395 | 469 |
396 // We define the association between CallDescriptors::Key and the specialized | 470 // We define the association between CallDescriptors::Key and the specialized |
397 // descriptor here to reduce boilerplate and mistakes. | 471 // descriptor here to reduce boilerplate and mistakes. |
398 #define DEF_KEY(name) \ | 472 #define DEF_KEY(name) \ |
399 CallDescriptors::Key name##Descriptor::key() { return CallDescriptors::name; } | 473 CallDescriptors::Key name##Descriptor::key() { return CallDescriptors::name; } |
400 INTERFACE_DESCRIPTOR_LIST(DEF_KEY) | 474 INTERFACE_DESCRIPTOR_LIST(DEF_KEY) |
401 #undef DEF_KEY | 475 #undef DEF_KEY |
402 } | 476 } |
403 } // namespace v8::internal | 477 } // namespace v8::internal |
404 | 478 |
405 | 479 |
406 #if V8_TARGET_ARCH_ARM64 | 480 #if V8_TARGET_ARCH_ARM64 |
407 #include "src/arm64/interface-descriptors-arm64.h" | 481 #include "src/arm64/interface-descriptors-arm64.h" |
408 #elif V8_TARGET_ARCH_ARM | 482 #elif V8_TARGET_ARCH_ARM |
409 #include "src/arm/interface-descriptors-arm.h" | 483 #include "src/arm/interface-descriptors-arm.h" |
410 #endif | 484 #endif |
411 | 485 |
412 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ | 486 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ |
OLD | NEW |