OLD | NEW |
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/code-stubs.h" | 5 #include "src/code-stubs.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/cpu-profiler.h" | 10 #include "src/cpu-profiler.h" |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 void JSEntryStub::FinishCode(Handle<Code> code) { | 618 void JSEntryStub::FinishCode(Handle<Code> code) { |
619 Handle<FixedArray> handler_table = | 619 Handle<FixedArray> handler_table = |
620 code->GetIsolate()->factory()->NewFixedArray(1, TENURED); | 620 code->GetIsolate()->factory()->NewFixedArray(1, TENURED); |
621 handler_table->set(0, Smi::FromInt(handler_offset_)); | 621 handler_table->set(0, Smi::FromInt(handler_offset_)); |
622 code->set_handler_table(*handler_table); | 622 code->set_handler_table(*handler_table); |
623 } | 623 } |
624 | 624 |
625 | 625 |
626 void LoadDictionaryElementStub::InitializeDescriptor( | 626 void LoadDictionaryElementStub::InitializeDescriptor( |
627 CodeStubDescriptor* descriptor) { | 627 CodeStubDescriptor* descriptor) { |
628 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); | 628 descriptor->Initialize( |
| 629 FUNCTION_ADDR(Runtime_KeyedLoadIC_MissFromStubFailure)); |
629 } | 630 } |
630 | 631 |
631 | 632 |
632 void KeyedLoadGenericStub::InitializeDescriptor( | 633 void KeyedLoadGenericStub::InitializeDescriptor( |
633 CodeStubDescriptor* descriptor) { | 634 CodeStubDescriptor* descriptor) { |
634 descriptor->Initialize( | 635 descriptor->Initialize( |
635 Runtime::FunctionForId(is_strong(language_mode()) | 636 Runtime::FunctionForId(is_strong(language_mode()) |
636 ? Runtime::kKeyedGetPropertyStrong | 637 ? Runtime::kKeyedGetPropertyStrong |
637 : Runtime::kKeyedGetProperty)->entry); | 638 : Runtime::kKeyedGetProperty)->entry); |
638 } | 639 } |
639 | 640 |
640 | 641 |
641 void HandlerStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 642 void HandlerStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
642 if (kind() == Code::STORE_IC) { | 643 if (kind() == Code::STORE_IC) { |
643 descriptor->Initialize(FUNCTION_ADDR(StoreIC_MissFromStubFailure)); | 644 descriptor->Initialize(FUNCTION_ADDR(Runtime_StoreIC_MissFromStubFailure)); |
644 } else if (kind() == Code::KEYED_LOAD_IC) { | 645 } else if (kind() == Code::KEYED_LOAD_IC) { |
645 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); | 646 descriptor->Initialize( |
| 647 FUNCTION_ADDR(Runtime_KeyedLoadIC_MissFromStubFailure)); |
646 } else if (kind() == Code::KEYED_STORE_IC) { | 648 } else if (kind() == Code::KEYED_STORE_IC) { |
647 descriptor->Initialize(FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); | 649 descriptor->Initialize( |
| 650 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
648 } | 651 } |
649 } | 652 } |
650 | 653 |
651 | 654 |
652 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { | 655 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { |
653 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { | 656 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { |
654 return LoadWithVectorDescriptor(isolate()); | 657 return LoadWithVectorDescriptor(isolate()); |
655 } else { | 658 } else { |
656 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); | 659 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); |
657 return StoreDescriptor(isolate()); | 660 return StoreDescriptor(isolate()); |
658 } | 661 } |
659 } | 662 } |
660 | 663 |
661 | 664 |
662 void StoreFastElementStub::InitializeDescriptor( | 665 void StoreFastElementStub::InitializeDescriptor( |
663 CodeStubDescriptor* descriptor) { | 666 CodeStubDescriptor* descriptor) { |
664 descriptor->Initialize(FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); | 667 descriptor->Initialize( |
| 668 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
665 } | 669 } |
666 | 670 |
667 | 671 |
668 void ElementsTransitionAndStoreStub::InitializeDescriptor( | 672 void ElementsTransitionAndStoreStub::InitializeDescriptor( |
669 CodeStubDescriptor* descriptor) { | 673 CodeStubDescriptor* descriptor) { |
670 descriptor->Initialize(FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); | 674 descriptor->Initialize( |
| 675 FUNCTION_ADDR(Runtime_ElementsTransitionAndStoreIC_Miss)); |
671 } | 676 } |
672 | 677 |
673 | 678 |
674 CallInterfaceDescriptor StoreTransitionStub::GetCallInterfaceDescriptor() | 679 CallInterfaceDescriptor StoreTransitionStub::GetCallInterfaceDescriptor() |
675 const { | 680 const { |
676 return StoreTransitionDescriptor(isolate()); | 681 return StoreTransitionDescriptor(isolate()); |
677 } | 682 } |
678 | 683 |
679 | 684 |
680 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 685 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 | 752 |
748 | 753 |
749 void AllocateHeapNumberStub::InitializeDescriptor( | 754 void AllocateHeapNumberStub::InitializeDescriptor( |
750 CodeStubDescriptor* descriptor) { | 755 CodeStubDescriptor* descriptor) { |
751 descriptor->Initialize( | 756 descriptor->Initialize( |
752 Runtime::FunctionForId(Runtime::kAllocateHeapNumber)->entry); | 757 Runtime::FunctionForId(Runtime::kAllocateHeapNumber)->entry); |
753 } | 758 } |
754 | 759 |
755 | 760 |
756 void CompareNilICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 761 void CompareNilICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
757 descriptor->Initialize(FUNCTION_ADDR(CompareNilIC_Miss)); | 762 descriptor->Initialize(FUNCTION_ADDR(Runtime_CompareNilIC_Miss)); |
758 descriptor->SetMissHandler( | 763 descriptor->SetMissHandler(ExternalReference( |
759 ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate())); | 764 Runtime::FunctionForId(Runtime::kCompareNilIC_Miss), isolate())); |
760 } | 765 } |
761 | 766 |
762 | 767 |
763 void ToBooleanStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 768 void ToBooleanStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
764 descriptor->Initialize(FUNCTION_ADDR(ToBooleanIC_Miss)); | 769 descriptor->Initialize(FUNCTION_ADDR(Runtime_ToBooleanIC_Miss)); |
765 descriptor->SetMissHandler( | 770 descriptor->SetMissHandler(ExternalReference( |
766 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); | 771 Runtime::FunctionForId(Runtime::kToBooleanIC_Miss), isolate())); |
767 } | 772 } |
768 | 773 |
769 | 774 |
770 void BinaryOpICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 775 void BinaryOpICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
771 descriptor->Initialize(FUNCTION_ADDR(BinaryOpIC_Miss)); | 776 descriptor->Initialize(FUNCTION_ADDR(Runtime_BinaryOpIC_Miss)); |
772 descriptor->SetMissHandler( | 777 descriptor->SetMissHandler(ExternalReference( |
773 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate())); | 778 Runtime::FunctionForId(Runtime::kBinaryOpIC_Miss), isolate())); |
774 } | 779 } |
775 | 780 |
776 | 781 |
777 void BinaryOpWithAllocationSiteStub::InitializeDescriptor( | 782 void BinaryOpWithAllocationSiteStub::InitializeDescriptor( |
778 CodeStubDescriptor* descriptor) { | 783 CodeStubDescriptor* descriptor) { |
779 descriptor->Initialize(FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite)); | 784 descriptor->Initialize( |
| 785 FUNCTION_ADDR(Runtime_BinaryOpIC_MissWithAllocationSite)); |
780 } | 786 } |
781 | 787 |
782 | 788 |
783 void StringAddStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 789 void StringAddStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
784 descriptor->Initialize(Runtime::FunctionForId(Runtime::kStringAddRT)->entry); | 790 descriptor->Initialize(Runtime::FunctionForId(Runtime::kStringAddRT)->entry); |
785 } | 791 } |
786 | 792 |
787 | 793 |
788 void GrowArrayElementsStub::InitializeDescriptor( | 794 void GrowArrayElementsStub::InitializeDescriptor( |
789 CodeStubDescriptor* descriptor) { | 795 CodeStubDescriptor* descriptor) { |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 | 1090 |
1085 if (type->Is(Type::UntaggedPointer())) { | 1091 if (type->Is(Type::UntaggedPointer())) { |
1086 return Representation::External(); | 1092 return Representation::External(); |
1087 } | 1093 } |
1088 | 1094 |
1089 DCHECK(!type->Is(Type::Untagged())); | 1095 DCHECK(!type->Is(Type::Untagged())); |
1090 return Representation::Tagged(); | 1096 return Representation::Tagged(); |
1091 } | 1097 } |
1092 } // namespace internal | 1098 } // namespace internal |
1093 } // namespace v8 | 1099 } // namespace v8 |
OLD | NEW |