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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/interface-descriptors.h" | 9 #include "src/interface-descriptors.h" |
10 | 10 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 void CallFunctionWithFeedbackDescriptor::Initialize( | 118 void CallFunctionWithFeedbackDescriptor::Initialize( |
119 CallInterfaceDescriptorData* data) { | 119 CallInterfaceDescriptorData* data) { |
120 Register registers[] = {cp, r1, r3}; | 120 Register registers[] = {cp, r1, r3}; |
121 Representation representations[] = {Representation::Tagged(), | 121 Representation representations[] = {Representation::Tagged(), |
122 Representation::Tagged(), | 122 Representation::Tagged(), |
123 Representation::Smi()}; | 123 Representation::Smi()}; |
124 data->Initialize(arraysize(registers), registers, representations); | 124 data->Initialize(arraysize(registers), registers, representations); |
125 } | 125 } |
126 | 126 |
127 | 127 |
| 128 void CallFunctionWithFeedbackAndVectorDescriptor::Initialize( |
| 129 CallInterfaceDescriptorData* data) { |
| 130 Register registers[] = {cp, r1, r3, r2}; |
| 131 Representation representations[] = { |
| 132 Representation::Tagged(), Representation::Tagged(), Representation::Smi(), |
| 133 Representation::Tagged()}; |
| 134 data->Initialize(arraysize(registers), registers, representations); |
| 135 } |
| 136 |
| 137 |
128 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { | 138 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
129 // r0 : number of arguments | 139 // r0 : number of arguments |
130 // r1 : the function to call | 140 // r1 : the function to call |
131 // r2 : feedback vector | 141 // r2 : feedback vector |
132 // r3 : (only if r2 is not the megamorphic symbol) slot in feedback | 142 // r3 : (only if r2 is not the megamorphic symbol) slot in feedback |
133 // vector (Smi) | 143 // vector (Smi) |
134 // TODO(turbofan): So far we don't gather type feedback and hence skip the | 144 // TODO(turbofan): So far we don't gather type feedback and hence skip the |
135 // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 145 // slot parameter, but ArrayConstructStub needs the vector to be undefined. |
136 Register registers[] = {cp, r0, r1, r2}; | 146 Register registers[] = {cp, r0, r1, r2}; |
137 data->Initialize(arraysize(registers), registers, NULL); | 147 data->Initialize(arraysize(registers), registers, NULL); |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 Representation::Tagged(), // holder | 361 Representation::Tagged(), // holder |
352 Representation::External(), // api_function_address | 362 Representation::External(), // api_function_address |
353 }; | 363 }; |
354 data->Initialize(arraysize(registers), registers, representations, | 364 data->Initialize(arraysize(registers), registers, representations, |
355 &default_descriptor); | 365 &default_descriptor); |
356 } | 366 } |
357 } | 367 } |
358 } // namespace v8::internal | 368 } // namespace v8::internal |
359 | 369 |
360 #endif // V8_TARGET_ARCH_ARM | 370 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |