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 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 if (kind() == Code::STORE_IC) { | 585 if (kind() == Code::STORE_IC) { |
586 descriptor->Initialize(FUNCTION_ADDR(StoreIC_MissFromStubFailure)); | 586 descriptor->Initialize(FUNCTION_ADDR(StoreIC_MissFromStubFailure)); |
587 } else if (kind() == Code::KEYED_LOAD_IC) { | 587 } else if (kind() == Code::KEYED_LOAD_IC) { |
588 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); | 588 descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); |
589 } | 589 } |
590 } | 590 } |
591 | 591 |
592 | 592 |
593 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() { | 593 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() { |
594 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { | 594 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { |
| 595 if (FLAG_vector_ics) { |
| 596 return VectorLoadICDescriptor(isolate()); |
| 597 } |
595 return LoadDescriptor(isolate()); | 598 return LoadDescriptor(isolate()); |
596 } else { | 599 } else { |
597 DCHECK_EQ(Code::STORE_IC, kind()); | 600 DCHECK_EQ(Code::STORE_IC, kind()); |
598 return StoreDescriptor(isolate()); | 601 return StoreDescriptor(isolate()); |
599 } | 602 } |
600 } | 603 } |
601 | 604 |
602 | 605 |
603 void StoreFastElementStub::InitializeDescriptor( | 606 void StoreFastElementStub::InitializeDescriptor( |
604 CodeStubDescriptor* descriptor) { | 607 CodeStubDescriptor* descriptor) { |
(...skipping 15 matching lines...) Expand all Loading... |
620 static void InitializeVectorLoadStub(Isolate* isolate, | 623 static void InitializeVectorLoadStub(Isolate* isolate, |
621 CodeStubDescriptor* descriptor, | 624 CodeStubDescriptor* descriptor, |
622 Address deoptimization_handler) { | 625 Address deoptimization_handler) { |
623 DCHECK(FLAG_vector_ics); | 626 DCHECK(FLAG_vector_ics); |
624 descriptor->Initialize(deoptimization_handler); | 627 descriptor->Initialize(deoptimization_handler); |
625 } | 628 } |
626 | 629 |
627 | 630 |
628 void VectorLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 631 void VectorLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
629 InitializeVectorLoadStub(isolate(), descriptor, | 632 InitializeVectorLoadStub(isolate(), descriptor, |
630 FUNCTION_ADDR(VectorLoadIC_MissFromStubFailure)); | 633 FUNCTION_ADDR(LoadIC_MissFromStubFailure)); |
631 } | 634 } |
632 | 635 |
633 | 636 |
634 void VectorKeyedLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 637 void VectorKeyedLoadStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
635 InitializeVectorLoadStub( | 638 InitializeVectorLoadStub(isolate(), descriptor, |
636 isolate(), descriptor, | 639 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure)); |
637 FUNCTION_ADDR(VectorKeyedLoadIC_MissFromStubFailure)); | |
638 } | 640 } |
639 | 641 |
640 | 642 |
641 void MegamorphicLoadStub::InitializeDescriptor(CodeStubDescriptor* d) {} | 643 void MegamorphicLoadStub::InitializeDescriptor(CodeStubDescriptor* d) {} |
642 | 644 |
643 | 645 |
644 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { | 646 void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) { |
645 descriptor->Initialize( | 647 descriptor->Initialize( |
646 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); | 648 Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry); |
647 } | 649 } |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
958 } | 960 } |
959 | 961 |
960 | 962 |
961 InternalArrayConstructorStub::InternalArrayConstructorStub( | 963 InternalArrayConstructorStub::InternalArrayConstructorStub( |
962 Isolate* isolate) : PlatformCodeStub(isolate) { | 964 Isolate* isolate) : PlatformCodeStub(isolate) { |
963 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); | 965 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
964 } | 966 } |
965 | 967 |
966 | 968 |
967 } } // namespace v8::internal | 969 } } // namespace v8::internal |
OLD | NEW |