OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 #ifndef RUNTIME_VM_ATOMIC_SIMULATOR_H_ | |
6 #define RUNTIME_VM_ATOMIC_SIMULATOR_H_ | |
7 | |
8 #if !defined RUNTIME_VM_ATOMIC_H_ | |
9 #error Do not include atomic_simulator.h directly. Use atomic.h instead. | |
10 #endif | |
11 | |
12 namespace dart { | |
13 | |
14 #if defined(USING_SIMULATOR_ATOMICS) | |
15 // Forward atomic operations to the simulator if the simulator is active. | |
16 inline uword AtomicOperations::CompareAndSwapWord(uword* ptr, | |
17 uword old_value, | |
18 uword new_value) { | |
19 return Simulator::CompareExchange(ptr, old_value, new_value); | |
20 } | |
21 | |
22 inline uint32_t AtomicOperations::CompareAndSwapUint32(uint32_t* ptr, | |
23 uint32_t old_value, | |
24 uint32_t new_value) { | |
25 return Simulator::CompareExchangeUint32(ptr, old_value, new_value); | |
26 } | |
27 #endif // defined(USING_SIMULATOR_ATOMICS) | |
28 | |
29 } // namespace dart | |
30 | |
31 #endif // RUNTIME_VM_ATOMIC_SIMULATOR_H_ | |
OLD | NEW |