aboutsummaryrefslogtreecommitdiff
path: root/include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h')
-rw-r--r--include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h70
1 files changed, 0 insertions, 70 deletions
diff --git a/include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h b/include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h
deleted file mode 100644
index 486e137..0000000
--- a/include/EASTL/internal/atomic/atomic_macros/atomic_macros_base.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) Electronic Arts Inc. All rights reserved.
-/////////////////////////////////////////////////////////////////////////////////
-
-
-#ifndef EASTL_ATOMIC_INTERNAL_MACROS_BASE_H
-#define EASTL_ATOMIC_INTERNAL_MACROS_BASE_H
-
-#if defined(EA_PRAGMA_ONCE_SUPPORTED)
- #pragma once
-#endif
-
-
-#define EASTL_ATOMIC_INTERNAL_COMPILER_AVAILABLE(op) \
- EA_PREPROCESSOR_JOIN(EA_PREPROCESSOR_JOIN(EASTL_COMPILER_, op), _AVAILABLE)
-
-#define EASTL_ATOMIC_INTERNAL_ARCH_AVAILABLE(op) \
- EA_PREPROCESSOR_JOIN(EA_PREPROCESSOR_JOIN(EASTL_ARCH_, op), _AVAILABLE)
-
-
-// We can't just use static_assert(false, ...) here, since on MSVC 17.10
-// the /Zc:static_assert flag makes non-dependent static_asserts in the body of a template
-// be evaluated at template-parse time, rather than at template instantion time.
-// So instead we just make the assert dependent on the type.
-#define EASTL_ATOMIC_INTERNAL_NOT_IMPLEMENTED_ERROR(...) \
- static_assert(!eastl::is_same_v<T,T>, "eastl::atomic<T> atomic macro not implemented!")
-
-
-/* Compiler && Arch Not Implemented */
-#define EASTL_ATOMIC_INTERNAL_OP_PATTERN_00(op) \
- EASTL_ATOMIC_INTERNAL_NOT_IMPLEMENTED_ERROR
-
-/* Arch Implemented */
-#define EASTL_ATOMIC_INTERNAL_OP_PATTERN_01(op) \
- EA_PREPROCESSOR_JOIN(EASTL_ARCH_, op)
-
-/* Compiler Implmented */
-#define EASTL_ATOMIC_INTERNAL_OP_PATTERN_10(op) \
- EA_PREPROCESSOR_JOIN(EASTL_COMPILER_, op)
-
-/* Compiler && Arch Implemented */
-#define EASTL_ATOMIC_INTERNAL_OP_PATTERN_11(op) \
- EA_PREPROCESSOR_JOIN(EASTL_ARCH_, op)
-
-
-/* This macro creates the pattern macros above for the 2x2 True-False truth table */
-#define EASTL_ATOMIC_INTERNAL_OP_HELPER1(compiler, arch, op) \
- EA_PREPROCESSOR_JOIN(EASTL_ATOMIC_INTERNAL_OP_PATTERN_, EA_PREPROCESSOR_JOIN(compiler, arch))(op)
-
-
-/////////////////////////////////////////////////////////////////////////////////
-//
-// EASTL_ATOMIC_CHOOSE_OP_IMPL
-//
-// This macro chooses between the compiler or architecture implementation for a
-// given atomic operation.
-//
-// USAGE:
-//
-// EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_ADD_RELAXED_8)(ret, ptr, val)
-//
-#define EASTL_ATOMIC_CHOOSE_OP_IMPL(op) \
- EASTL_ATOMIC_INTERNAL_OP_HELPER1( \
- EASTL_ATOMIC_INTERNAL_COMPILER_AVAILABLE(op), \
- EASTL_ATOMIC_INTERNAL_ARCH_AVAILABLE(op), \
- op \
- )
-
-
-#endif /* EASTL_ATOMIC_INTERNAL_MACROS_BASE_H */