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 #if V8_TARGET_ARCH_IA32 | 5 #if V8_TARGET_ARCH_IA32 |
6 | 6 |
7 #include "src/interface-descriptors.h" | 7 #include "src/interface-descriptors.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 data->InitializePlatformSpecific(arraysize(registers), registers); | 134 data->InitializePlatformSpecific(arraysize(registers), registers); |
135 } | 135 } |
136 | 136 |
137 | 137 |
138 void CallFunctionDescriptor::InitializePlatformSpecific( | 138 void CallFunctionDescriptor::InitializePlatformSpecific( |
139 CallInterfaceDescriptorData* data) { | 139 CallInterfaceDescriptorData* data) { |
140 Register registers[] = {edi}; | 140 Register registers[] = {edi}; |
141 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); | 141 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); |
142 } | 142 } |
143 | 143 |
144 | 144 void CallICTrampolineDescriptor::InitializePlatformSpecific( |
145 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific( | |
146 CallInterfaceDescriptorData* data) { | 145 CallInterfaceDescriptorData* data) { |
147 Register registers[] = {edi, eax, edx}; | 146 Register registers[] = {edi, eax, edx}; |
148 data->InitializePlatformSpecific(arraysize(registers), registers); | 147 data->InitializePlatformSpecific(arraysize(registers), registers); |
149 } | 148 } |
150 | 149 |
151 | 150 void CallICDescriptor::InitializePlatformSpecific( |
152 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific( | |
153 CallInterfaceDescriptorData* data) { | 151 CallInterfaceDescriptorData* data) { |
154 Register registers[] = {edi, eax, edx, ebx}; | 152 Register registers[] = {edi, eax, edx, ebx}; |
155 data->InitializePlatformSpecific(arraysize(registers), registers); | 153 data->InitializePlatformSpecific(arraysize(registers), registers); |
156 } | 154 } |
157 | 155 |
158 | 156 |
159 void CallConstructDescriptor::InitializePlatformSpecific( | 157 void CallConstructDescriptor::InitializePlatformSpecific( |
160 CallInterfaceDescriptorData* data) { | 158 CallInterfaceDescriptorData* data) { |
161 // eax : number of arguments | 159 // eax : number of arguments |
162 // ebx : feedback vector | 160 // ebx : feedback vector |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 } | 219 } |
222 | 220 |
223 #define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \ | 221 #define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \ |
224 void Allocate##Type##Descriptor::InitializePlatformSpecific( \ | 222 void Allocate##Type##Descriptor::InitializePlatformSpecific( \ |
225 CallInterfaceDescriptorData* data) { \ | 223 CallInterfaceDescriptorData* data) { \ |
226 data->InitializePlatformSpecific(0, nullptr, nullptr); \ | 224 data->InitializePlatformSpecific(0, nullptr, nullptr); \ |
227 } | 225 } |
228 SIMD128_TYPES(SIMD128_ALLOC_DESC) | 226 SIMD128_TYPES(SIMD128_ALLOC_DESC) |
229 #undef SIMD128_ALLOC_DESC | 227 #undef SIMD128_ALLOC_DESC |
230 | 228 |
| 229 void ArrayConstructorDescriptor::InitializePlatformSpecific( |
| 230 CallInterfaceDescriptorData* data) { |
| 231 // kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite |
| 232 Register registers[] = {edi, edx, eax, ebx}; |
| 233 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); |
| 234 } |
| 235 |
231 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific( | 236 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific( |
232 CallInterfaceDescriptorData* data) { | 237 CallInterfaceDescriptorData* data) { |
233 // register state | 238 // register state |
234 // eax -- number of arguments | 239 // eax -- number of arguments |
235 // edi -- function | 240 // edi -- function |
236 // ebx -- allocation site with elements kind | 241 // ebx -- allocation site with elements kind |
237 Register registers[] = {edi, ebx, eax}; | 242 Register registers[] = {edi, ebx, eax}; |
238 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); | 243 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); |
239 } | 244 } |
240 | 245 |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 Register registers[] = { | 429 Register registers[] = { |
425 ebx, // loaded new FP | 430 ebx, // loaded new FP |
426 }; | 431 }; |
427 data->InitializePlatformSpecific(arraysize(registers), registers); | 432 data->InitializePlatformSpecific(arraysize(registers), registers); |
428 } | 433 } |
429 | 434 |
430 } // namespace internal | 435 } // namespace internal |
431 } // namespace v8 | 436 } // namespace v8 |
432 | 437 |
433 #endif // V8_TARGET_ARCH_IA32 | 438 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |