OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #include "src/arm64/interface-descriptors-arm64.h" | 5 #include "src/arm64/interface-descriptors-arm64.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/interface-descriptors.h" | 9 #include "src/interface-descriptors.h" |
10 | 10 |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 } | 308 } |
309 | 309 |
310 void StringAddDescriptor::InitializePlatformSpecific( | 310 void StringAddDescriptor::InitializePlatformSpecific( |
311 CallInterfaceDescriptorData* data) { | 311 CallInterfaceDescriptorData* data) { |
312 // x1: left operand | 312 // x1: left operand |
313 // x0: right operand | 313 // x0: right operand |
314 Register registers[] = {x1, x0}; | 314 Register registers[] = {x1, x0}; |
315 data->InitializePlatformSpecific(arraysize(registers), registers); | 315 data->InitializePlatformSpecific(arraysize(registers), registers); |
316 } | 316 } |
317 | 317 |
318 | |
319 void KeyedDescriptor::InitializePlatformSpecific( | |
320 CallInterfaceDescriptorData* data) { | |
321 static PlatformInterfaceDescriptor noInlineDescriptor = | |
322 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); | |
323 | |
324 Register registers[] = { | |
325 x2, // key | |
326 }; | |
327 data->InitializePlatformSpecific(arraysize(registers), registers, | |
328 &noInlineDescriptor); | |
329 } | |
330 | |
331 | |
332 void NamedDescriptor::InitializePlatformSpecific( | |
333 CallInterfaceDescriptorData* data) { | |
334 static PlatformInterfaceDescriptor noInlineDescriptor = | |
335 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); | |
336 | |
337 Register registers[] = { | |
338 x2, // name | |
339 }; | |
340 data->InitializePlatformSpecific(arraysize(registers), registers, | |
341 &noInlineDescriptor); | |
342 } | |
343 | |
344 | |
345 void CallHandlerDescriptor::InitializePlatformSpecific( | |
346 CallInterfaceDescriptorData* data) { | |
347 static PlatformInterfaceDescriptor default_descriptor = | |
348 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); | |
349 | |
350 Register registers[] = { | |
351 x0, // receiver | |
352 }; | |
353 data->InitializePlatformSpecific(arraysize(registers), registers, | |
354 &default_descriptor); | |
355 } | |
356 | |
357 | |
358 void ArgumentAdaptorDescriptor::InitializePlatformSpecific( | 318 void ArgumentAdaptorDescriptor::InitializePlatformSpecific( |
359 CallInterfaceDescriptorData* data) { | 319 CallInterfaceDescriptorData* data) { |
360 static PlatformInterfaceDescriptor default_descriptor = | 320 static PlatformInterfaceDescriptor default_descriptor = |
361 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); | 321 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); |
362 | 322 |
363 Register registers[] = { | 323 Register registers[] = { |
364 x1, // JSFunction | 324 x1, // JSFunction |
365 x3, // the new target | 325 x3, // the new target |
366 x0, // actual number of arguments | 326 x0, // actual number of arguments |
367 x2, // expected number of arguments | 327 x2, // expected number of arguments |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 Register registers[] = { | 412 Register registers[] = { |
453 x1, // loaded new FP | 413 x1, // loaded new FP |
454 }; | 414 }; |
455 data->InitializePlatformSpecific(arraysize(registers), registers); | 415 data->InitializePlatformSpecific(arraysize(registers), registers); |
456 } | 416 } |
457 | 417 |
458 } // namespace internal | 418 } // namespace internal |
459 } // namespace v8 | 419 } // namespace v8 |
460 | 420 |
461 #endif // V8_TARGET_ARCH_ARM64 | 421 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |