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_code_offset() { |
| 142 return OFFSET_OF(Isolate, ic_miss_code_); |
| 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 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 | 605 |
602 RawGrowableObjectArray* tag_table() const { return tag_table_; } | 606 RawGrowableObjectArray* tag_table() const { return tag_table_; } |
603 void set_tag_table(const GrowableObjectArray& value); | 607 void set_tag_table(const GrowableObjectArray& value); |
604 | 608 |
605 RawUserTag* current_tag() const { return current_tag_; } | 609 RawUserTag* current_tag() const { return current_tag_; } |
606 void set_current_tag(const UserTag& tag); | 610 void set_current_tag(const UserTag& tag); |
607 | 611 |
608 RawUserTag* default_tag() const { return default_tag_; } | 612 RawUserTag* default_tag() const { return default_tag_; } |
609 void set_default_tag(const UserTag& tag); | 613 void set_default_tag(const UserTag& tag); |
610 | 614 |
| 615 void set_ic_miss_code(const Code& code); |
| 616 |
611 Metric* metrics_list_head() { | 617 Metric* metrics_list_head() { |
612 return metrics_list_head_; | 618 return metrics_list_head_; |
613 } | 619 } |
614 | 620 |
615 void set_metrics_list_head(Metric* metric) { | 621 void set_metrics_list_head(Metric* metric) { |
616 metrics_list_head_ = metric; | 622 metrics_list_head_ = metric; |
617 } | 623 } |
618 | 624 |
619 RawGrowableObjectArray* deoptimized_code_array() const { | 625 RawGrowableObjectArray* deoptimized_code_array() const { |
620 return deoptimized_code_array_; | 626 return deoptimized_code_array_; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
731 return mutator_thread_->zone(); | 737 return mutator_thread_->zone(); |
732 } | 738 } |
733 | 739 |
734 // Accessed from generated code: | 740 // Accessed from generated code: |
735 uword stack_limit_; | 741 uword stack_limit_; |
736 StoreBuffer* store_buffer_; | 742 StoreBuffer* store_buffer_; |
737 Heap* heap_; | 743 Heap* heap_; |
738 uword user_tag_; | 744 uword user_tag_; |
739 RawUserTag* current_tag_; | 745 RawUserTag* current_tag_; |
740 RawUserTag* default_tag_; | 746 RawUserTag* default_tag_; |
| 747 RawCode* ic_miss_code_; |
741 ClassTable class_table_; | 748 ClassTable class_table_; |
742 bool single_step_; | 749 bool single_step_; |
743 | 750 |
744 ThreadRegistry* thread_registry_; | 751 ThreadRegistry* thread_registry_; |
745 Dart_MessageNotifyCallback message_notify_callback_; | 752 Dart_MessageNotifyCallback message_notify_callback_; |
746 char* name_; | 753 char* name_; |
747 char* debugger_name_; | 754 char* debugger_name_; |
748 int64_t start_time_; | 755 int64_t start_time_; |
749 Dart_Port main_port_; | 756 Dart_Port main_port_; |
750 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id. | 757 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id. |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
991 uint8_t* serialized_message_; | 998 uint8_t* serialized_message_; |
992 intptr_t serialized_message_len_; | 999 intptr_t serialized_message_len_; |
993 Isolate::Flags isolate_flags_; | 1000 Isolate::Flags isolate_flags_; |
994 bool paused_; | 1001 bool paused_; |
995 bool errors_are_fatal_; | 1002 bool errors_are_fatal_; |
996 }; | 1003 }; |
997 | 1004 |
998 } // namespace dart | 1005 } // namespace dart |
999 | 1006 |
1000 #endif // VM_ISOLATE_H_ | 1007 #endif // VM_ISOLATE_H_ |
OLD | NEW |