File mozilla-aarch64-nojit-1.patch of Package MozillaFirefox.3830

# HG changeset patch
# User Lars T Hansen <lhansen@mozilla.com>
# Date 1457091735 -3600
# Node ID 69f237c2cf9131e97372debee01931dbacd064e5
# Parent 86a31f8a60a789d4733e7d6c14ddf1b9e66fc949
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
@@ -295,21 +295,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