Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(666)

Side by Side Diff: src/ia32/interface-descriptors-ia32.cc

Issue 2670843002: [stubs] Also port the CallICStub to CSA. (Closed)
Patch Set: Introduce FullCodeGenerator::IntFromSlot. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ic/ic.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ic/ic.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698