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

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

Issue 2307903002: [Interpreter] Collect allocation site feedback in call bytecode handler. (Closed)
Patch Set: ia32, arm and arm64 ports. Created 4 years, 3 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
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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 Register registers[] = { 399 Register registers[] = {
400 eax, // argument count (not including receiver) 400 eax, // argument count (not including receiver)
401 edx, // new target 401 edx, // new target
402 edi, // constructor 402 edi, // constructor
403 ebx, // allocation site feedback 403 ebx, // allocation site feedback
404 ecx, // address of first argument 404 ecx, // address of first argument
405 }; 405 };
406 data->InitializePlatformSpecific(arraysize(registers), registers); 406 data->InitializePlatformSpecific(arraysize(registers), registers);
407 } 407 }
408 408
409 void InterpreterPushArgsAndConstructArrayDescriptor::InitializePlatformSpecific(
410 CallInterfaceDescriptorData* data) {
411 Register registers[] = {
412 eax, // argument count (not including receiver)
413 edx, // target to the call. It is checked to be Array function.
414 ebx, // allocation site feedback
415 ecx, // address of first argument
416 };
417 data->InitializePlatformSpecific(arraysize(registers), registers);
418 }
419
409 void InterpreterCEntryDescriptor::InitializePlatformSpecific( 420 void InterpreterCEntryDescriptor::InitializePlatformSpecific(
410 CallInterfaceDescriptorData* data) { 421 CallInterfaceDescriptorData* data) {
411 Register registers[] = { 422 Register registers[] = {
412 eax, // argument count (argc) 423 eax, // argument count (argc)
413 ecx, // address of first argument (argv) 424 ecx, // address of first argument (argv)
414 ebx // the runtime function to call 425 ebx // the runtime function to call
415 }; 426 };
416 data->InitializePlatformSpecific(arraysize(registers), registers); 427 data->InitializePlatformSpecific(arraysize(registers), registers);
417 } 428 }
418 429
419 void ResumeGeneratorDescriptor::InitializePlatformSpecific( 430 void ResumeGeneratorDescriptor::InitializePlatformSpecific(
420 CallInterfaceDescriptorData* data) { 431 CallInterfaceDescriptorData* data) {
421 Register registers[] = { 432 Register registers[] = {
422 eax, // the value to pass to the generator 433 eax, // the value to pass to the generator
423 ebx, // the JSGeneratorObject to resume 434 ebx, // the JSGeneratorObject to resume
424 edx // the resume mode (tagged) 435 edx // the resume mode (tagged)
425 }; 436 };
426 data->InitializePlatformSpecific(arraysize(registers), registers); 437 data->InitializePlatformSpecific(arraysize(registers), registers);
427 } 438 }
428 439
429 } // namespace internal 440 } // namespace internal
430 } // namespace v8 441 } // namespace v8
431 442
432 #endif // V8_TARGET_ARCH_IA32 443 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698