| 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/interface-descriptors.h" | 5 #include "src/interface-descriptors.h" |
| 6 | 6 |
| 7 namespace v8 { | 7 namespace v8 { |
| 8 namespace internal { | 8 namespace internal { |
| 9 | 9 |
| 10 | 10 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 data->InitializePlatformIndependent(arraysize(machine_types), 0, | 83 data->InitializePlatformIndependent(arraysize(machine_types), 0, |
| 84 machine_types); | 84 machine_types); |
| 85 } | 85 } |
| 86 | 86 |
| 87 void LoadDescriptor::InitializePlatformSpecific( | 87 void LoadDescriptor::InitializePlatformSpecific( |
| 88 CallInterfaceDescriptorData* data) { | 88 CallInterfaceDescriptorData* data) { |
| 89 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister()}; | 89 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister()}; |
| 90 data->InitializePlatformSpecific(arraysize(registers), registers); | 90 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 91 } | 91 } |
| 92 | 92 |
| 93 void LoadFieldDescriptor::InitializePlatformIndependent( |
| 94 CallInterfaceDescriptorData* data) { |
| 95 // kReceiver, kSmiHandler |
| 96 MachineType machine_types[] = {MachineType::AnyTagged(), |
| 97 MachineType::AnyTagged()}; |
| 98 data->InitializePlatformIndependent(arraysize(machine_types), 0, |
| 99 machine_types); |
| 100 } |
| 101 |
| 102 void LoadFieldDescriptor::InitializePlatformSpecific( |
| 103 CallInterfaceDescriptorData* data) { |
| 104 Register registers[] = {ReceiverRegister(), SmiHandlerRegister()}; |
| 105 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 106 } |
| 107 |
| 93 void LoadGlobalDescriptor::InitializePlatformIndependent( | 108 void LoadGlobalDescriptor::InitializePlatformIndependent( |
| 94 CallInterfaceDescriptorData* data) { | 109 CallInterfaceDescriptorData* data) { |
| 95 // kName, kSlot | 110 // kName, kSlot |
| 96 MachineType machine_types[] = {MachineType::AnyTagged(), | 111 MachineType machine_types[] = {MachineType::AnyTagged(), |
| 97 MachineType::TaggedSigned()}; | 112 MachineType::TaggedSigned()}; |
| 98 data->InitializePlatformIndependent(arraysize(machine_types), 0, | 113 data->InitializePlatformIndependent(arraysize(machine_types), 0, |
| 99 machine_types); | 114 machine_types); |
| 100 } | 115 } |
| 101 | 116 |
| 102 void LoadGlobalDescriptor::InitializePlatformSpecific( | 117 void LoadGlobalDescriptor::InitializePlatformSpecific( |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 Register registers[] = {exponent()}; | 245 Register registers[] = {exponent()}; |
| 231 data->InitializePlatformSpecific(arraysize(registers), registers); | 246 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 232 } | 247 } |
| 233 | 248 |
| 234 void MathPowIntegerDescriptor::InitializePlatformSpecific( | 249 void MathPowIntegerDescriptor::InitializePlatformSpecific( |
| 235 CallInterfaceDescriptorData* data) { | 250 CallInterfaceDescriptorData* data) { |
| 236 Register registers[] = {exponent()}; | 251 Register registers[] = {exponent()}; |
| 237 data->InitializePlatformSpecific(arraysize(registers), registers); | 252 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 238 } | 253 } |
| 239 | 254 |
| 255 const Register LoadFieldDescriptor::ReceiverRegister() { |
| 256 // Reuse the register from the LoadDescriptor, since given the |
| 257 // LoadFieldDescriptor's usage, it doesn't matter exactly which registers are |
| 258 // used to pass parameters in. |
| 259 return LoadDescriptor::ReceiverRegister(); |
| 260 } |
| 261 const Register LoadFieldDescriptor::SmiHandlerRegister() { |
| 262 // Reuse the register from the LoadDescriptor, since given the |
| 263 // LoadFieldDescriptor's usage, it doesn't matter exactly which registers are |
| 264 // used to pass parameters in. |
| 265 return LoadDescriptor::NameRegister(); |
| 266 } |
| 267 |
| 240 void LoadWithVectorDescriptor::InitializePlatformIndependent( | 268 void LoadWithVectorDescriptor::InitializePlatformIndependent( |
| 241 CallInterfaceDescriptorData* data) { | 269 CallInterfaceDescriptorData* data) { |
| 242 // kReceiver, kName, kSlot, kVector | 270 // kReceiver, kName, kSlot, kVector |
| 243 MachineType machine_types[] = { | 271 MachineType machine_types[] = { |
| 244 MachineType::AnyTagged(), MachineType::AnyTagged(), | 272 MachineType::AnyTagged(), MachineType::AnyTagged(), |
| 245 MachineType::TaggedSigned(), MachineType::AnyTagged()}; | 273 MachineType::TaggedSigned(), MachineType::AnyTagged()}; |
| 246 data->InitializePlatformIndependent(arraysize(machine_types), 0, | 274 data->InitializePlatformIndependent(arraysize(machine_types), 0, |
| 247 machine_types); | 275 machine_types); |
| 248 } | 276 } |
| 249 | 277 |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 CallInterfaceDescriptorData* data) { | 579 CallInterfaceDescriptorData* data) { |
| 552 // kNumberOfArguments, kFirstArgument, kFunctionEntry | 580 // kNumberOfArguments, kFirstArgument, kFunctionEntry |
| 553 MachineType machine_types[] = {MachineType::Int32(), MachineType::Pointer(), | 581 MachineType machine_types[] = {MachineType::Int32(), MachineType::Pointer(), |
| 554 MachineType::Pointer()}; | 582 MachineType::Pointer()}; |
| 555 data->InitializePlatformIndependent(arraysize(machine_types), 0, | 583 data->InitializePlatformIndependent(arraysize(machine_types), 0, |
| 556 machine_types); | 584 machine_types); |
| 557 } | 585 } |
| 558 | 586 |
| 559 } // namespace internal | 587 } // namespace internal |
| 560 } // namespace v8 | 588 } // namespace v8 |
| OLD | NEW |