| Index: src/base/atomicops.h
|
| diff --git a/src/base/atomicops.h b/src/base/atomicops.h
|
| index 973e96b9ea5aad16b79d06474a2551ee3f289418..927ebbee11d6cd5b05b812d8589e049fcab2209d 100644
|
| --- a/src/base/atomicops.h
|
| +++ b/src/base/atomicops.h
|
| @@ -26,9 +26,17 @@
|
| #define V8_BASE_ATOMICOPS_H_
|
|
|
| #include <stdint.h>
|
| +
|
| +// Small C++ header which defines implementation specific macros used to
|
| +// identify the STL implementation.
|
| +// - libc++: captures __config for _LIBCPP_VERSION
|
| +// - libstdc++: captures bits/c++config.h for __GLIBCXX__
|
| +#include <cstddef>
|
| +
|
| +#include "src/base/base-export.h"
|
| #include "src/base/build_config.h"
|
|
|
| -#if defined(_WIN32) && defined(V8_HOST_ARCH_64_BIT)
|
| +#if defined(V8_OS_WIN) && defined(V8_HOST_ARCH_64_BIT)
|
| // windows.h #defines this (only on x64). This causes problems because the
|
| // public API also uses MemoryBarrier at the public name for this fence. So, on
|
| // X64, undef it, and call its documented
|
| @@ -100,13 +108,11 @@ Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
|
| void MemoryBarrier();
|
| void NoBarrier_Store(volatile Atomic8* ptr, Atomic8 value);
|
| void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value);
|
| -void Acquire_Store(volatile Atomic32* ptr, Atomic32 value);
|
| void Release_Store(volatile Atomic32* ptr, Atomic32 value);
|
|
|
| Atomic8 NoBarrier_Load(volatile const Atomic8* ptr);
|
| Atomic32 NoBarrier_Load(volatile const Atomic32* ptr);
|
| Atomic32 Acquire_Load(volatile const Atomic32* ptr);
|
| -Atomic32 Release_Load(volatile const Atomic32* ptr);
|
|
|
| // 64-bit atomic operations (only available on 64-bit processors).
|
| #ifdef V8_HOST_ARCH_64_BIT
|
| @@ -124,44 +130,25 @@ Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
|
| Atomic64 old_value,
|
| Atomic64 new_value);
|
| void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value);
|
| -void Acquire_Store(volatile Atomic64* ptr, Atomic64 value);
|
| void Release_Store(volatile Atomic64* ptr, Atomic64 value);
|
| Atomic64 NoBarrier_Load(volatile const Atomic64* ptr);
|
| Atomic64 Acquire_Load(volatile const Atomic64* ptr);
|
| -Atomic64 Release_Load(volatile const Atomic64* ptr);
|
| #endif // V8_HOST_ARCH_64_BIT
|
|
|
| } // namespace base
|
| } // namespace v8
|
|
|
| -// Include our platform specific implementation.
|
| -#if defined(THREAD_SANITIZER)
|
| -#include "src/base/atomicops_internals_tsan.h"
|
| -#elif defined(_MSC_VER) && (V8_HOST_ARCH_IA32 || V8_HOST_ARCH_X64)
|
| +#if defined(V8_OS_WIN)
|
| +// TODO(hpayer): The MSVC header includes windows.h, which other files end up
|
| +// relying on. Fix this as part of crbug.com/559247.
|
| #include "src/base/atomicops_internals_x86_msvc.h"
|
| -#elif defined(__APPLE__)
|
| -#include "src/base/atomicops_internals_mac.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_ARM64
|
| -#include "src/base/atomicops_internals_arm64_gcc.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_ARM
|
| -#include "src/base/atomicops_internals_arm_gcc.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_PPC
|
| -#include "src/base/atomicops_internals_ppc_gcc.h"
|
| -#elif defined(__GNUC__) && (V8_HOST_ARCH_IA32 || V8_HOST_ARCH_X64)
|
| -#include "src/base/atomicops_internals_x86_gcc.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_MIPS
|
| -#include "src/base/atomicops_internals_mips_gcc.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_MIPS64
|
| -#include "src/base/atomicops_internals_mips64_gcc.h"
|
| -#elif defined(__GNUC__) && V8_HOST_ARCH_S390
|
| -#include "src/base/atomicops_internals_s390_gcc.h"
|
| #else
|
| -#error "Atomic operations are not supported on your platform"
|
| +#include "src/base/atomicops_internals_portable.h"
|
| #endif
|
|
|
| // On some platforms we need additional declarations to make
|
| // AtomicWord compatible with our other Atomic* types.
|
| -#if defined(__APPLE__) || defined(__OpenBSD__) || defined(V8_OS_AIX)
|
| +#if defined(V8_OS_MACOSX) || defined(V8_OS_OPENBSD) || defined(V8_OS_AIX)
|
| #include "src/base/atomicops_internals_atomicword_compat.h"
|
| #endif
|
|
|
|
|