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

Side by Side Diff: src/arm64/interface-descriptors-arm64.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/arm64/code-stubs-arm64.cc ('k') | src/code-factory.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 #include "src/arm64/interface-descriptors-arm64.h" 5 #include "src/arm64/interface-descriptors-arm64.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 } 156 }
157 157
158 158
159 void CallFunctionDescriptor::InitializePlatformSpecific( 159 void CallFunctionDescriptor::InitializePlatformSpecific(
160 CallInterfaceDescriptorData* data) { 160 CallInterfaceDescriptorData* data) {
161 // x1 function the function to call 161 // x1 function the function to call
162 Register registers[] = {x1}; 162 Register registers[] = {x1};
163 data->InitializePlatformSpecific(arraysize(registers), registers); 163 data->InitializePlatformSpecific(arraysize(registers), registers);
164 } 164 }
165 165
166 166 void CallICTrampolineDescriptor::InitializePlatformSpecific(
167 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
168 CallInterfaceDescriptorData* data) { 167 CallInterfaceDescriptorData* data) {
169 Register registers[] = {x1, x0, x3}; 168 Register registers[] = {x1, x0, x3};
170 data->InitializePlatformSpecific(arraysize(registers), registers); 169 data->InitializePlatformSpecific(arraysize(registers), registers);
171 } 170 }
172 171
173 172 void CallICDescriptor::InitializePlatformSpecific(
174 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
175 CallInterfaceDescriptorData* data) { 173 CallInterfaceDescriptorData* data) {
176 Register registers[] = {x1, x0, x3, x2}; 174 Register registers[] = {x1, x0, x3, x2};
177 data->InitializePlatformSpecific(arraysize(registers), registers); 175 data->InitializePlatformSpecific(arraysize(registers), registers);
178 } 176 }
179 177
180 178
181 void CallConstructDescriptor::InitializePlatformSpecific( 179 void CallConstructDescriptor::InitializePlatformSpecific(
182 CallInterfaceDescriptorData* data) { 180 CallInterfaceDescriptorData* data) {
183 // x0 : number of arguments 181 // x0 : number of arguments
184 // x1 : the function to call 182 // x1 : the function to call
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 } 242 }
245 243
246 #define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \ 244 #define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \
247 void Allocate##Type##Descriptor::InitializePlatformSpecific( \ 245 void Allocate##Type##Descriptor::InitializePlatformSpecific( \
248 CallInterfaceDescriptorData* data) { \ 246 CallInterfaceDescriptorData* data) { \
249 data->InitializePlatformSpecific(0, nullptr, nullptr); \ 247 data->InitializePlatformSpecific(0, nullptr, nullptr); \
250 } 248 }
251 SIMD128_TYPES(SIMD128_ALLOC_DESC) 249 SIMD128_TYPES(SIMD128_ALLOC_DESC)
252 #undef SIMD128_ALLOC_DESC 250 #undef SIMD128_ALLOC_DESC
253 251
252 void ArrayConstructorDescriptor::InitializePlatformSpecific(
253 CallInterfaceDescriptorData* data) {
254 // kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite
255 Register registers[] = {x1, x3, x0, x2};
256 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
257 }
258
254 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific( 259 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
255 CallInterfaceDescriptorData* data) { 260 CallInterfaceDescriptorData* data) {
256 // register state 261 // register state
257 // x1: function 262 // x1: function
258 // x2: allocation site with elements kind 263 // x2: allocation site with elements kind
259 // x0: number of arguments to the constructor function 264 // x0: number of arguments to the constructor function
260 Register registers[] = {x1, x2, x0}; 265 Register registers[] = {x1, x2, x0};
261 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); 266 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
262 } 267 }
263 268
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 Register registers[] = { 478 Register registers[] = {
474 x1, // loaded new FP 479 x1, // loaded new FP
475 }; 480 };
476 data->InitializePlatformSpecific(arraysize(registers), registers); 481 data->InitializePlatformSpecific(arraysize(registers), registers);
477 } 482 }
478 483
479 } // namespace internal 484 } // namespace internal
480 } // namespace v8 485 } // namespace v8
481 486
482 #endif // V8_TARGET_ARCH_ARM64 487 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/code-factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698