// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #include "platform/globals.h" #if defined(TARGET_OS_WINDOWS) #include "vm/atomic.h" namespace dart { uintptr_t AtomicOperations::FetchAndIncrement(uintptr_t* p) { #if defined(TARGET_ARCH_X64) return static_cast( InterlockedIncrement64(reinterpret_cast(p))) - 1; #elif defined(TARGET_ARCH_IA32) return static_cast( InterlockedIncrement(reinterpret_cast(p))) - 1; #else UNIMPLEMENTED(); #endif } } // namespace dart #endif // defined(TARGET_OS_WINDOWS)