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

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

Issue 2051573002: [Interpreter] Add intrinsics called as stubs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix leak Created 4 years, 6 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/interface-descriptors.h ('k') | src/interpreter/interpreter-intrinsics.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/interface-descriptors.h" 5 #include "src/interface-descriptors.h"
6 6
7 namespace v8 { 7 namespace v8 {
8 namespace internal { 8 namespace internal {
9 9
10 namespace { 10 namespace {
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 Register registers[] = {ArgumentRegister()}; 207 Register registers[] = {ArgumentRegister()};
208 data->InitializePlatformSpecific(arraysize(registers), registers); 208 data->InitializePlatformSpecific(arraysize(registers), registers);
209 } 209 }
210 210
211 void MathPowTaggedDescriptor::InitializePlatformSpecific( 211 void MathPowTaggedDescriptor::InitializePlatformSpecific(
212 CallInterfaceDescriptorData* data) { 212 CallInterfaceDescriptorData* data) {
213 Register registers[] = {exponent()}; 213 Register registers[] = {exponent()};
214 data->InitializePlatformSpecific(arraysize(registers), registers); 214 data->InitializePlatformSpecific(arraysize(registers), registers);
215 } 215 }
216 216
217
218 void MathPowIntegerDescriptor::InitializePlatformSpecific( 217 void MathPowIntegerDescriptor::InitializePlatformSpecific(
219 CallInterfaceDescriptorData* data) { 218 CallInterfaceDescriptorData* data) {
220 Register registers[] = {exponent()}; 219 Register registers[] = {exponent()};
221 data->InitializePlatformSpecific(arraysize(registers), registers); 220 data->InitializePlatformSpecific(arraysize(registers), registers);
222 } 221 }
223 222
224 FunctionType* 223 FunctionType*
225 LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( 224 LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType(
226 Isolate* isolate, int paramater_count) { 225 Isolate* isolate, int paramater_count) {
227 Zone* zone = isolate->interface_descriptor_zone(); 226 Zone* zone = isolate->interface_descriptor_zone();
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 Register registers[] = {ReceiverRegister(), HolderRegister(), 313 Register registers[] = {ReceiverRegister(), HolderRegister(),
315 CallbackRegister()}; 314 CallbackRegister()};
316 data->InitializePlatformSpecific(arraysize(registers), registers); 315 data->InitializePlatformSpecific(arraysize(registers), registers);
317 } 316 }
318 317
319 void ContextOnlyDescriptor::InitializePlatformSpecific( 318 void ContextOnlyDescriptor::InitializePlatformSpecific(
320 CallInterfaceDescriptorData* data) { 319 CallInterfaceDescriptorData* data) {
321 data->InitializePlatformSpecific(0, nullptr); 320 data->InitializePlatformSpecific(0, nullptr);
322 } 321 }
323 322
323 CallInterfaceDescriptor OnStackArgsDescriptorBase::ForArgs(
324 Isolate* isolate, int parameter_count) {
325 switch (parameter_count) {
326 case 1:
327 return OnStackWith1ArgsDescriptor(isolate);
328 case 2:
329 return OnStackWith2ArgsDescriptor(isolate);
330 case 3:
331 return OnStackWith3ArgsDescriptor(isolate);
332 case 4:
333 return OnStackWith4ArgsDescriptor(isolate);
334 case 5:
335 return OnStackWith5ArgsDescriptor(isolate);
336 case 6:
337 return OnStackWith6ArgsDescriptor(isolate);
338 case 7:
339 return OnStackWith7ArgsDescriptor(isolate);
340 default:
341 UNREACHABLE();
342 return VoidDescriptor(isolate);
343 }
344 }
345
346 FunctionType*
347 OnStackArgsDescriptorBase::BuildCallInterfaceDescriptorFunctionTypeWithArg(
348 Isolate* isolate, int register_parameter_count, int parameter_count) {
349 DCHECK_EQ(0, register_parameter_count);
350 DCHECK_GT(parameter_count, 0);
351 Zone* zone = isolate->interface_descriptor_zone();
352 FunctionType* function =
353 Type::Function(AnyTagged(zone), AnyTagged(zone), parameter_count, zone)
354 ->AsFunction();
355 for (int i = 0; i < parameter_count; i++) {
356 function->InitParameter(i, AnyTagged(zone));
357 }
358 return function;
359 }
360
361 void OnStackArgsDescriptorBase::InitializePlatformSpecific(
362 CallInterfaceDescriptorData* data) {
363 data->InitializePlatformSpecific(0, nullptr);
364 }
324 365
325 void GrowArrayElementsDescriptor::InitializePlatformSpecific( 366 void GrowArrayElementsDescriptor::InitializePlatformSpecific(
326 CallInterfaceDescriptorData* data) { 367 CallInterfaceDescriptorData* data) {
327 Register registers[] = {ObjectRegister(), KeyRegister()}; 368 Register registers[] = {ObjectRegister(), KeyRegister()};
328 data->InitializePlatformSpecific(arraysize(registers), registers); 369 data->InitializePlatformSpecific(arraysize(registers), registers);
329 } 370 }
330 371
331 FunctionType* 372 FunctionType*
332 VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType( 373 VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType(
333 Isolate* isolate, int paramater_count) { 374 Isolate* isolate, int paramater_count) {
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); 587 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction();
547 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); 588 function->InitParameter(kAccumulatorParameter, AnyTagged(zone));
548 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); 589 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone));
549 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); 590 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone));
550 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); 591 function->InitParameter(kDispatchTableParameter, AnyTagged(zone));
551 return function; 592 return function;
552 } 593 }
553 594
554 } // namespace internal 595 } // namespace internal
555 } // namespace v8 596 } // namespace v8
OLDNEW
« no previous file with comments | « src/interface-descriptors.h ('k') | src/interpreter/interpreter-intrinsics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698