diff --git a/js/src/asmjs/AsmJSSignalHandlers.cpp b/js/src/asmjs/AsmJSSignalHandlers.cpp index 4393e72013d..3685ece74af 100644 --- a/js/src/asmjs/AsmJSSignalHandlers.cpp +++ b/js/src/asmjs/AsmJSSignalHandlers.cpp @@ -26,8 +26,6 @@ #include "jit/Disassembler.h" #include "vm/Runtime.h" -#include "jit/AtomicOperations-inl.h" - using namespace js; using namespace js::jit; diff --git a/js/src/asmjs/AsmJSValidate.cpp b/js/src/asmjs/AsmJSValidate.cpp index 55ffa08cbe2..4aa283321a3 100644 --- a/js/src/asmjs/AsmJSValidate.cpp +++ b/js/src/asmjs/AsmJSValidate.cpp @@ -51,7 +51,6 @@ #include "frontend/ParseNode-inl.h" #include "frontend/Parser-inl.h" -#include "jit/AtomicOperations-inl.h" #include "jit/MacroAssembler-inl.h" using namespace js; diff --git a/js/src/builtin/AtomicsObject.cpp b/js/src/builtin/AtomicsObject.cpp index 452bc8bd26e..582dd80ff5d 100644 --- a/js/src/builtin/AtomicsObject.cpp +++ b/js/src/builtin/AtomicsObject.cpp @@ -63,7 +63,6 @@ #include "vm/TypedArrayObject.h" #include "jsobjinlines.h" -#include "jit/AtomicOperations-inl.h" using namespace js; diff --git a/js/src/jit/AtomicOperations-inl.h b/js/src/jit/AtomicOperations-inl.h deleted file mode 100644 index eb73e98579c..00000000000 --- a/js/src/jit/AtomicOperations-inl.h +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * vim: set ts=8 sts=4 et sw=4 tw=99: - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef jit_AtomicOperations_inl_h -#define jit_AtomicOperations_inl_h - -#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) -# include "jit/mips-shared/AtomicOperations-mips-shared.h" -#elif defined(JS_CODEGEN_NONE) -# include "jit/none/AtomicOperations-none.h" -#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 - -inline bool -js::jit::AtomicOperations::isLockfree(int32_t size) -{ - // Keep this in sync with visitAtomicIsLockFree() in jit/CodeGenerator.cpp. - - switch (size) { - case 1: - case 2: - case 4: - return true; - case 8: - return AtomicOperations::isLockfree8(); - default: - return false; - } -} - -#endif // jit_AtomicOperations_inl_h diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h index 8cbd6d158d4..000310b1fa7 100644 --- a/js/src/jit/AtomicOperations.h +++ b/js/src/jit/AtomicOperations.h @@ -7,6 +7,8 @@ #ifndef jit_AtomicOperations_h #define jit_AtomicOperations_h +#include "mozilla/Types.h" + #include "vm/SharedMem.h" namespace js { @@ -55,9 +57,6 @@ class RegionLock; * a "relaxed atomic" access: it can read or write garbage if there's * a race. * - * To make use of the functions you generally have to include - * AtomicOperations-inl.h. - * * * Implementation notes. * @@ -275,7 +274,38 @@ class RegionLock uint32_t spinlock; }; +inline bool +AtomicOperations::isLockfree(int32_t size) +{ + // Keep this in sync with visitAtomicIsLockFree() in jit/CodeGenerator.cpp. + + switch (size) { + case 1: + case 2: + case 4: + return true; + case 8: + return AtomicOperations::isLockfree8(); + default: + return false; + } +} + } // namespace jit } // 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) +# include "jit/mips-shared/AtomicOperations-mips-shared.h" +#elif defined(JS_CODEGEN_NONE) +# include "jit/none/AtomicOperations-none.h" +#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 diff --git a/js/src/jit/BaselineIC.cpp b/js/src/jit/BaselineIC.cpp index 31526837828..fd82702c09f 100644 --- a/js/src/jit/BaselineIC.cpp +++ b/js/src/jit/BaselineIC.cpp @@ -33,7 +33,6 @@ #include "jsboolinlines.h" #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" #include "jit/JitFrames-inl.h" #include "jit/MacroAssembler-inl.h" #include "jit/shared/Lowering-shared-inl.h" diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp index befb0a9703a..2e68247061b 100644 --- a/js/src/jit/CodeGenerator.cpp +++ b/js/src/jit/CodeGenerator.cpp @@ -41,7 +41,6 @@ #include "jsboolinlines.h" -#include "jit/AtomicOperations-inl.h" #include "jit/MacroAssembler-inl.h" #include "jit/shared/CodeGenerator-shared-inl.h" #include "jit/shared/Lowering-shared-inl.h" diff --git a/js/src/jit/MIR.cpp b/js/src/jit/MIR.cpp index 95142a8ea9e..932f45dd18c 100644 --- a/js/src/jit/MIR.cpp +++ b/js/src/jit/MIR.cpp @@ -28,8 +28,6 @@ #include "jsobjinlines.h" #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" - using namespace js; using namespace js::jit; diff --git a/js/src/jit/RangeAnalysis.cpp b/js/src/jit/RangeAnalysis.cpp index 0a754d0b9fd..66db6f78cc3 100644 --- a/js/src/jit/RangeAnalysis.cpp +++ b/js/src/jit/RangeAnalysis.cpp @@ -19,8 +19,6 @@ #include "jsopcodeinlines.h" -#include "jit/AtomicOperations-inl.h" - using namespace js; using namespace js::jit; diff --git a/js/src/jit/arm/Assembler-arm.cpp b/js/src/jit/arm/Assembler-arm.cpp index 8b413589887..7a9e7241e4b 100644 --- a/js/src/jit/arm/Assembler-arm.cpp +++ b/js/src/jit/arm/Assembler-arm.cpp @@ -20,6 +20,7 @@ #include "jit/arm/MacroAssembler-arm.h" #include "jit/ExecutableAllocator.h" #include "jit/JitCompartment.h" +#include "jit/MacroAssembler.h" using namespace js; using namespace js::jit; diff --git a/js/src/jit/arm/AtomicOperations-arm.h b/js/src/jit/arm/AtomicOperations-arm.h index 3efd86db28b..54e442f4df8 100644 --- a/js/src/jit/arm/AtomicOperations-arm.h +++ b/js/src/jit/arm/AtomicOperations-arm.h @@ -10,7 +10,6 @@ #define jit_arm_AtomicOperations_arm_h #include "jit/arm/Architecture-arm.h" -#include "jit/AtomicOperations.h" #if defined(__clang__) || defined(__GNUC__) diff --git a/js/src/jit/arm/disasm/Constants-arm.h b/js/src/jit/arm/disasm/Constants-arm.h index 2e26309a36b..de63f39dc32 100644 --- a/js/src/jit/arm/disasm/Constants-arm.h +++ b/js/src/jit/arm/disasm/Constants-arm.h @@ -10,6 +10,11 @@ #ifdef JS_DISASM_ARM +#include "mozilla/Assertions.h" +#include "mozilla/Types.h" + +#include + namespace js { namespace jit { namespace disasm { diff --git a/js/src/jit/arm/disasm/Disasm-arm.h b/js/src/jit/arm/disasm/Disasm-arm.h index 62e75e50579..5421a03c773 100644 --- a/js/src/jit/arm/disasm/Disasm-arm.h +++ b/js/src/jit/arm/disasm/Disasm-arm.h @@ -10,6 +10,11 @@ #ifdef JS_DISASM_ARM +#include "mozilla/Assertions.h" +#include "mozilla/Types.h" + +#include + namespace js { namespace jit { namespace disasm { diff --git a/js/src/jit/arm64/AtomicOperations-arm64.h b/js/src/jit/arm64/AtomicOperations-arm64.h index 2706969a7bb..0fb8ac69013 100644 --- a/js/src/jit/arm64/AtomicOperations-arm64.h +++ b/js/src/jit/arm64/AtomicOperations-arm64.h @@ -9,8 +9,10 @@ #ifndef jit_arm64_AtomicOperations_arm64_h #define jit_arm64_AtomicOperations_arm64_h +#include "mozilla/Assertions.h" +#include "mozilla/Types.h" + #include "jit/arm64/Architecture-arm64.h" -#include "jit/AtomicOperations.h" inline bool js::jit::AtomicOperations::isLockfree8() diff --git a/js/src/jit/mips-shared/AtomicOperations-mips-shared.h b/js/src/jit/mips-shared/AtomicOperations-mips-shared.h index 299817aff8e..a9df01c88c6 100644 --- a/js/src/jit/mips-shared/AtomicOperations-mips-shared.h +++ b/js/src/jit/mips-shared/AtomicOperations-mips-shared.h @@ -9,7 +9,8 @@ #ifndef jit_mips_shared_AtomicOperations_mips_shared_h #define jit_mips_shared_AtomicOperations_mips_shared_h -#include "jit/AtomicOperations.h" +#include "mozilla/Assertions.h" +#include "mozilla/Types.h" #if defined(__clang__) || defined(__GNUC__) diff --git a/js/src/jit/none/AtomicOperations-none.h b/js/src/jit/none/AtomicOperations-none.h index ceceeed52ab..f08ccf9e047 100644 --- a/js/src/jit/none/AtomicOperations-none.h +++ b/js/src/jit/none/AtomicOperations-none.h @@ -9,7 +9,7 @@ #ifndef jit_none_AtomicOperations_none_h #define jit_none_AtomicOperations_none_h -#include "jit/AtomicOperations.h" +#include "mozilla/Assertions.h" // A "none" build is never run (ref IRC discussion with h4writer) and // all functions here can therefore MOZ_CRASH, even if they are diff --git a/js/src/jit/x86-shared/AtomicOperations-x86-shared.h b/js/src/jit/x86-shared/AtomicOperations-x86-shared.h index beeecde6dca..8631b6cbd5f 100644 --- a/js/src/jit/x86-shared/AtomicOperations-x86-shared.h +++ b/js/src/jit/x86-shared/AtomicOperations-x86-shared.h @@ -9,7 +9,8 @@ #ifndef jit_shared_AtomicOperations_x86_shared_h #define jit_shared_AtomicOperations_x86_shared_h -#include "jit/AtomicOperations.h" +#include "mozilla/Assertions.h" +#include "mozilla/Types.h" // Lock-freedom on x86 and x64: // diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 77a15f5d431..fb3fb14580f 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -91,8 +91,6 @@ #include "jsfuninlines.h" #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" - #include "vm/Interpreter-inl.h" #include "vm/NativeObject-inl.h" #include "vm/String-inl.h" diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp index 02a52bd5b43..fa2b8233c70 100644 --- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -38,8 +38,6 @@ #include "jsatominlines.h" -#include "jit/AtomicOperations-inl.h" - #include "vm/ArgumentsObject-inl.h" #include "vm/ArrayObject-inl.h" #include "vm/Interpreter-inl.h" diff --git a/js/src/jsiter.cpp b/js/src/jsiter.cpp index 8922f84484c..328762d75e3 100644 --- a/js/src/jsiter.cpp +++ b/js/src/jsiter.cpp @@ -35,8 +35,6 @@ #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" - #include "vm/NativeObject-inl.h" #include "vm/Stack-inl.h" #include "vm/String-inl.h" diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp index d8dcf40ed77..28d440be96d 100644 --- a/js/src/jsobj.cpp +++ b/js/src/jsobj.cpp @@ -59,8 +59,6 @@ #include "jscntxtinlines.h" #include "jscompartmentinlines.h" -#include "jit/AtomicOperations-inl.h" - #include "vm/ArrayObject-inl.h" #include "vm/BooleanObject-inl.h" #include "vm/Interpreter-inl.h" diff --git a/js/src/jsobjinlines.h b/js/src/jsobjinlines.h index 87a3d91edd0..9067a2bca01 100644 --- a/js/src/jsobjinlines.h +++ b/js/src/jsobjinlines.h @@ -29,7 +29,6 @@ #include "jscompartmentinlines.h" #include "jsgcinlines.h" -#include "jit/AtomicOperations-inl.h" #include "vm/TypeInference-inl.h" namespace js { diff --git a/js/src/vm/Interpreter.cpp b/js/src/vm/Interpreter.cpp index 5a32a10e138..a4a12f05132 100644 --- a/js/src/vm/Interpreter.cpp +++ b/js/src/vm/Interpreter.cpp @@ -48,7 +48,6 @@ #include "jsfuninlines.h" #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" #include "jit/JitFrames-inl.h" #include "vm/Debugger-inl.h" #include "vm/NativeObject-inl.h" diff --git a/js/src/vm/NativeObject.cpp b/js/src/vm/NativeObject.cpp index 051dd020fea..06baa7e1c8e 100644 --- a/js/src/vm/NativeObject.cpp +++ b/js/src/vm/NativeObject.cpp @@ -19,7 +19,6 @@ #include "jsobjinlines.h" #include "gc/Nursery-inl.h" -#include "jit/AtomicOperations-inl.h" #include "vm/ArrayObject-inl.h" #include "vm/ScopeObject-inl.h" #include "vm/Shape-inl.h" diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp index 147131081b5..3b2a927d668 100644 --- a/js/src/vm/SelfHosting.cpp +++ b/js/src/vm/SelfHosting.cpp @@ -40,8 +40,6 @@ #include "jsfuninlines.h" #include "jsscriptinlines.h" -#include "jit/AtomicOperations-inl.h" - #include "vm/BooleanObject-inl.h" #include "vm/NativeObject-inl.h" #include "vm/NumberObject-inl.h" diff --git a/js/src/vm/SharedArrayObject.cpp b/js/src/vm/SharedArrayObject.cpp index 1a7352e43e6..3c32bc11ffa 100644 --- a/js/src/vm/SharedArrayObject.cpp +++ b/js/src/vm/SharedArrayObject.cpp @@ -28,8 +28,6 @@ #include "jsobjinlines.h" -#include "jit/AtomicOperations-inl.h" - using namespace js; static inline void* diff --git a/js/src/vm/SharedTypedArrayObject.cpp b/js/src/vm/SharedTypedArrayObject.cpp index f16ae8926a6..d8ca722541a 100644 --- a/js/src/vm/SharedTypedArrayObject.cpp +++ b/js/src/vm/SharedTypedArrayObject.cpp @@ -45,7 +45,6 @@ #include "jsatominlines.h" #include "jsobjinlines.h" -#include "jit/AtomicOperations-inl.h" #include "vm/Shape-inl.h" using namespace js; diff --git a/js/src/vm/TypedArrayObject.cpp b/js/src/vm/TypedArrayObject.cpp index e92750b42eb..9f6c375b248 100644 --- a/js/src/vm/TypedArrayObject.cpp +++ b/js/src/vm/TypedArrayObject.cpp @@ -40,7 +40,6 @@ #include "jsatominlines.h" -#include "jit/AtomicOperations-inl.h" #include "vm/NativeObject-inl.h" #include "vm/Shape-inl.h"