You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1...

47 lines
1.9 KiB

# HG changeset patch
# User Lars T Hansen <lhansen@mozilla.com>
# Date 1457091735 -3600
# Node ID 69f237c2cf9131e97372debee01931dbacd064e5
# Parent 3aa4483740828617001060fe7386051020521e90
Bug 1253216 - clean up the atomic ops ifdef nest. r=jorendorff
diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
--- a/js/src/jit/AtomicOperations.h
+++ b/js/src/jit/AtomicOperations.h
@@ -318,21 +318,29 @@ AtomicOperations::isLockfree(int32_t siz
} // namespace js
#if defined(JS_CODEGEN_ARM)
# include "jit/arm/AtomicOperations-arm.h"
#elif defined(JS_CODEGEN_ARM64)
# include "jit/arm64/AtomicOperations-arm64.h"
#elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
# include "jit/mips-shared/AtomicOperations-mips-shared.h"
-#elif defined(__ppc64__) || defined(__PPC64_) \
- || defined(__ppc64le__) || defined(__PPC64LE__) \
- || defined(__ppc__) || defined(__PPC__)
+#elif defined(__ppc__) || defined(__PPC__)
# include "jit/none/AtomicOperations-ppc.h"
#elif defined(JS_CODEGEN_NONE)
-# include "jit/none/AtomicOperations-none.h"
+ // You can disable the JIT with --disable-ion but you must still
+ // provide the atomic operations that will be used by the JS engine.
+ // When the JIT is disabled the operations are simply safe-for-races
+ // C++ realizations of atomics. These operations cannot be written
+ // in portable C++, hence the default here is to crash. See the
+ // top of the file for more guidance.
+# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
+# include "jit/none/AtomicOperations-ppc.h"
+# else
+# include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
+# endif
#elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
# include "jit/x86-shared/AtomicOperations-x86-shared.h"
#else
# error "Atomic operations must be defined for this platform"
#endif
#endif // jit_AtomicOperations_h