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 |