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

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

Issue 523583002: Multiple stubs can point to the same calling convention. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ports. 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
« no previous file with comments | « src/code-stubs.h ('k') | src/compiler/js-generic-lowering.cc » ('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/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 : stack_parameter_count_(no_reg), 20 : call_descriptor_(NULL),
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 28
28 29
29 void CodeStubInterfaceDescriptor::Initialize( 30 void CodeStubInterfaceDescriptor::Initialize(
30 CodeStub::Major major, int register_parameter_count, Register* registers, 31 CodeStub::Major major, CallInterfaceDescriptor* call_descriptor,
31 Address deoptimization_handler, 32 Address deoptimization_handler, int hint_stack_parameter_count,
32 Representation* register_param_representations, 33 StubFunctionMode function_mode) {
33 int hint_stack_parameter_count, StubFunctionMode function_mode) { 34 call_descriptor_ = call_descriptor;
34 InterfaceDescriptor::Initialize(register_parameter_count, registers,
35 register_param_representations);
36
37 deoptimization_handler_ = deoptimization_handler; 35 deoptimization_handler_ = deoptimization_handler;
38
39 hint_stack_parameter_count_ = hint_stack_parameter_count; 36 hint_stack_parameter_count_ = hint_stack_parameter_count;
40 function_mode_ = function_mode; 37 function_mode_ = function_mode;
41 major_ = major; 38 major_ = major;
42 } 39 }
43 40
44 41
45 void CodeStubInterfaceDescriptor::Initialize( 42 void CodeStubInterfaceDescriptor::Initialize(
46 CodeStub::Major major, int register_parameter_count, Register* registers, 43 CodeStub::Major major, CallInterfaceDescriptor* call_descriptor,
47 Register stack_parameter_count, Address deoptimization_handler, 44 Register stack_parameter_count, Address deoptimization_handler,
48 Representation* register_param_representations,
49 int hint_stack_parameter_count, StubFunctionMode function_mode, 45 int hint_stack_parameter_count, StubFunctionMode function_mode,
50 HandlerArgumentsMode handler_mode) { 46 HandlerArgumentsMode handler_mode) {
51 Initialize(major, register_parameter_count, registers, deoptimization_handler, 47 Initialize(major, call_descriptor, deoptimization_handler,
52 register_param_representations, hint_stack_parameter_count, 48 hint_stack_parameter_count, function_mode);
53 function_mode);
54 stack_parameter_count_ = stack_parameter_count; 49 stack_parameter_count_ = stack_parameter_count;
55 handler_arguments_mode_ = handler_mode; 50 handler_arguments_mode_ = handler_mode;
56 } 51 }
57 52
58 53
59 bool CodeStub::FindCodeInCache(Code** code_out) { 54 bool CodeStub::FindCodeInCache(Code** code_out) {
60 UnseededNumberDictionary* stubs = isolate()->heap()->code_stubs(); 55 UnseededNumberDictionary* stubs = isolate()->heap()->code_stubs();
61 int index = stubs->FindEntry(GetKey()); 56 int index = stubs->FindEntry(GetKey());
62 if (index != UnseededNumberDictionary::kNotFound) { 57 if (index != UnseededNumberDictionary::kNotFound) {
63 *code_out = Code::cast(stubs->ValueAt(index)); 58 *code_out = Code::cast(stubs->ValueAt(index));
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 void JSEntryStub::FinishCode(Handle<Code> code) { 523 void JSEntryStub::FinishCode(Handle<Code> code) {
529 Handle<FixedArray> handler_table = 524 Handle<FixedArray> handler_table =
530 code->GetIsolate()->factory()->NewFixedArray(1, TENURED); 525 code->GetIsolate()->factory()->NewFixedArray(1, TENURED);
531 handler_table->set(0, Smi::FromInt(handler_offset_)); 526 handler_table->set(0, Smi::FromInt(handler_offset_));
532 code->set_handler_table(*handler_table); 527 code->set_handler_table(*handler_table);
533 } 528 }
534 529
535 530
536 void LoadFastElementStub::InitializeInterfaceDescriptor( 531 void LoadFastElementStub::InitializeInterfaceDescriptor(
537 CodeStubInterfaceDescriptor* descriptor) { 532 CodeStubInterfaceDescriptor* descriptor) {
538 Register registers[] = {InterfaceDescriptor::ContextRegister(), 533 CallInterfaceDescriptor* call_descriptor =
539 LoadConvention::ReceiverRegister(), 534 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
540 LoadConvention::NameRegister()}; 535 descriptor->Initialize(MajorKey(), call_descriptor,
541 STATIC_ASSERT(LoadConvention::kParameterCount == 2);
542 descriptor->Initialize(MajorKey(), arraysize(registers), registers,
543 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); 536 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
544 } 537 }
545 538
546 539
547 void LoadDictionaryElementStub::InitializeInterfaceDescriptor( 540 void LoadDictionaryElementStub::InitializeInterfaceDescriptor(
548 CodeStubInterfaceDescriptor* descriptor) { 541 CodeStubInterfaceDescriptor* descriptor) {
549 Register registers[] = {InterfaceDescriptor::ContextRegister(), 542 CallInterfaceDescriptor* call_descriptor =
550 LoadConvention::ReceiverRegister(), 543 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
551 LoadConvention::NameRegister()}; 544 descriptor->Initialize(MajorKey(), call_descriptor,
552 STATIC_ASSERT(LoadConvention::kParameterCount == 2);
553 descriptor->Initialize(MajorKey(), arraysize(registers), registers,
554 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); 545 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
555 } 546 }
556 547
557 548
558 void KeyedLoadGenericStub::InitializeInterfaceDescriptor( 549 void KeyedLoadGenericStub::InitializeInterfaceDescriptor(
559 CodeStubInterfaceDescriptor* descriptor) { 550 CodeStubInterfaceDescriptor* descriptor) {
560 Register registers[] = {InterfaceDescriptor::ContextRegister(), 551 CallInterfaceDescriptor* call_descriptor =
561 LoadConvention::ReceiverRegister(), 552 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
562 LoadConvention::NameRegister()};
563 STATIC_ASSERT(LoadConvention::kParameterCount == 2);
564 descriptor->Initialize( 553 descriptor->Initialize(
565 MajorKey(), arraysize(registers), registers, 554 MajorKey(), call_descriptor,
566 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry); 555 Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry);
567 } 556 }
568 557
569 558
570 void HandlerStub::InitializeInterfaceDescriptor( 559 void HandlerStub::InitializeInterfaceDescriptor(
571 CodeStubInterfaceDescriptor* descriptor) { 560 CodeStubInterfaceDescriptor* descriptor) {
572 if (kind() == Code::LOAD_IC) { 561 if (kind() == Code::LOAD_IC) {
573 Register registers[] = {InterfaceDescriptor::ContextRegister(), 562 CallInterfaceDescriptor* call_descriptor =
574 LoadConvention::ReceiverRegister(), 563 isolate()->call_descriptor(CallDescriptorKey::LoadICCall);
575 LoadConvention::NameRegister()}; 564 descriptor->Initialize(MajorKey(), call_descriptor);
576 descriptor->Initialize(MajorKey(), arraysize(registers), registers);
577 } else { 565 } else {
578 DCHECK_EQ(Code::STORE_IC, kind()); 566 DCHECK_EQ(Code::STORE_IC, kind());
579 Register registers[] = {InterfaceDescriptor::ContextRegister(), 567 CallInterfaceDescriptor* call_descriptor =
580 StoreConvention::ReceiverRegister(), 568 isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
581 StoreConvention::NameRegister(), 569 descriptor->Initialize(MajorKey(), call_descriptor,
582 StoreConvention::ValueRegister()};
583 descriptor->Initialize(MajorKey(), arraysize(registers), registers,
584 FUNCTION_ADDR(StoreIC_MissFromStubFailure)); 570 FUNCTION_ADDR(StoreIC_MissFromStubFailure));
585 } 571 }
586 } 572 }
587 573
588 574
589 void StoreFastElementStub::InitializeInterfaceDescriptor( 575 void StoreFastElementStub::InitializeInterfaceDescriptor(
590 CodeStubInterfaceDescriptor* descriptor) { 576 CodeStubInterfaceDescriptor* descriptor) {
591 Register registers[] = {InterfaceDescriptor::ContextRegister(), 577 CallInterfaceDescriptor* call_descriptor =
592 StoreConvention::ReceiverRegister(), 578 isolate()->call_descriptor(CallDescriptorKey::StoreICCall);
593 StoreConvention::NameRegister(), 579 descriptor->Initialize(MajorKey(), call_descriptor,
594 StoreConvention::ValueRegister()};
595 descriptor->Initialize(MajorKey(), arraysize(registers), registers,
596 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); 580 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
597 } 581 }
598 582
599 583
600 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( 584 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
601 CodeStubInterfaceDescriptor* descriptor) { 585 CodeStubInterfaceDescriptor* descriptor) {
602 Register registers[] = { InterfaceDescriptor::ContextRegister(), 586 CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor(
603 ValueRegister(), 587 CallDescriptorKey::ElementTransitionAndStoreCall);
604 MapRegister(), 588 descriptor->Initialize(MajorKey(), call_descriptor,
605 KeyRegister(),
606 ObjectRegister() };
607 descriptor->Initialize(MajorKey(), arraysize(registers), registers,
608 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); 589 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
609 } 590 }
610 591
611 592
612 void InstanceofStub::InitializeInterfaceDescriptor( 593 void InstanceofStub::InitializeInterfaceDescriptor(
613 CodeStubInterfaceDescriptor* descriptor) { 594 CodeStubInterfaceDescriptor* descriptor) {
614 Register registers[] = { InterfaceDescriptor::ContextRegister(), 595 CallInterfaceDescriptor* call_descriptor =
615 InstanceofStub::left(), 596 isolate()->call_descriptor(CallDescriptorKey::InstanceofCall);
616 InstanceofStub::right() }; 597 descriptor->Initialize(MajorKey(), call_descriptor);
617 descriptor->Initialize(MajorKey(), arraysize(registers), registers);
618 } 598 }
619 599
620 600
621 static void InitializeVectorLoadStub(CodeStubInterfaceDescriptor* descriptor, 601 static void InitializeVectorLoadStub(Isolate* isolate,
602 CodeStubInterfaceDescriptor* descriptor,
622 CodeStub::Major major, 603 CodeStub::Major major,
623 Address deoptimization_handler) { 604 Address deoptimization_handler) {
624 DCHECK(FLAG_vector_ics); 605 DCHECK(FLAG_vector_ics);
625 Register registers[] = {InterfaceDescriptor::ContextRegister(), 606 CallInterfaceDescriptor* call_descriptor =
626 FullVectorLoadConvention::ReceiverRegister(), 607 isolate->call_descriptor(CallDescriptorKey::VectorLoadICCall);
627 FullVectorLoadConvention::NameRegister(), 608 descriptor->Initialize(major, call_descriptor, deoptimization_handler);
628 FullVectorLoadConvention::SlotRegister(),
629 FullVectorLoadConvention::VectorRegister()};
630 descriptor->Initialize(major, arraysize(registers), registers,
631 deoptimization_handler);
632 } 609 }
633 610
634 611
635 void VectorLoadStub::InitializeInterfaceDescriptor( 612 void VectorLoadStub::InitializeInterfaceDescriptor(
636 CodeStubInterfaceDescriptor* descriptor) { 613 CodeStubInterfaceDescriptor* descriptor) {
637 InitializeVectorLoadStub(descriptor, MajorKey(), 614 InitializeVectorLoadStub(isolate(), descriptor, MajorKey(),
638 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure)); 615 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure));
639 } 616 }
640 617
641 618
642 void VectorKeyedLoadStub::InitializeInterfaceDescriptor( 619 void VectorKeyedLoadStub::InitializeInterfaceDescriptor(
643 CodeStubInterfaceDescriptor* descriptor) { 620 CodeStubInterfaceDescriptor* descriptor) {
644 InitializeVectorLoadStub( 621 InitializeVectorLoadStub(
645 descriptor, MajorKey(), 622 isolate(), descriptor, MajorKey(),
646 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure)); 623 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure));
647 } 624 }
648 625
649 626
627 void FastNewClosureStub::InitializeInterfaceDescriptor(
628 CodeStubInterfaceDescriptor* descriptor) {
629 CallInterfaceDescriptor* call_descriptor =
630 isolate()->call_descriptor(CallDescriptorKey::FastNewClosureCall);
631 descriptor->Initialize(
632 MajorKey(), call_descriptor,
633 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
634 }
635
636
637 void FastNewContextStub::InitializeInterfaceDescriptor(
638 CodeStubInterfaceDescriptor* descriptor) {
639 CallInterfaceDescriptor* call_descriptor =
640 isolate()->call_descriptor(CallDescriptorKey::FastNewContextCall);
641 descriptor->Initialize(MajorKey(), call_descriptor);
642 }
643
644
645 void ToNumberStub::InitializeInterfaceDescriptor(
646 CodeStubInterfaceDescriptor* descriptor) {
647 CallInterfaceDescriptor* call_descriptor =
648 isolate()->call_descriptor(CallDescriptorKey::ToNumberCall);
649 descriptor->Initialize(MajorKey(), call_descriptor);
650 }
651
652
653 void NumberToStringStub::InitializeInterfaceDescriptor(
654 CodeStubInterfaceDescriptor* descriptor) {
655 CallInterfaceDescriptor* call_descriptor =
656 isolate()->call_descriptor(CallDescriptorKey::NumberToStringCall);
657 descriptor->Initialize(
658 MajorKey(), call_descriptor,
659 Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
660 }
661
662
663 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
664 CodeStubInterfaceDescriptor* descriptor) {
665 CallInterfaceDescriptor* call_descriptor =
666 isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowArrayCall);
667 descriptor->Initialize(
668 MajorKey(), call_descriptor,
669 Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry);
670 }
671
672
673 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
674 CodeStubInterfaceDescriptor* descriptor) {
675 CallInterfaceDescriptor* call_descriptor =
676 isolate()->call_descriptor(CallDescriptorKey::FastCloneShallowObjectCall);
677 descriptor->Initialize(
678 MajorKey(), call_descriptor,
679 Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
680 }
681
682
683 void CreateAllocationSiteStub::InitializeInterfaceDescriptor(
684 CodeStubInterfaceDescriptor* descriptor) {
685 CallInterfaceDescriptor* call_descriptor =
686 isolate()->call_descriptor(CallDescriptorKey::CreateAllocationSiteCall);
687 descriptor->Initialize(MajorKey(), call_descriptor);
688 }
689
690
691 void CallFunctionStub::InitializeInterfaceDescriptor(
692 CodeStubInterfaceDescriptor* descriptor) {
693 CallInterfaceDescriptor* call_descriptor =
694 isolate()->call_descriptor(CallDescriptorKey::CallFunctionCall);
695 descriptor->Initialize(MajorKey(), call_descriptor);
696 }
697
698
699 void CallConstructStub::InitializeInterfaceDescriptor(
700 CodeStubInterfaceDescriptor* descriptor) {
701 CallInterfaceDescriptor* call_descriptor =
702 isolate()->call_descriptor(CallDescriptorKey::CallConstructCall);
703 descriptor->Initialize(MajorKey(), call_descriptor);
704 }
705
706
707 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
708 CodeStubInterfaceDescriptor* descriptor) {
709 CallInterfaceDescriptor* call_descriptor =
710 isolate()->call_descriptor(CallDescriptorKey::RegExpConstructResultCall);
711 descriptor->Initialize(
712 MajorKey(), call_descriptor,
713 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
714 }
715
716
717 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
718 CodeStubInterfaceDescriptor* descriptor) {
719 CallInterfaceDescriptor* call_descriptor =
720 isolate()->call_descriptor(CallDescriptorKey::TransitionElementsKindCall);
721 descriptor->Initialize(
722 MajorKey(), call_descriptor,
723 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry);
724 }
725
726
727 void CompareNilICStub::InitializeInterfaceDescriptor(
728 CodeStubInterfaceDescriptor* descriptor) {
729 CallInterfaceDescriptor* call_descriptor =
730 isolate()->call_descriptor(CallDescriptorKey::CompareNilCall);
731 descriptor->Initialize(MajorKey(), call_descriptor,
732 FUNCTION_ADDR(CompareNilIC_Miss));
733 descriptor->SetMissHandler(
734 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate()));
735 }
736
737 void ToBooleanStub::InitializeInterfaceDescriptor(
738 CodeStubInterfaceDescriptor* descriptor) {
739 CallInterfaceDescriptor* call_descriptor =
740 isolate()->call_descriptor(CallDescriptorKey::ToBooleanCall);
741 descriptor->Initialize(MajorKey(), call_descriptor,
742 FUNCTION_ADDR(ToBooleanIC_Miss));
743 descriptor->SetMissHandler(
744 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate()));
745 }
746
747
748 void BinaryOpICStub::InitializeInterfaceDescriptor(
749 CodeStubInterfaceDescriptor* descriptor) {
750 CallInterfaceDescriptor* call_descriptor =
751 isolate()->call_descriptor(CallDescriptorKey::BinaryOpCall);
752 descriptor->Initialize(MajorKey(), call_descriptor,
753 FUNCTION_ADDR(BinaryOpIC_Miss));
754 descriptor->SetMissHandler(
755 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate()));
756 }
757
758
759 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
760 CodeStubInterfaceDescriptor* descriptor) {
761 CallInterfaceDescriptor* call_descriptor = isolate()->call_descriptor(
762 CallDescriptorKey::BinaryOpWithAllocationSiteCall);
763 descriptor->Initialize(MajorKey(), call_descriptor,
764 FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
765 }
766
767
768 void StringAddStub::InitializeInterfaceDescriptor(
769 CodeStubInterfaceDescriptor* descriptor) {
770 CallInterfaceDescriptor* call_descriptor =
771 isolate()->call_descriptor(CallDescriptorKey::StringAddCall);
772 descriptor->Initialize(MajorKey(), call_descriptor,
773 Runtime::FunctionForId(Runtime::kStringAdd)->entry);
774 }
775
776
650 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) { 777 void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) {
651 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm); 778 ElementHandlerCompiler::GenerateLoadDictionaryElement(masm);
652 } 779 }
653 780
654 781
655 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { 782 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
656 CreateAllocationSiteStub stub(isolate); 783 CreateAllocationSiteStub stub(isolate);
657 stub.GetCode(); 784 stub.GetCode();
658 } 785 }
659 786
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 InstallDescriptor(isolate, &stub3); 1116 InstallDescriptor(isolate, &stub3);
990 } 1117 }
991 1118
992 InternalArrayConstructorStub::InternalArrayConstructorStub( 1119 InternalArrayConstructorStub::InternalArrayConstructorStub(
993 Isolate* isolate) : PlatformCodeStub(isolate) { 1120 Isolate* isolate) : PlatformCodeStub(isolate) {
994 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 1121 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
995 } 1122 }
996 1123
997 1124
998 } } // namespace v8::internal 1125 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/compiler/js-generic-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698