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 "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/atomic.h" | 10 #include "vm/atomic.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 V(GrowableObjectArray) \ | 62 V(GrowableObjectArray) \ |
63 V(Instance) \ | 63 V(Instance) \ |
64 V(Library) \ | 64 V(Library) \ |
65 V(Object) \ | 65 V(Object) \ |
66 V(PcDescriptors) \ | 66 V(PcDescriptors) \ |
67 V(String) \ | 67 V(String) \ |
68 V(TypeArguments) \ | 68 V(TypeArguments) \ |
69 V(TypeParameter) \ | 69 V(TypeParameter) \ |
70 | 70 |
71 | 71 |
72 // List of VM-global objects/addresses cached in each Thread object. | 72 #if defined(TARGET_ARCH_DBC) |
73 #define CACHED_VM_OBJECTS_LIST(V) \ | 73 #define CACHED_VM_STUBS_LIST(V) |
74 V(RawObject*, object_null_, Object::null(), NULL) \ | 74 #else |
75 V(RawBool*, bool_true_, Object::bool_true().raw(), NULL) \ | 75 #define CACHED_VM_STUBS_LIST(V) \ |
76 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ | |
77 V(RawCode*, update_store_buffer_code_, \ | 76 V(RawCode*, update_store_buffer_code_, \ |
78 StubCode::UpdateStoreBuffer_entry()->code(), NULL) \ | 77 StubCode::UpdateStoreBuffer_entry()->code(), NULL) \ |
79 V(RawCode*, fix_callers_target_code_, \ | 78 V(RawCode*, fix_callers_target_code_, \ |
80 StubCode::FixCallersTarget_entry()->code(), NULL) \ | 79 StubCode::FixCallersTarget_entry()->code(), NULL) \ |
81 V(RawCode*, fix_allocation_stub_code_, \ | 80 V(RawCode*, fix_allocation_stub_code_, \ |
82 StubCode::FixAllocationStubTarget_entry()->code(), NULL) \ | 81 StubCode::FixAllocationStubTarget_entry()->code(), NULL) \ |
83 V(RawCode*, invoke_dart_code_stub_, \ | 82 V(RawCode*, invoke_dart_code_stub_, \ |
84 StubCode::InvokeDartCode_entry()->code(), NULL) \ | 83 StubCode::InvokeDartCode_entry()->code(), NULL) \ |
85 | 84 |
86 #define CACHED_ADDRESSES_LIST(V) \ | 85 #endif |
| 86 |
| 87 // List of VM-global objects/addresses cached in each Thread object. |
| 88 #define CACHED_VM_OBJECTS_LIST(V) \ |
| 89 V(RawObject*, object_null_, Object::null(), NULL) \ |
| 90 V(RawBool*, bool_true_, Object::bool_true().raw(), NULL) \ |
| 91 V(RawBool*, bool_false_, Object::bool_false().raw(), NULL) \ |
| 92 CACHED_VM_STUBS_LIST(V) \ |
| 93 |
| 94 #if defined(TARGET_ARCH_DBC) |
| 95 #define CACHED_VM_STUBS_ADDRESSES_LIST(V) |
| 96 #else |
| 97 #define CACHED_VM_STUBS_ADDRESSES_LIST(V) \ |
87 V(uword, update_store_buffer_entry_point_, \ | 98 V(uword, update_store_buffer_entry_point_, \ |
88 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ | 99 StubCode::UpdateStoreBuffer_entry()->EntryPoint(), 0) \ |
| 100 |
| 101 #endif |
| 102 |
| 103 #define CACHED_ADDRESSES_LIST(V) \ |
| 104 CACHED_VM_STUBS_ADDRESSES_LIST(V) \ |
89 V(uword, native_call_wrapper_entry_point_, \ | 105 V(uword, native_call_wrapper_entry_point_, \ |
90 NativeEntry::NativeCallWrapperEntry(), 0) \ | 106 NativeEntry::NativeCallWrapperEntry(), 0) \ |
91 V(RawString**, predefined_symbols_address_, \ | 107 V(RawString**, predefined_symbols_address_, \ |
92 Symbols::PredefinedAddress(), NULL) \ | 108 Symbols::PredefinedAddress(), NULL) \ |
93 V(uword, double_negate_address_, \ | 109 V(uword, double_negate_address_, \ |
94 reinterpret_cast<uword>(&double_negate_constant), 0) \ | 110 reinterpret_cast<uword>(&double_negate_constant), 0) \ |
95 V(uword, double_abs_address_, \ | 111 V(uword, double_abs_address_, \ |
96 reinterpret_cast<uword>(&double_abs_constant), 0) \ | 112 reinterpret_cast<uword>(&double_abs_constant), 0) \ |
97 V(uword, float_not_address_, \ | 113 V(uword, float_not_address_, \ |
98 reinterpret_cast<uword>(&float_not_constant), 0) \ | 114 reinterpret_cast<uword>(&float_not_constant), 0) \ |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
642 // Disable thread interrupts. | 658 // Disable thread interrupts. |
643 class DisableThreadInterruptsScope : public StackResource { | 659 class DisableThreadInterruptsScope : public StackResource { |
644 public: | 660 public: |
645 explicit DisableThreadInterruptsScope(Thread* thread); | 661 explicit DisableThreadInterruptsScope(Thread* thread); |
646 ~DisableThreadInterruptsScope(); | 662 ~DisableThreadInterruptsScope(); |
647 }; | 663 }; |
648 | 664 |
649 } // namespace dart | 665 } // namespace dart |
650 | 666 |
651 #endif // VM_THREAD_H_ | 667 #endif // VM_THREAD_H_ |
OLD | NEW |