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 "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
10 #include "vm/handles.h" | 10 #include "vm/handles.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ | 72 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ |
73 V(RawCode*, update_store_buffer_code_, \ | 73 V(RawCode*, update_store_buffer_code_, \ |
74 StubCode::UpdateStoreBuffer_entry()->code(), NULL) \ | 74 StubCode::UpdateStoreBuffer_entry()->code(), NULL) \ |
75 V(RawCode*, fix_callers_target_code_, \ | 75 V(RawCode*, fix_callers_target_code_, \ |
76 StubCode::FixCallersTarget_entry()->code(), NULL) \ | 76 StubCode::FixCallersTarget_entry()->code(), NULL) \ |
77 V(RawCode*, fix_allocation_stub_code_, \ | 77 V(RawCode*, fix_allocation_stub_code_, \ |
78 StubCode::FixAllocationStubTarget_entry()->code(), NULL) \ | 78 StubCode::FixAllocationStubTarget_entry()->code(), NULL) \ |
79 V(RawCode*, invoke_dart_code_stub_, \ | 79 V(RawCode*, invoke_dart_code_stub_, \ |
80 StubCode::InvokeDartCode_entry()->code(), NULL) \ | 80 StubCode::InvokeDartCode_entry()->code(), NULL) \ |
81 | 81 |
82 | |
83 #define CACHED_ADDRESSES_LIST(V) \ | 82 #define CACHED_ADDRESSES_LIST(V) \ |
84 V(uword, update_store_buffer_entry_point_, \ | 83 V(uword, update_store_buffer_entry_point_, \ |
85 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ | 84 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ |
86 V(uword, native_call_wrapper_entry_point_, \ | 85 V(uword, native_call_wrapper_entry_point_, \ |
87 NativeEntry::NativeCallWrapperEntry(), 0) \ | 86 NativeEntry::NativeCallWrapperEntry(), 0) \ |
88 V(RawString**, predefined_symbols_address_, \ | 87 V(RawString**, predefined_symbols_address_, \ |
89 Symbols::PredefinedAddress(), NULL) \ | 88 Symbols::PredefinedAddress(), NULL) \ |
| 89 V(uword, double_negate_address_, \ |
| 90 reinterpret_cast<uword>(&double_negate_constant), 0) \ |
| 91 V(uword, double_abs_address_, \ |
| 92 reinterpret_cast<uword>(&double_abs_constant), 0) \ |
| 93 V(uword, float_not_address_, \ |
| 94 reinterpret_cast<uword>(&float_not_constant), 0) \ |
| 95 V(uword, float_negate_address_, \ |
| 96 reinterpret_cast<uword>(&float_negate_constant), 0) \ |
| 97 V(uword, float_absolute_address_, \ |
| 98 reinterpret_cast<uword>(&float_absolute_constant), 0) \ |
| 99 V(uword, float_zerow_address_, \ |
| 100 reinterpret_cast<uword>(&float_zerow_constant), 0) \ |
90 | 101 |
91 #define CACHED_CONSTANTS_LIST(V) \ | 102 #define CACHED_CONSTANTS_LIST(V) \ |
92 CACHED_VM_OBJECTS_LIST(V) \ | 103 CACHED_VM_OBJECTS_LIST(V) \ |
93 CACHED_ADDRESSES_LIST(V) \ | 104 CACHED_ADDRESSES_LIST(V) \ |
94 | 105 |
95 | |
96 // A VM thread; may be executing Dart code or performing helper tasks like | 106 // A VM thread; may be executing Dart code or performing helper tasks like |
97 // garbage collection or compilation. The Thread structure associated with | 107 // garbage collection or compilation. The Thread structure associated with |
98 // a thread is allocated by EnsureInit before entering an isolate, and destroyed | 108 // a thread is allocated by EnsureInit before entering an isolate, and destroyed |
99 // automatically when the underlying OS thread exits. NOTE: On Windows, CleanUp | 109 // automatically when the underlying OS thread exits. NOTE: On Windows, CleanUp |
100 // must currently be called manually (issue 23474). | 110 // must currently be called manually (issue 23474). |
101 class Thread : public BaseThread { | 111 class Thread : public BaseThread { |
102 public: | 112 public: |
103 ~Thread(); | 113 ~Thread(); |
104 | 114 |
105 // The currently executing thread, or NULL if not yet initialized. | 115 // The currently executing thread, or NULL if not yet initialized. |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 // Disable thread interrupts. | 498 // Disable thread interrupts. |
489 class DisableThreadInterruptsScope : public StackResource { | 499 class DisableThreadInterruptsScope : public StackResource { |
490 public: | 500 public: |
491 explicit DisableThreadInterruptsScope(Thread* thread); | 501 explicit DisableThreadInterruptsScope(Thread* thread); |
492 ~DisableThreadInterruptsScope(); | 502 ~DisableThreadInterruptsScope(); |
493 }; | 503 }; |
494 | 504 |
495 } // namespace dart | 505 } // namespace dart |
496 | 506 |
497 #endif // VM_THREAD_H_ | 507 #endif // VM_THREAD_H_ |
OLD | NEW |