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

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

Issue 552803002: Get CallInterfaceDescriptor directly from CodeStub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: 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(CodeStub* stub) 19 CodeStubDescriptor::CodeStubDescriptor(CodeStub* stub)
20 : stack_parameter_count_(no_reg), 20 : call_descriptor_(stub->GetCallInterfaceDescriptor()),
21 stack_parameter_count_(no_reg),
21 hint_stack_parameter_count_(-1), 22 hint_stack_parameter_count_(-1),
22 function_mode_(NOT_JS_FUNCTION_STUB_MODE), 23 function_mode_(NOT_JS_FUNCTION_STUB_MODE),
23 deoptimization_handler_(NULL), 24 deoptimization_handler_(NULL),
24 handler_arguments_mode_(DONT_PASS_ARGUMENTS), 25 handler_arguments_mode_(DONT_PASS_ARGUMENTS),
25 miss_handler_(), 26 miss_handler_(),
26 has_miss_handler_(false) { 27 has_miss_handler_(false) {
27 stub->InitializeInterfaceDescriptor(this); 28 stub->InitializeDescriptor(this);
28 } 29 }
29 30
30 31
31 CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor(Isolate* isolate, 32 CodeStubDescriptor::CodeStubDescriptor(Isolate* isolate, uint32_t stub_key)
32 uint32_t stub_key)
33 : stack_parameter_count_(no_reg), 33 : stack_parameter_count_(no_reg),
34 hint_stack_parameter_count_(-1), 34 hint_stack_parameter_count_(-1),
35 function_mode_(NOT_JS_FUNCTION_STUB_MODE), 35 function_mode_(NOT_JS_FUNCTION_STUB_MODE),
36 deoptimization_handler_(NULL), 36 deoptimization_handler_(NULL),
37 handler_arguments_mode_(DONT_PASS_ARGUMENTS), 37 handler_arguments_mode_(DONT_PASS_ARGUMENTS),
38 miss_handler_(), 38 miss_handler_(),
39 has_miss_handler_(false) { 39 has_miss_handler_(false) {
40 CodeStub::InitializeInterfaceDescriptor(isolate, stub_key, this); 40 CodeStub::InitializeDescriptor(isolate, stub_key, this);
41 } 41 }
42 42
43 43
44 void CodeStubInterfaceDescriptor::Initialize( 44 void CodeStubDescriptor::Initialize(Address deoptimization_handler,
45 CodeStub::Major major, CallInterfaceDescriptor call_descriptor, 45 int hint_stack_parameter_count,
46 Address deoptimization_handler, int hint_stack_parameter_count, 46 StubFunctionMode function_mode) {
47 StubFunctionMode function_mode) {
48 call_descriptor_ = call_descriptor;
49 deoptimization_handler_ = deoptimization_handler; 47 deoptimization_handler_ = deoptimization_handler;
50 hint_stack_parameter_count_ = hint_stack_parameter_count; 48 hint_stack_parameter_count_ = hint_stack_parameter_count;
51 function_mode_ = function_mode; 49 function_mode_ = function_mode;
52 major_ = major;
53 } 50 }
54 51
55 52
56 void CodeStubInterfaceDescriptor::Initialize( 53 void CodeStubDescriptor::Initialize(Register stack_parameter_count,
57 CodeStub::Major major, CallInterfaceDescriptor call_descriptor, 54 Address deoptimization_handler,
58 Register stack_parameter_count, Address deoptimization_handler, 55 int hint_stack_parameter_count,
59 int hint_stack_parameter_count, StubFunctionMode function_mode, 56 StubFunctionMode function_mode,
60 HandlerArgumentsMode handler_mode) { 57 HandlerArgumentsMode handler_mode) {
61 Initialize(major, call_descriptor, deoptimization_handler, 58 Initialize(deoptimization_handler, hint_stack_parameter_count, function_mode);
62 hint_stack_parameter_count, function_mode);
63 stack_parameter_count_ = stack_parameter_count; 59 stack_parameter_count_ = stack_parameter_count;
64 handler_arguments_mode_ = handler_mode; 60 handler_arguments_mode_ = handler_mode;
65 } 61 }
66 62
67 63
68 bool CodeStub::FindCodeInCache(Code** code_out) { 64 bool CodeStub::FindCodeInCache(Code** code_out) {
69 UnseededNumberDictionary* stubs = isolate()->heap()->code_stubs(); 65 UnseededNumberDictionary* stubs = isolate()->heap()->code_stubs();
70 int index = stubs->FindEntry(GetKey()); 66 int index = stubs->FindEntry(GetKey());
71 if (index != UnseededNumberDictionary::kNotFound) { 67 if (index != UnseededNumberDictionary::kNotFound) {
72 *code_out = Code::cast(stubs->ValueAt(index)); 68 *code_out = Code::cast(stubs->ValueAt(index));
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 #undef DEF_CASE 223 #undef DEF_CASE
228 case NUMBER_OF_IDS: 224 case NUMBER_OF_IDS:
229 UNREACHABLE(); 225 UNREACHABLE();
230 case NoCache: 226 case NoCache:
231 *value_out = NULL; 227 *value_out = NULL;
232 break; 228 break;
233 } 229 }
234 } 230 }
235 231
236 232
237 static void GetInterfaceDescriptorDispatchedCall(CodeStub* stub, 233 static void InitializeDescriptorDispatchedCall(CodeStub* stub,
238 void** value_out) { 234 void** value_out) {
239 CodeStubInterfaceDescriptor* descriptor_out = 235 CodeStubDescriptor* descriptor_out =
240 reinterpret_cast<CodeStubInterfaceDescriptor*>(value_out); 236 reinterpret_cast<CodeStubDescriptor*>(value_out);
241 stub->InitializeInterfaceDescriptor(descriptor_out); 237 stub->InitializeDescriptor(descriptor_out);
238 descriptor_out->set_call_descriptor(stub->GetCallInterfaceDescriptor());
242 } 239 }
243 240
244 241
245 void CodeStub::InitializeInterfaceDescriptor( 242 void CodeStub::InitializeDescriptor(Isolate* isolate, uint32_t key,
246 Isolate* isolate, uint32_t key, CodeStubInterfaceDescriptor* desc) { 243 CodeStubDescriptor* desc) {
247 void** value_out = reinterpret_cast<void**>(desc); 244 void** value_out = reinterpret_cast<void**>(desc);
248 Dispatch(isolate, key, value_out, &GetInterfaceDescriptorDispatchedCall); 245 Dispatch(isolate, key, value_out, &InitializeDescriptorDispatchedCall);
249 } 246 }
250 247
251 248
252 // static 249 // static
253 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate) { 250 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate) {
254 // Generate the uninitialized versions of the stub. 251 // Generate the uninitialized versions of the stub.
255 for (int op = Token::BIT_OR; op <= Token::MOD; ++op) { 252 for (int op = Token::BIT_OR; op <= Token::MOD; ++op) {
256 for (int mode = NO_OVERWRITE; mode <= OVERWRITE_RIGHT; ++mode) { 253 for (int mode = NO_OVERWRITE; mode <= OVERWRITE_RIGHT; ++mode) {
257 BinaryOpICStub stub(isolate, 254 BinaryOpICStub stub(isolate,
258 static_cast<Token::Value>(op), 255 static_cast<Token::Value>(op),
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 537
541 538
542 void JSEntryStub::FinishCode(Handle<Code> code) { 539 void JSEntryStub::FinishCode(Handle<Code> code) {
543 Handle<FixedArray> handler_table = 540 Handle<FixedArray> handler_table =
544 code->GetIsolate()->factory()->NewFixedArray(1, TENURED); 541 code->GetIsolate()->factory()->NewFixedArray(1, TENURED);
545 handler_table->set(0, Smi::FromInt(handler_offset_)); 542 handler_table->set(0, Smi::FromInt(handler_offset_));
546 code->set_handler_table(*handler_table); 543 code->set_handler_table(*handler_table);
547 } 544 }
548 545
549 546
550 void LoadFastElementStub::InitializeInterfaceDescriptor( 547 void LoadFastElementStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
551 CodeStubInterfaceDescriptor* descriptor) { 548 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
552 LoadDescriptor call_descriptor(isolate());
553 descriptor->Initialize(MajorKey(), call_descriptor,
554 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
555 } 549 }
556 550
557 551
558 void LoadDictionaryElementStub::InitializeInterfaceDescriptor( 552 void LoadDictionaryElementStub::InitializeDescriptor(
559 CodeStubInterfaceDescriptor* descriptor) { 553 CodeStubDescriptor* descriptor) {
560 LoadDescriptor call_descriptor(isolate()); 554 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
561 descriptor->Initialize(MajorKey(), call_descriptor,
562 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
563 } 555 }
564 556
565 557
566 void KeyedLoadGenericStub::InitializeInterfaceDescriptor( 558 void KeyedLoadGenericStub::InitializeDescriptor(
567 CodeStubInterfaceDescriptor* descriptor) { 559 CodeStubDescriptor* descriptor) {
568 LoadDescriptor call_descriptor(isolate());
569 descriptor->Initialize( 560 descriptor->Initialize(
570 MajorKey(), call_descriptor,
571 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry); 561 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry);
572 } 562 }
573 563
574 564
575 void HandlerStub::InitializeInterfaceDescriptor( 565 void HandlerStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
576 CodeStubInterfaceDescriptor* descriptor) { 566 if (kind() == Code::STORE_IC) {
577 if (kind() == Code::LOAD_IC) { 567 descriptor->Initialize(FUNCTION_ADDR(StoreIC_MissFromStubFailure));
578 LoadDescriptor call_descriptor(isolate());
579 descriptor->Initialize(MajorKey(), call_descriptor);
580 } else {
581 DCHECK_EQ(Code::STORE_IC, kind());
582 StoreDescriptor call_descriptor(isolate());
583 descriptor->Initialize(MajorKey(), call_descriptor,
584 FUNCTION_ADDR(StoreIC_MissFromStubFailure));
585 } 568 }
586 } 569 }
587 570
588 571
589 void StoreFastElementStub::InitializeInterfaceDescriptor( 572 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() {
590 CodeStubInterfaceDescriptor* descriptor) { 573 if (kind() == Code::LOAD_IC) {
591 StoreDescriptor call_descriptor(isolate()); 574 return LoadDescriptor(isolate());
592 descriptor->Initialize(MajorKey(), call_descriptor, 575 } else {
593 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); 576 DCHECK_EQ(Code::STORE_IC, kind());
577 return StoreDescriptor(isolate());
578 }
594 } 579 }
595 580
596 581
597 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( 582 void StoreFastElementStub::InitializeDescriptor(
598 CodeStubInterfaceDescriptor* descriptor) { 583 CodeStubDescriptor* descriptor) {
599 ElementTransitionAndStoreDescriptor call_descriptor(isolate()); 584 descriptor->Initialize(FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
600 descriptor->Initialize(MajorKey(), call_descriptor,
601 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
602 } 585 }
603 586
604 587
605 void InstanceofStub::InitializeInterfaceDescriptor( 588 void ElementsTransitionAndStoreStub::InitializeDescriptor(
606 CodeStubInterfaceDescriptor* descriptor) { 589 CodeStubDescriptor* descriptor) {
607 InstanceofDescriptor call_descriptor(isolate()); 590 descriptor->Initialize(FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
608 descriptor->Initialize(MajorKey(), call_descriptor);
609 } 591 }
610 592
611 593
612 static void InitializeVectorLoadStub(Isolate* isolate, 594 static void InitializeVectorLoadStub(Isolate* isolate,
613 CodeStubInterfaceDescriptor* descriptor, 595 CodeStubDescriptor* descriptor,
614 CodeStub::Major major,
615 Address deoptimization_handler) { 596 Address deoptimization_handler) {
616 DCHECK(FLAG_vector_ics); 597 DCHECK(FLAG_vector_ics);
617 VectorLoadICDescriptor call_descriptor(isolate); 598 descriptor->Initialize(deoptimization_handler);
618 descriptor->Initialize(major, call_descriptor, deoptimization_handler);
619 } 599 }
620 600
621 601
622 void VectorLoadStub::InitializeInterfaceDescriptor( 602 void VectorLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
623 CodeStubInterfaceDescriptor* descriptor) { 603 InitializeVectorLoadStub(isolate(), descriptor,
624 InitializeVectorLoadStub(isolate(), descriptor, MajorKey(),
625 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure)); 604 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure));
626 } 605 }
627 606
628 607
629 void VectorKeyedLoadStub::InitializeInterfaceDescriptor( 608 void VectorKeyedLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
630 CodeStubInterfaceDescriptor* descriptor) {
631 InitializeVectorLoadStub( 609 InitializeVectorLoadStub(
632 isolate(), descriptor, MajorKey(), 610 isolate(), descriptor,
633 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure)); 611 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure));
634 } 612 }
635 613
636 614
637 void MegamorphicLoadStub::InitializeInterfaceDescriptor( 615 void MegamorphicLoadStub::InitializeDescriptor(CodeStubDescriptor* d) {}
638 CodeStubInterfaceDescriptor* descriptor) {
639 LoadDescriptor call_descriptor(isolate());
640 descriptor->Initialize(MajorKey(), call_descriptor);
641 }
642 616
643 617
644 void FastNewClosureStub::InitializeInterfaceDescriptor( 618 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
645 CodeStubInterfaceDescriptor* descriptor) {
646 FastNewClosureDescriptor call_descriptor(isolate());
647 descriptor->Initialize( 619 descriptor->Initialize(
648 MajorKey(), call_descriptor,
649 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); 620 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
650 } 621 }
651 622
652 623
653 void FastNewContextStub::InitializeInterfaceDescriptor( 624 void FastNewContextStub::InitializeDescriptor(CodeStubDescriptor* d) {}
654 CodeStubInterfaceDescriptor* descriptor) {
655 FastNewContextDescriptor call_descriptor(isolate());
656 descriptor->Initialize(MajorKey(), call_descriptor);
657 }
658 625
659 626
660 void ToNumberStub::InitializeInterfaceDescriptor( 627 void ToNumberStub::InitializeDescriptor(CodeStubDescriptor* d) {}
661 CodeStubInterfaceDescriptor* descriptor) {
662 ToNumberDescriptor call_descriptor(isolate());
663 descriptor->Initialize(MajorKey(), call_descriptor);
664 }
665 628
666 629
667 void NumberToStringStub::InitializeInterfaceDescriptor( 630 void NumberToStringStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
668 CodeStubInterfaceDescriptor* descriptor) {
669 NumberToStringDescriptor call_descriptor(isolate()); 631 NumberToStringDescriptor call_descriptor(isolate());
670 descriptor->Initialize( 632 descriptor->Initialize(
671 MajorKey(), call_descriptor,
672 Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry); 633 Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
673 } 634 }
674 635
675 636
676 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor( 637 void FastCloneShallowArrayStub::InitializeDescriptor(
677 CodeStubInterfaceDescriptor* descriptor) { 638 CodeStubDescriptor* descriptor) {
678 FastCloneShallowArrayDescriptor call_descriptor(isolate()); 639 FastCloneShallowArrayDescriptor call_descriptor(isolate());
679 descriptor->Initialize( 640 descriptor->Initialize(
680 MajorKey(), call_descriptor,
681 Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry); 641 Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry);
682 } 642 }
683 643
684 644
685 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor( 645 void FastCloneShallowObjectStub::InitializeDescriptor(
686 CodeStubInterfaceDescriptor* descriptor) { 646 CodeStubDescriptor* descriptor) {
687 FastCloneShallowObjectDescriptor call_descriptor(isolate()); 647 FastCloneShallowObjectDescriptor call_descriptor(isolate());
688 descriptor->Initialize( 648 descriptor->Initialize(
689 MajorKey(), call_descriptor,
690 Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry); 649 Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
691 } 650 }
692 651
693 652
694 void CreateAllocationSiteStub::InitializeInterfaceDescriptor( 653 void CreateAllocationSiteStub::InitializeDescriptor(CodeStubDescriptor* d) {}
695 CodeStubInterfaceDescriptor* descriptor) {
696 CreateAllocationSiteDescriptor call_descriptor(isolate());
697 descriptor->Initialize(MajorKey(), call_descriptor);
698 }
699 654
700 655
701 void CallFunctionStub::InitializeInterfaceDescriptor( 656 void RegExpConstructResultStub::InitializeDescriptor(
702 CodeStubInterfaceDescriptor* descriptor) { 657 CodeStubDescriptor* descriptor) {
703 CallFunctionDescriptor call_descriptor(isolate());
704 descriptor->Initialize(MajorKey(), call_descriptor);
705 }
706
707
708 void CallConstructStub::InitializeInterfaceDescriptor(
709 CodeStubInterfaceDescriptor* descriptor) {
710 CallConstructDescriptor call_descriptor(isolate());
711 descriptor->Initialize(MajorKey(), call_descriptor);
712 }
713
714
715 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
716 CodeStubInterfaceDescriptor* descriptor) {
717 RegExpConstructResultDescriptor call_descriptor(isolate());
718 descriptor->Initialize( 658 descriptor->Initialize(
719 MajorKey(), call_descriptor,
720 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); 659 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
721 } 660 }
722 661
723 662
724 void TransitionElementsKindStub::InitializeInterfaceDescriptor( 663 void TransitionElementsKindStub::InitializeDescriptor(
725 CodeStubInterfaceDescriptor* descriptor) { 664 CodeStubDescriptor* descriptor) {
726 TransitionElementsKindDescriptor call_descriptor(isolate());
727 descriptor->Initialize( 665 descriptor->Initialize(
728 MajorKey(), call_descriptor,
729 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry); 666 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry);
730 } 667 }
731 668
732 669
733 void CompareNilICStub::InitializeInterfaceDescriptor( 670 void CompareNilICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
734 CodeStubInterfaceDescriptor* descriptor) { 671 descriptor->Initialize(FUNCTION_ADDR(CompareNilIC_Miss));
735 CompareNilDescriptor call_descriptor(isolate());
736 descriptor->Initialize(MajorKey(), call_descriptor,
737 FUNCTION_ADDR(CompareNilIC_Miss));
738 descriptor->SetMissHandler( 672 descriptor->SetMissHandler(
739 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate())); 673 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate()));
740 } 674 }
741 675
742 void ToBooleanStub::InitializeInterfaceDescriptor( 676
743 CodeStubInterfaceDescriptor* descriptor) { 677 void ToBooleanStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
744 ToBooleanDescriptor call_descriptor(isolate()); 678 descriptor->Initialize(FUNCTION_ADDR(ToBooleanIC_Miss));
745 descriptor->Initialize(MajorKey(), call_descriptor,
746 FUNCTION_ADDR(ToBooleanIC_Miss));
747 descriptor->SetMissHandler( 679 descriptor->SetMissHandler(
748 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); 680 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate()));
749 } 681 }
750 682
751 683
752 void BinaryOpICStub::InitializeInterfaceDescriptor( 684 void BinaryOpICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
753 CodeStubInterfaceDescriptor* descriptor) { 685 descriptor->Initialize(FUNCTION_ADDR(BinaryOpIC_Miss));
754 BinaryOpDescriptor call_descriptor(isolate());
755 descriptor->Initialize(MajorKey(), call_descriptor,
756 FUNCTION_ADDR(BinaryOpIC_Miss));
757 descriptor->SetMissHandler( 686 descriptor->SetMissHandler(
758 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate())); 687 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate()));
759 } 688 }
760 689
761 690
762 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor( 691 void BinaryOpWithAllocationSiteStub::InitializeDescriptor(
763 CodeStubInterfaceDescriptor* descriptor) { 692 CodeStubDescriptor* descriptor) {
764 BinaryOpWithAllocationSiteDescriptor call_descriptor(isolate()); 693 descriptor->Initialize(FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
765 descriptor->Initialize(MajorKey(), call_descriptor,
766 FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
767 } 694 }
768 695
769 696
770 void StringAddStub::InitializeInterfaceDescriptor( 697 void StringAddStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
771 CodeStubInterfaceDescriptor* descriptor) { 698 descriptor->Initialize(Runtime::FunctionForId(Runtime::kStringAdd)->entry);
772 StringAddDescriptor call_descriptor(isolate());
773 descriptor->Initialize(MajorKey(), call_descriptor,
774 Runtime::FunctionForId(Runtime::kStringAdd)->entry);
775 } 699 }
776 700
777 701
778 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { 702 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
779 CreateAllocationSiteStub stub(isolate); 703 CreateAllocationSiteStub stub(isolate);
780 stub.GetCode(); 704 stub.GetCode();
781 } 705 }
782 706
783 707
784 void StoreElementStub::Generate(MacroAssembler* masm) { 708 void StoreElementStub::Generate(MacroAssembler* masm) {
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 } 931 }
1008 932
1009 933
1010 InternalArrayConstructorStub::InternalArrayConstructorStub( 934 InternalArrayConstructorStub::InternalArrayConstructorStub(
1011 Isolate* isolate) : PlatformCodeStub(isolate) { 935 Isolate* isolate) : PlatformCodeStub(isolate) {
1012 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 936 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
1013 } 937 }
1014 938
1015 939
1016 } } // namespace v8::internal 940 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698