OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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_THREAD_H_ | 5 #ifndef VM_THREAD_H_ |
6 #define VM_THREAD_H_ | 6 #define VM_THREAD_H_ |
7 | 7 |
8 #include "vm/globals.h" | 8 #include "vm/globals.h" |
9 #include "vm/os_thread.h" | 9 #include "vm/os_thread.h" |
10 #include "vm/store_buffer.h" | 10 #include "vm/store_buffer.h" |
11 #include "vm/runtime_entry_list.h" | 11 #include "vm/runtime_entry_list.h" |
12 | 12 |
13 namespace dart { | 13 namespace dart { |
14 | 14 |
15 class CHA; | 15 class CHA; |
16 class HandleScope; | 16 class HandleScope; |
17 class Heap; | 17 class Heap; |
18 class Isolate; | 18 class Isolate; |
19 class LongJumpScope; | 19 class LongJumpScope; |
20 class Object; | 20 class Object; |
21 class RawBool; | 21 class RawBool; |
22 class RawObject; | 22 class RawObject; |
| 23 class RawCode; |
23 class RawString; | 24 class RawString; |
24 class RuntimeEntry; | 25 class RuntimeEntry; |
25 class StackResource; | 26 class StackResource; |
26 class TimelineEventBlock; | 27 class TimelineEventBlock; |
27 class Zone; | 28 class Zone; |
28 | 29 |
29 // List of VM-global objects/addresses cached in each Thread object. | 30 // List of VM-global objects/addresses cached in each Thread object. |
30 #define CACHED_VM_OBJECTS_LIST(V) \ | 31 #define CACHED_VM_OBJECTS_LIST(V) \ |
31 V(RawObject*, object_null_, Object::null(), NULL) \ | 32 V(RawObject*, object_null_, Object::null(), NULL) \ |
32 V(RawBool*, bool_true_, Object::bool_true().raw(), NULL) \ | 33 V(RawBool*, bool_true_, Object::bool_true().raw(), NULL) \ |
33 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ | 34 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ |
| 35 V(RawCode*, update_store_buffer_code_, \ |
| 36 StubCode::UpdateStoreBuffer_entry()->code(), NULL) \ |
| 37 V(RawCode*, fix_callers_target_code_, \ |
| 38 StubCode::FixCallersTarget_entry()->code(), NULL) \ |
| 39 V(RawCode*, fix_allocation_stub_code_, \ |
| 40 StubCode::FixAllocationStubTarget_entry()->code(), NULL) \ |
| 41 |
34 | 42 |
35 #define CACHED_ADDRESSES_LIST(V) \ | 43 #define CACHED_ADDRESSES_LIST(V) \ |
36 V(uword, update_store_buffer_entry_point_, \ | 44 V(uword, update_store_buffer_entry_point_, \ |
37 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ | 45 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ |
38 V(RawString**, predefined_symbols_address_, \ | 46 V(RawString**, predefined_symbols_address_, \ |
39 Symbols::PredefinedAddress(), NULL) \ | 47 Symbols::PredefinedAddress(), NULL) \ |
40 | 48 |
41 #define CACHED_CONSTANTS_LIST(V) \ | 49 #define CACHED_CONSTANTS_LIST(V) \ |
42 CACHED_VM_OBJECTS_LIST(V) \ | 50 CACHED_VM_OBJECTS_LIST(V) \ |
43 CACHED_ADDRESSES_LIST(V) \ | 51 CACHED_ADDRESSES_LIST(V) \ |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 friend class ApiZone; | 331 friend class ApiZone; |
324 friend class Isolate; | 332 friend class Isolate; |
325 friend class StackZone; | 333 friend class StackZone; |
326 friend class ThreadRegistry; | 334 friend class ThreadRegistry; |
327 DISALLOW_COPY_AND_ASSIGN(Thread); | 335 DISALLOW_COPY_AND_ASSIGN(Thread); |
328 }; | 336 }; |
329 | 337 |
330 } // namespace dart | 338 } // namespace dart |
331 | 339 |
332 #endif // VM_THREAD_H_ | 340 #endif // VM_THREAD_H_ |
OLD | NEW |