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

Side by Side Diff: src/code-stubs.cc

Issue 527093002: Make concrete classes for individual call descriptors. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE. Created 6 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 | Annotate | Revision Log
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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/factory.h" 10 #include "src/factory.h"
11 #include "src/gdb-jit.h" 11 #include "src/gdb-jit.h"
12 #include "src/ic/handler-compiler.h" 12 #include "src/ic/handler-compiler.h"
13 #include "src/macro-assembler.h" 13 #include "src/macro-assembler.h"
14 14
15 namespace v8 { 15 namespace v8 {
16 namespace internal { 16 namespace internal {
17 17
18 18
19 CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor() 19 CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
20 : call_descriptor_(NULL), 20 : stack_parameter_count_(no_reg),
21 stack_parameter_count_(no_reg),
22 hint_stack_parameter_count_(-1), 21 hint_stack_parameter_count_(-1),
23 function_mode_(NOT_JS_FUNCTION_STUB_MODE), 22 function_mode_(NOT_JS_FUNCTION_STUB_MODE),
24 deoptimization_handler_(NULL), 23 deoptimization_handler_(NULL),
25 handler_arguments_mode_(DONT_PASS_ARGUMENTS), 24 handler_arguments_mode_(DONT_PASS_ARGUMENTS),
26 miss_handler_(), 25 miss_handler_(),
27 has_miss_handler_(false) {} 26 has_miss_handler_(false) {}
28 27
29 28
30 void CodeStubInterfaceDescriptor::Initialize( 29 void CodeStubInterfaceDescriptor::Initialize(
31 CodeStub::Major major, CallInterfaceDescriptor* call_descriptor, 30 CodeStub::Major major, CallInterfaceDescriptor call_descriptor,
32 Address deoptimization_handler, int hint_stack_parameter_count, 31 Address deoptimization_handler, int hint_stack_parameter_count,
33 StubFunctionMode function_mode) { 32 StubFunctionMode function_mode) {
34 call_descriptor_ = call_descriptor; 33 call_descriptor_ = call_descriptor;
35 deoptimization_handler_ = deoptimization_handler; 34 deoptimization_handler_ = deoptimization_handler;
36 hint_stack_parameter_count_ = hint_stack_parameter_count; 35 hint_stack_parameter_count_ = hint_stack_parameter_count;
37 function_mode_ = function_mode; 36 function_mode_ = function_mode;
38 major_ = major; 37 major_ = major;
Yang 2014/09/03 09:24:34 not sure whether an initialization list would be m
39 } 38 }
40 39
41 40
42 void CodeStubInterfaceDescriptor::Initialize( 41 void CodeStubInterfaceDescriptor::Initialize(
43 CodeStub::Major major, CallInterfaceDescriptor* call_descriptor, 42 CodeStub::Major major, CallInterfaceDescriptor call_descriptor,
44 Register stack_parameter_count, Address deoptimization_handler, 43 Register stack_parameter_count, Address deoptimization_handler,
45 int hint_stack_parameter_count, StubFunctionMode function_mode, 44 int hint_stack_parameter_count, StubFunctionMode function_mode,
46 HandlerArgumentsMode handler_mode) { 45 HandlerArgumentsMode handler_mode) {
47 Initialize(major, call_descriptor, deoptimization_handler, 46 Initialize(major, call_descriptor, deoptimization_handler,
48 hint_stack_parameter_count, function_mode); 47 hint_stack_parameter_count, function_mode);
49 stack_parameter_count_ = stack_parameter_count; 48 stack_parameter_count_ = stack_parameter_count;
50 handler_arguments_mode_ = handler_mode; 49 handler_arguments_mode_ = handler_mode;
51 } 50 }
52 51
53 52
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 void JSEntryStub::FinishCode(Handle<Code> code) { 493 void JSEntryStub::FinishCode(Handle<Code> code) {
495 Handle<FixedArray> handler_table = 494 Handle<FixedArray> handler_table =
496 code->GetIsolate()->factory()->NewFixedArray(1, TENURED); 495 code->GetIsolate()->factory()->NewFixedArray(1, TENURED);
497 handler_table->set(0, Smi::FromInt(handler_offset_)); 496 handler_table->set(0, Smi::FromInt(handler_offset_));
498 code->set_handler_table(*handler_table); 497 code->set_handler_table(*handler_table);
499 } 498 }
500 499
501 500
502 void LoadFastElementStub::InitializeInterfaceDescriptor( 501 void LoadFastElementStub::InitializeInterfaceDescriptor(
503 CodeStubInterfaceDescriptor* descriptor) { 502 CodeStubInterfaceDescriptor* descriptor) {
504 CallInterfaceDescriptor* call_descriptor = 503 LoadDescriptor call_descriptor(isolate());
505 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
506 descriptor->Initialize(MajorKey(), call_descriptor, 504 descriptor->Initialize(MajorKey(), call_descriptor,
507 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); 505 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
508 } 506 }
509 507
510 508
511 void LoadDictionaryElementStub::InitializeInterfaceDescriptor( 509 void LoadDictionaryElementStub::InitializeInterfaceDescriptor(
512 CodeStubInterfaceDescriptor* descriptor) { 510 CodeStubInterfaceDescriptor* descriptor) {
513 CallInterfaceDescriptor* call_descriptor = 511 LoadDescriptor call_descriptor(isolate());
514 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
515 descriptor->Initialize(MajorKey(), call_descriptor, 512 descriptor->Initialize(MajorKey(), call_descriptor,
516 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); 513 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
517 } 514 }
518 515
519 516
520 void KeyedLoadGenericStub::InitializeInterfaceDescriptor( 517 void KeyedLoadGenericStub::InitializeInterfaceDescriptor(
521 CodeStubInterfaceDescriptor* descriptor) { 518 CodeStubInterfaceDescriptor* descriptor) {
522 CallInterfaceDescriptor* call_descriptor = 519 LoadDescriptor call_descriptor(isolate());
523 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
524 descriptor->Initialize( 520 descriptor->Initialize(
525 MajorKey(), call_descriptor, 521 MajorKey(), call_descriptor,
526 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry); 522 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry);
527 } 523 }
528 524
529 525
530 void HandlerStub::InitializeInterfaceDescriptor( 526 void HandlerStub::InitializeInterfaceDescriptor(
531 CodeStubInterfaceDescriptor* descriptor) { 527 CodeStubInterfaceDescriptor* descriptor) {
532 if (kind() == Code::LOAD_IC) { 528 if (kind() == Code::LOAD_IC) {
533 CallInterfaceDescriptor* call_descriptor = 529 LoadDescriptor call_descriptor(isolate());
534 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
535 descriptor->Initialize(MajorKey(), call_descriptor); 530 descriptor->Initialize(MajorKey(), call_descriptor);
536 } else { 531 } else {
537 DCHECK_EQ(Code::STORE_IC, kind()); 532 DCHECK_EQ(Code::STORE_IC, kind());
538 CallInterfaceDescriptor* call_descriptor = 533 StoreDescriptor call_descriptor(isolate());
539 isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
540 descriptor->Initialize(MajorKey(), call_descriptor, 534 descriptor->Initialize(MajorKey(), call_descriptor,
541 FUNCTION_ADDR(StoreIC_MissFromStubFailure)); 535 FUNCTION_ADDR(StoreIC_MissFromStubFailure));
542 } 536 }
543 } 537 }
544 538
545 539
546 void StoreFastElementStub::InitializeInterfaceDescriptor( 540 void StoreFastElementStub::InitializeInterfaceDescriptor(
547 CodeStubInterfaceDescriptor* descriptor) { 541 CodeStubInterfaceDescriptor* descriptor) {
548 CallInterfaceDescriptor* call_descriptor = 542 StoreDescriptor call_descriptor(isolate());
549 isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
550 descriptor->Initialize(MajorKey(), call_descriptor, 543 descriptor->Initialize(MajorKey(), call_descriptor,
551 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); 544 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
552 } 545 }
553 546
554 547
555 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( 548 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
556 CodeStubInterfaceDescriptor* descriptor) { 549 CodeStubInterfaceDescriptor* descriptor) {
557 CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor( 550 ElementTransitionAndStoreDescriptor call_descriptor(isolate());
558 CallDescriptorKey::ElementTransitionAndStoreCall);
559 descriptor->Initialize(MajorKey(), call_descriptor, 551 descriptor->Initialize(MajorKey(), call_descriptor,
560 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); 552 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
561 } 553 }
562 554
563 555
564 void InstanceofStub::InitializeInterfaceDescriptor( 556 void InstanceofStub::InitializeInterfaceDescriptor(
565 CodeStubInterfaceDescriptor* descriptor) { 557 CodeStubInterfaceDescriptor* descriptor) {
566 CallInterfaceDescriptor* call_descriptor = 558 InstanceofDescriptor call_descriptor(isolate());
567 isolate()->call_descriptor(CallDescriptorKey::InstanceofCall);
568 descriptor->Initialize(MajorKey(), call_descriptor); 559 descriptor->Initialize(MajorKey(), call_descriptor);
569 } 560 }
570 561
571 562
572 static void InitializeVectorLoadStub(Isolate* isolate, 563 static void InitializeVectorLoadStub(Isolate* isolate,
573 CodeStubInterfaceDescriptor* descriptor, 564 CodeStubInterfaceDescriptor* descriptor,
574 CodeStub::Major major, 565 CodeStub::Major major,
575 Address deoptimization_handler) { 566 Address deoptimization_handler) {
576 DCHECK(FLAG_vector_ics); 567 DCHECK(FLAG_vector_ics);
577 CallInterfaceDescriptor* call_descriptor = 568 VectorLoadICDescriptor call_descriptor(isolate);
578 isolate->call_descriptor(CallDescriptorKey::VectorLoadICCall);
579 descriptor->Initialize(major, call_descriptor, deoptimization_handler); 569 descriptor->Initialize(major, call_descriptor, deoptimization_handler);
580 } 570 }
581 571
582 572
583 void VectorLoadStub::InitializeInterfaceDescriptor( 573 void VectorLoadStub::InitializeInterfaceDescriptor(
584 CodeStubInterfaceDescriptor* descriptor) { 574 CodeStubInterfaceDescriptor* descriptor) {
585 InitializeVectorLoadStub(isolate(), descriptor, MajorKey(), 575 InitializeVectorLoadStub(isolate(), descriptor, MajorKey(),
586 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure)); 576 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure));
587 } 577 }
588 578
589 579
590 void VectorKeyedLoadStub::InitializeInterfaceDescriptor( 580 void VectorKeyedLoadStub::InitializeInterfaceDescriptor(
591 CodeStubInterfaceDescriptor* descriptor) { 581 CodeStubInterfaceDescriptor* descriptor) {
592 InitializeVectorLoadStub( 582 InitializeVectorLoadStub(
593 isolate(), descriptor, MajorKey(), 583 isolate(), descriptor, MajorKey(),
594 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure)); 584 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure));
595 } 585 }
596 586
597 587
598 void FastNewClosureStub::InitializeInterfaceDescriptor( 588 void FastNewClosureStub::InitializeInterfaceDescriptor(
599 CodeStubInterfaceDescriptor* descriptor) { 589 CodeStubInterfaceDescriptor* descriptor) {
600 CallInterfaceDescriptor* call_descriptor = 590 FastNewClosureDescriptor call_descriptor(isolate());
601 isolate()->call_descriptor(CallDescriptorKey::FastNewClosureCall);
602 descriptor->Initialize( 591 descriptor->Initialize(
603 MajorKey(), call_descriptor, 592 MajorKey(), call_descriptor,
604 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); 593 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
605 } 594 }
606 595
607 596
608 void FastNewContextStub::InitializeInterfaceDescriptor( 597 void FastNewContextStub::InitializeInterfaceDescriptor(
609 CodeStubInterfaceDescriptor* descriptor) { 598 CodeStubInterfaceDescriptor* descriptor) {
610 CallInterfaceDescriptor* call_descriptor = 599 FastNewContextDescriptor call_descriptor(isolate());
611 isolate()->call_descriptor(CallDescriptorKey::FastNewContextCall);
612 descriptor->Initialize(MajorKey(), call_descriptor); 600 descriptor->Initialize(MajorKey(), call_descriptor);
613 } 601 }
614 602
615 603
616 void ToNumberStub::InitializeInterfaceDescriptor( 604 void ToNumberStub::InitializeInterfaceDescriptor(
617 CodeStubInterfaceDescriptor* descriptor) { 605 CodeStubInterfaceDescriptor* descriptor) {
618 CallInterfaceDescriptor* call_descriptor = 606 ToNumberDescriptor call_descriptor(isolate());
619 isolate()->call_descriptor(CallDescriptorKey::ToNumberCall);
620 descriptor->Initialize(MajorKey(), call_descriptor); 607 descriptor->Initialize(MajorKey(), call_descriptor);
621 } 608 }
622 609
623 610
624 void NumberToStringStub::InitializeInterfaceDescriptor( 611 void NumberToStringStub::InitializeInterfaceDescriptor(
625 CodeStubInterfaceDescriptor* descriptor) { 612 CodeStubInterfaceDescriptor* descriptor) {
626 CallInterfaceDescriptor* call_descriptor = 613 NumberToStringDescriptor call_descriptor(isolate());
627 isolate()->call_descriptor(CallDescriptorKey::NumberToStringCall);
628 descriptor->Initialize( 614 descriptor->Initialize(
629 MajorKey(), call_descriptor, 615 MajorKey(), call_descriptor,
630 Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry); 616 Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
631 } 617 }
632 618
633 619
634 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor( 620 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
635 CodeStubInterfaceDescriptor* descriptor) { 621 CodeStubInterfaceDescriptor* descriptor) {
636 CallInterfaceDescriptor* call_descriptor = 622 FastCloneShallowArrayDescriptor call_descriptor(isolate());
637 isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowArrayCall);
638 descriptor->Initialize( 623 descriptor->Initialize(
639 MajorKey(), call_descriptor, 624 MajorKey(), call_descriptor,
640 Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry); 625 Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry);
641 } 626 }
642 627
643 628
644 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor( 629 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
645 CodeStubInterfaceDescriptor* descriptor) { 630 CodeStubInterfaceDescriptor* descriptor) {
646 CallInterfaceDescriptor* call_descriptor = 631 FastCloneShallowObjectDescriptor call_descriptor(isolate());
647 isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowObjectCall);
648 descriptor->Initialize( 632 descriptor->Initialize(
649 MajorKey(), call_descriptor, 633 MajorKey(), call_descriptor,
650 Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry); 634 Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
651 } 635 }
652 636
653 637
654 void CreateAllocationSiteStub::InitializeInterfaceDescriptor( 638 void CreateAllocationSiteStub::InitializeInterfaceDescriptor(
655 CodeStubInterfaceDescriptor* descriptor) { 639 CodeStubInterfaceDescriptor* descriptor) {
656 CallInterfaceDescriptor* call_descriptor = 640 CreateAllocationSiteDescriptor call_descriptor(isolate());
657 isolate()->call_descriptor(CallDescriptorKey::CreateAllocationSiteCall);
658 descriptor->Initialize(MajorKey(), call_descriptor); 641 descriptor->Initialize(MajorKey(), call_descriptor);
659 } 642 }
660 643
661 644
662 void CallFunctionStub::InitializeInterfaceDescriptor( 645 void CallFunctionStub::InitializeInterfaceDescriptor(
663 CodeStubInterfaceDescriptor* descriptor) { 646 CodeStubInterfaceDescriptor* descriptor) {
664 CallInterfaceDescriptor* call_descriptor = 647 CallFunctionDescriptor call_descriptor(isolate());
665 isolate()->call_descriptor(CallDescriptorKey::CallFunctionCall);
666 descriptor->Initialize(MajorKey(), call_descriptor); 648 descriptor->Initialize(MajorKey(), call_descriptor);
667 } 649 }
668 650
669 651
670 void CallConstructStub::InitializeInterfaceDescriptor( 652 void CallConstructStub::InitializeInterfaceDescriptor(
671 CodeStubInterfaceDescriptor* descriptor) { 653 CodeStubInterfaceDescriptor* descriptor) {
672 CallInterfaceDescriptor* call_descriptor = 654 CallConstructDescriptor call_descriptor(isolate());
673 isolate()->call_descriptor(CallDescriptorKey::CallConstructCall);
674 descriptor->Initialize(MajorKey(), call_descriptor); 655 descriptor->Initialize(MajorKey(), call_descriptor);
675 } 656 }
676 657
677 658
678 void RegExpConstructResultStub::InitializeInterfaceDescriptor( 659 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
679 CodeStubInterfaceDescriptor* descriptor) { 660 CodeStubInterfaceDescriptor* descriptor) {
680 CallInterfaceDescriptor* call_descriptor = 661 RegExpConstructResultDescriptor call_descriptor(isolate());
681 isolate()->call_descriptor(CallDescriptorKey::RegExpConstructResultCall);
682 descriptor->Initialize( 662 descriptor->Initialize(
683 MajorKey(), call_descriptor, 663 MajorKey(), call_descriptor,
684 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); 664 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
685 } 665 }
686 666
687 667
688 void TransitionElementsKindStub::InitializeInterfaceDescriptor( 668 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
689 CodeStubInterfaceDescriptor* descriptor) { 669 CodeStubInterfaceDescriptor* descriptor) {
690 CallInterfaceDescriptor* call_descriptor = 670 TransitionElementsKindDescriptor call_descriptor(isolate());
691 isolate()->call_descriptor(CallDescriptorKey::TransitionElementsKindCall);
692 descriptor->Initialize( 671 descriptor->Initialize(
693 MajorKey(), call_descriptor, 672 MajorKey(), call_descriptor,
694 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry); 673 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry);
695 } 674 }
696 675
697 676
698 void CompareNilICStub::InitializeInterfaceDescriptor( 677 void CompareNilICStub::InitializeInterfaceDescriptor(
699 CodeStubInterfaceDescriptor* descriptor) { 678 CodeStubInterfaceDescriptor* descriptor) {
700 CallInterfaceDescriptor* call_descriptor = 679 CompareNilDescriptor call_descriptor(isolate());
701 isolate()->call_descriptor(CallDescriptorKey::CompareNilCall);
702 descriptor->Initialize(MajorKey(), call_descriptor, 680 descriptor->Initialize(MajorKey(), call_descriptor,
703 FUNCTION_ADDR(CompareNilIC_Miss)); 681 FUNCTION_ADDR(CompareNilIC_Miss));
704 descriptor->SetMissHandler( 682 descriptor->SetMissHandler(
705 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate())); 683 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate()));
706 } 684 }
707 685
708 void ToBooleanStub::InitializeInterfaceDescriptor( 686 void ToBooleanStub::InitializeInterfaceDescriptor(
709 CodeStubInterfaceDescriptor* descriptor) { 687 CodeStubInterfaceDescriptor* descriptor) {
710 CallInterfaceDescriptor* call_descriptor = 688 ToBooleanDescriptor call_descriptor(isolate());
711 isolate()->call_descriptor(CallDescriptorKey::ToBooleanCall);
712 descriptor->Initialize(MajorKey(), call_descriptor, 689 descriptor->Initialize(MajorKey(), call_descriptor,
713 FUNCTION_ADDR(ToBooleanIC_Miss)); 690 FUNCTION_ADDR(ToBooleanIC_Miss));
714 descriptor->SetMissHandler( 691 descriptor->SetMissHandler(
715 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); 692 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate()));
716 } 693 }
717 694
718 695
719 void BinaryOpICStub::InitializeInterfaceDescriptor( 696 void BinaryOpICStub::InitializeInterfaceDescriptor(
720 CodeStubInterfaceDescriptor* descriptor) { 697 CodeStubInterfaceDescriptor* descriptor) {
721 CallInterfaceDescriptor* call_descriptor = 698 BinaryOpDescriptor call_descriptor(isolate());
722 isolate()->call_descriptor(CallDescriptorKey::BinaryOpCall);
723 descriptor->Initialize(MajorKey(), call_descriptor, 699 descriptor->Initialize(MajorKey(), call_descriptor,
724 FUNCTION_ADDR(BinaryOpIC_Miss)); 700 FUNCTION_ADDR(BinaryOpIC_Miss));
725 descriptor->SetMissHandler( 701 descriptor->SetMissHandler(
726 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate())); 702 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate()));
727 } 703 }
728 704
729 705
730 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor( 706 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
731 CodeStubInterfaceDescriptor* descriptor) { 707 CodeStubInterfaceDescriptor* descriptor) {
732 CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor( 708 BinaryOpWithAllocationSiteDescriptor call_descriptor(isolate());
733 CallDescriptorKey::BinaryOpWithAllocationSiteCall);
734 descriptor->Initialize(MajorKey(), call_descriptor, 709 descriptor->Initialize(MajorKey(), call_descriptor,
735 FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite)); 710 FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
736 } 711 }
737 712
738 713
739 void StringAddStub::InitializeInterfaceDescriptor( 714 void StringAddStub::InitializeInterfaceDescriptor(
740 CodeStubInterfaceDescriptor* descriptor) { 715 CodeStubInterfaceDescriptor* descriptor) {
741 CallInterfaceDescriptor* call_descriptor = 716 StringAddDescriptor call_descriptor(isolate());
742 isolate()->call_descriptor(CallDescriptorKey::StringAddCall);
743 descriptor->Initialize(MajorKey(), call_descriptor, 717 descriptor->Initialize(MajorKey(), call_descriptor,
744 Runtime::FunctionForId(Runtime::kStringAdd)->entry); 718 Runtime::FunctionForId(Runtime::kStringAdd)->entry);
745 } 719 }
746 720
747 721
748 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) { 722 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) {
749 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm); 723 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm);
750 } 724 }
751 725
752 726
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 InstallDescriptor(isolate, &stub3); 1061 InstallDescriptor(isolate, &stub3);
1088 } 1062 }
1089 1063
1090 InternalArrayConstructorStub::InternalArrayConstructorStub( 1064 InternalArrayConstructorStub::InternalArrayConstructorStub(
1091 Isolate* isolate) : PlatformCodeStub(isolate) { 1065 Isolate* isolate) : PlatformCodeStub(isolate) {
1092 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 1066 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
1093 } 1067 }
1094 1068
1095 1069
1096 } } // namespace v8::internal 1070 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698