OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_ISOLATE_H_ | 5 #ifndef VM_ISOLATE_H_ |
6 #define VM_ISOLATE_H_ | 6 #define VM_ISOLATE_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/atomic.h" | 10 #include "vm/atomic.h" |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 StoreBuffer* store_buffer() { return store_buffer_; } | 132 StoreBuffer* store_buffer() { return store_buffer_; } |
133 | 133 |
134 ThreadRegistry* thread_registry() { return thread_registry_; } | 134 ThreadRegistry* thread_registry() { return thread_registry_; } |
135 | 135 |
136 ClassTable* class_table() { return &class_table_; } | 136 ClassTable* class_table() { return &class_table_; } |
137 static intptr_t class_table_offset() { | 137 static intptr_t class_table_offset() { |
138 return OFFSET_OF(Isolate, class_table_); | 138 return OFFSET_OF(Isolate, class_table_); |
139 } | 139 } |
140 | 140 |
| 141 static intptr_t ic_miss_function_offset() { |
| 142 return OFFSET_OF(Isolate, ic_miss_function_); |
| 143 } |
| 144 |
141 Dart_MessageNotifyCallback message_notify_callback() const { | 145 Dart_MessageNotifyCallback message_notify_callback() const { |
142 return message_notify_callback_; | 146 return message_notify_callback_; |
143 } | 147 } |
144 void set_message_notify_callback(Dart_MessageNotifyCallback value) { | 148 void set_message_notify_callback(Dart_MessageNotifyCallback value) { |
145 message_notify_callback_ = value; | 149 message_notify_callback_ = value; |
146 } | 150 } |
147 | 151 |
148 // Limited public access to BaseIsolate::mutator_thread_ for code that | 152 // Limited public access to BaseIsolate::mutator_thread_ for code that |
149 // must treat the mutator as the default or a special case. Prefer code | 153 // must treat the mutator as the default or a special case. Prefer code |
150 // that works uniformly across all threads. | 154 // that works uniformly across all threads. |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 | 591 |
588 RawGrowableObjectArray* tag_table() const { return tag_table_; } | 592 RawGrowableObjectArray* tag_table() const { return tag_table_; } |
589 void set_tag_table(const GrowableObjectArray& value); | 593 void set_tag_table(const GrowableObjectArray& value); |
590 | 594 |
591 RawUserTag* current_tag() const { return current_tag_; } | 595 RawUserTag* current_tag() const { return current_tag_; } |
592 void set_current_tag(const UserTag& tag); | 596 void set_current_tag(const UserTag& tag); |
593 | 597 |
594 RawUserTag* default_tag() const { return default_tag_; } | 598 RawUserTag* default_tag() const { return default_tag_; } |
595 void set_default_tag(const UserTag& tag); | 599 void set_default_tag(const UserTag& tag); |
596 | 600 |
| 601 void set_ic_miss_function(const Function& func); |
| 602 |
597 Metric* metrics_list_head() { | 603 Metric* metrics_list_head() { |
598 return metrics_list_head_; | 604 return metrics_list_head_; |
599 } | 605 } |
600 | 606 |
601 void set_metrics_list_head(Metric* metric) { | 607 void set_metrics_list_head(Metric* metric) { |
602 metrics_list_head_ = metric; | 608 metrics_list_head_ = metric; |
603 } | 609 } |
604 | 610 |
605 RawGrowableObjectArray* deoptimized_code_array() const { | 611 RawGrowableObjectArray* deoptimized_code_array() const { |
606 return deoptimized_code_array_; | 612 return deoptimized_code_array_; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 return mutator_thread_->zone(); | 723 return mutator_thread_->zone(); |
718 } | 724 } |
719 | 725 |
720 // Accessed from generated code: | 726 // Accessed from generated code: |
721 uword stack_limit_; | 727 uword stack_limit_; |
722 StoreBuffer* store_buffer_; | 728 StoreBuffer* store_buffer_; |
723 Heap* heap_; | 729 Heap* heap_; |
724 uword user_tag_; | 730 uword user_tag_; |
725 RawUserTag* current_tag_; | 731 RawUserTag* current_tag_; |
726 RawUserTag* default_tag_; | 732 RawUserTag* default_tag_; |
| 733 RawFunction* ic_miss_function_; |
727 ClassTable class_table_; | 734 ClassTable class_table_; |
728 bool single_step_; | 735 bool single_step_; |
729 | 736 |
730 ThreadRegistry* thread_registry_; | 737 ThreadRegistry* thread_registry_; |
731 Dart_MessageNotifyCallback message_notify_callback_; | 738 Dart_MessageNotifyCallback message_notify_callback_; |
732 char* name_; | 739 char* name_; |
733 char* debugger_name_; | 740 char* debugger_name_; |
734 int64_t start_time_; | 741 int64_t start_time_; |
735 Dart_Port main_port_; | 742 Dart_Port main_port_; |
736 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id. | 743 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id. |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
971 uint8_t* serialized_message_; | 978 uint8_t* serialized_message_; |
972 intptr_t serialized_message_len_; | 979 intptr_t serialized_message_len_; |
973 Isolate::Flags isolate_flags_; | 980 Isolate::Flags isolate_flags_; |
974 bool paused_; | 981 bool paused_; |
975 bool errors_are_fatal_; | 982 bool errors_are_fatal_; |
976 }; | 983 }; |
977 | 984 |
978 } // namespace dart | 985 } // namespace dart |
979 | 986 |
980 #endif // VM_ISOLATE_H_ | 987 #endif // VM_ISOLATE_H_ |
OLD | NEW |