| 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 |