| 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 186 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 197   data->InitializePlatformSpecific(arraysize(registers), registers); | 197   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 198 } | 198 } | 
| 199 | 199 | 
| 200 | 200 | 
| 201 void CallConstructDescriptor::InitializePlatformSpecific( | 201 void CallConstructDescriptor::InitializePlatformSpecific( | 
| 202     CallInterfaceDescriptorData* data) { | 202     CallInterfaceDescriptorData* data) { | 
| 203   // x0 : number of arguments | 203   // x0 : number of arguments | 
| 204   // x1 : the function to call | 204   // x1 : the function to call | 
| 205   // x2 : feedback vector | 205   // x2 : feedback vector | 
| 206   // x3 : slot in feedback vector (Smi, for RecordCallTarget) | 206   // x3 : slot in feedback vector (Smi, for RecordCallTarget) | 
| 207   // x4 : original constructor (for IsSuperConstructorCall) | 207   // x4 : new target (for IsSuperConstructorCall) | 
| 208   // TODO(turbofan): So far we don't gather type feedback and hence skip the | 208   // TODO(turbofan): So far we don't gather type feedback and hence skip the | 
| 209   // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 209   // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 
| 210   Register registers[] = {x0, x1, x4, x2}; | 210   Register registers[] = {x0, x1, x4, x2}; | 
| 211   data->InitializePlatformSpecific(arraysize(registers), registers); | 211   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 212 } | 212 } | 
| 213 | 213 | 
| 214 | 214 | 
| 215 void CallTrampolineDescriptor::InitializePlatformSpecific( | 215 void CallTrampolineDescriptor::InitializePlatformSpecific( | 
| 216     CallInterfaceDescriptorData* data) { | 216     CallInterfaceDescriptorData* data) { | 
| 217   // x1: target | 217   // x1: target | 
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 457       x1   // the target callable to be call | 457       x1   // the target callable to be call | 
| 458   }; | 458   }; | 
| 459   data->InitializePlatformSpecific(arraysize(registers), registers); | 459   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 460 } | 460 } | 
| 461 | 461 | 
| 462 | 462 | 
| 463 void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( | 463 void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( | 
| 464     CallInterfaceDescriptorData* data) { | 464     CallInterfaceDescriptorData* data) { | 
| 465   Register registers[] = { | 465   Register registers[] = { | 
| 466       x0,  // argument count (not including receiver) | 466       x0,  // argument count (not including receiver) | 
| 467       x3,  // original constructor | 467       x3,  // new target | 
| 468       x1,  // constructor to call | 468       x1,  // constructor to call | 
| 469       x2   // address of the first argument | 469       x2   // address of the first argument | 
| 470   }; | 470   }; | 
| 471   data->InitializePlatformSpecific(arraysize(registers), registers); | 471   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 472 } | 472 } | 
| 473 | 473 | 
| 474 | 474 | 
| 475 void InterpreterCEntryDescriptor::InitializePlatformSpecific( | 475 void InterpreterCEntryDescriptor::InitializePlatformSpecific( | 
| 476     CallInterfaceDescriptorData* data) { | 476     CallInterfaceDescriptorData* data) { | 
| 477   Register registers[] = { | 477   Register registers[] = { | 
| 478       x0,   // argument count (argc) | 478       x0,   // argument count (argc) | 
| 479       x11,  // address of first argument (argv) | 479       x11,  // address of first argument (argv) | 
| 480       x1    // the runtime function to call | 480       x1    // the runtime function to call | 
| 481   }; | 481   }; | 
| 482   data->InitializePlatformSpecific(arraysize(registers), registers); | 482   data->InitializePlatformSpecific(arraysize(registers), registers); | 
| 483 } | 483 } | 
| 484 | 484 | 
| 485 | 485 | 
| 486 }  // namespace internal | 486 }  // namespace internal | 
| 487 }  // namespace v8 | 487 }  // namespace v8 | 
| 488 | 488 | 
| 489 #endif  // V8_TARGET_ARCH_ARM64 | 489 #endif  // V8_TARGET_ARCH_ARM64 | 
| OLD | NEW | 
|---|