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/profiler/profile-generator.h" | 5 #include "src/profiler/profile-generator.h" |
6 | 6 |
7 #include "src/base/adapters.h" | 7 #include "src/base/adapters.h" |
8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" |
9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" |
10 #include "src/global-handles.h" | 10 #include "src/global-handles.h" |
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 | 743 |
744 CodeEntry* ProfileGenerator::FindEntry(void* address) { | 744 CodeEntry* ProfileGenerator::FindEntry(void* address) { |
745 CodeEntry* entry = code_map_.FindEntry(reinterpret_cast<Address>(address)); | 745 CodeEntry* entry = code_map_.FindEntry(reinterpret_cast<Address>(address)); |
746 if (!entry) { | 746 if (!entry) { |
747 RuntimeCallStats* rcs = isolate_->counters()->runtime_call_stats(); | 747 RuntimeCallStats* rcs = isolate_->counters()->runtime_call_stats(); |
748 void* start = reinterpret_cast<void*>(rcs); | 748 void* start = reinterpret_cast<void*>(rcs); |
749 void* end = reinterpret_cast<void*>(rcs + 1); | 749 void* end = reinterpret_cast<void*>(rcs + 1); |
750 if (start <= address && address < end) { | 750 if (start <= address && address < end) { |
751 RuntimeCallCounter* counter = | 751 RuntimeCallCounter* counter = |
752 reinterpret_cast<RuntimeCallCounter*>(address); | 752 reinterpret_cast<RuntimeCallCounter*>(address); |
753 CHECK(counter->name); | 753 CHECK(counter->name()); |
754 entry = new CodeEntry(CodeEventListener::FUNCTION_TAG, counter->name, | 754 entry = new CodeEntry(CodeEventListener::FUNCTION_TAG, counter->name(), |
755 CodeEntry::kEmptyNamePrefix, "native V8Runtime"); | 755 CodeEntry::kEmptyNamePrefix, "native V8Runtime"); |
756 code_map_.AddCode(reinterpret_cast<Address>(address), entry, 1); | 756 code_map_.AddCode(reinterpret_cast<Address>(address), entry, 1); |
757 } | 757 } |
758 } | 758 } |
759 return entry; | 759 return entry; |
760 } | 760 } |
761 | 761 |
762 CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) { | 762 CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) { |
763 switch (tag) { | 763 switch (tag) { |
764 case GC: | 764 case GC: |
765 return CodeEntry::gc_entry(); | 765 return CodeEntry::gc_entry(); |
766 case JS: | 766 case JS: |
767 case COMPILER: | 767 case COMPILER: |
768 // DOM events handlers are reported as OTHER / EXTERNAL entries. | 768 // DOM events handlers are reported as OTHER / EXTERNAL entries. |
769 // To avoid confusing people, let's put all these entries into | 769 // To avoid confusing people, let's put all these entries into |
770 // one bucket. | 770 // one bucket. |
771 case OTHER: | 771 case OTHER: |
772 case EXTERNAL: | 772 case EXTERNAL: |
773 return CodeEntry::program_entry(); | 773 return CodeEntry::program_entry(); |
774 case IDLE: | 774 case IDLE: |
775 return CodeEntry::idle_entry(); | 775 return CodeEntry::idle_entry(); |
776 default: return NULL; | 776 default: return NULL; |
777 } | 777 } |
778 } | 778 } |
779 | 779 |
780 } // namespace internal | 780 } // namespace internal |
781 } // namespace v8 | 781 } // namespace v8 |
OLD | NEW |