Bug 902908 - Rename js/src/ion to js/src/jit. r=luke
authorJan de Mooij <jdemooij@mozilla.com>
Thu, 08 Aug 2013 19:37:11 +0200
changeset 141985 fe7a314efca0e940898bf7b3be9cfe87ca6b5ffa
parent 141984 87b19d2934a0239d1712c34531b4e05a8567dfe4
child 141986 105f90f2e28ba2fd62e674562f24fb929f7d70ce
push id25076
push userryanvm@gmail.com
push dateFri, 09 Aug 2013 23:09:21 +0000
treeherdermozilla-central@cead6eb63964 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersluke
bugs902908
milestone26.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 902908 - Rename js/src/ion to js/src/jit. r=luke
config/check_spidermonkey_style.py
js/src/Makefile.in
js/src/assembler/assembler/AssemblerBuffer.h
js/src/builtin/ParallelArray.h
js/src/builtin/TestingFunctions.cpp
js/src/config/check_spidermonkey_style.py
js/src/frontend/BytecodeCompiler.cpp
js/src/frontend/BytecodeEmitter.cpp
js/src/frontend/Parser.cpp
js/src/gc/Marking.cpp
js/src/gc/Marking.h
js/src/gc/RootMarking.cpp
js/src/gc/Zone.cpp
js/src/ion/AliasAnalysis.cpp
js/src/ion/AliasAnalysis.h
js/src/ion/AsmJS.cpp
js/src/ion/AsmJS.h
js/src/ion/AsmJSLink.cpp
js/src/ion/AsmJSLink.h
js/src/ion/AsmJSModule.cpp
js/src/ion/AsmJSModule.h
js/src/ion/AsmJSSignalHandlers.cpp
js/src/ion/AsmJSSignalHandlers.h
js/src/ion/BacktrackingAllocator.cpp
js/src/ion/BacktrackingAllocator.h
js/src/ion/Bailouts.cpp
js/src/ion/Bailouts.h
js/src/ion/BaselineBailouts.cpp
js/src/ion/BaselineCompiler.cpp
js/src/ion/BaselineCompiler.h
js/src/ion/BaselineFrame-inl.h
js/src/ion/BaselineFrame.cpp
js/src/ion/BaselineFrame.h
js/src/ion/BaselineFrameInfo.cpp
js/src/ion/BaselineFrameInfo.h
js/src/ion/BaselineHelpers.h
js/src/ion/BaselineIC.cpp
js/src/ion/BaselineIC.h
js/src/ion/BaselineInspector.cpp
js/src/ion/BaselineInspector.h
js/src/ion/BaselineJIT.cpp
js/src/ion/BaselineJIT.h
js/src/ion/BaselineRegisters.h
js/src/ion/BitSet.cpp
js/src/ion/BitSet.h
js/src/ion/BytecodeAnalysis.cpp
js/src/ion/BytecodeAnalysis.h
js/src/ion/C1Spewer.cpp
js/src/ion/C1Spewer.h
js/src/ion/CodeGenerator.cpp
js/src/ion/CodeGenerator.h
js/src/ion/CompactBuffer.h
js/src/ion/CompileInfo-inl.h
js/src/ion/CompileInfo.h
js/src/ion/CompilerRoot.h
js/src/ion/EdgeCaseAnalysis.cpp
js/src/ion/EdgeCaseAnalysis.h
js/src/ion/EffectiveAddressAnalysis.cpp
js/src/ion/EffectiveAddressAnalysis.h
js/src/ion/ExecutionModeInlines.h
js/src/ion/FixedList.h
js/src/ion/InlineList.h
js/src/ion/Ion.cpp
js/src/ion/Ion.h
js/src/ion/IonAllocPolicy.h
js/src/ion/IonAnalysis.cpp
js/src/ion/IonAnalysis.h
js/src/ion/IonBuilder.cpp
js/src/ion/IonBuilder.h
js/src/ion/IonCaches.cpp
js/src/ion/IonCaches.h
js/src/ion/IonCode.h
js/src/ion/IonCompartment.h
js/src/ion/IonFrameIterator-inl.h
js/src/ion/IonFrameIterator.h
js/src/ion/IonFrames-inl.h
js/src/ion/IonFrames.cpp
js/src/ion/IonFrames.h
js/src/ion/IonInstrumentation.h
js/src/ion/IonLinker.h
js/src/ion/IonMacroAssembler.cpp
js/src/ion/IonMacroAssembler.h
js/src/ion/IonSpewer.cpp
js/src/ion/IonSpewer.h
js/src/ion/IonTypes.h
js/src/ion/JSONSpewer.cpp
js/src/ion/JSONSpewer.h
js/src/ion/LICM.cpp
js/src/ion/LICM.h
js/src/ion/LIR-Common.h
js/src/ion/LIR.cpp
js/src/ion/LIR.h
js/src/ion/LOpcodes.h
js/src/ion/LinearScan.cpp
js/src/ion/LinearScan.h
js/src/ion/LiveRangeAllocator.cpp
js/src/ion/LiveRangeAllocator.h
js/src/ion/Lowering.cpp
js/src/ion/Lowering.h
js/src/ion/MCallOptimize.cpp
js/src/ion/MIR.cpp
js/src/ion/MIR.h
js/src/ion/MIRGenerator.h
js/src/ion/MIRGraph.cpp
js/src/ion/MIRGraph.h
js/src/ion/MOpcodes.h
js/src/ion/MoveEmitter.h
js/src/ion/MoveResolver.cpp
js/src/ion/MoveResolver.h
js/src/ion/ParallelFunctions.cpp
js/src/ion/ParallelFunctions.h
js/src/ion/ParallelSafetyAnalysis.cpp
js/src/ion/ParallelSafetyAnalysis.h
js/src/ion/PcScriptCache.h
js/src/ion/PerfSpewer.cpp
js/src/ion/PerfSpewer.h
js/src/ion/RangeAnalysis.cpp
js/src/ion/RangeAnalysis.h
js/src/ion/RegisterAllocator.cpp
js/src/ion/RegisterAllocator.h
js/src/ion/RegisterSets.h
js/src/ion/Registers.h
js/src/ion/Safepoints.cpp
js/src/ion/Safepoints.h
js/src/ion/SnapshotReader.h
js/src/ion/SnapshotWriter.h
js/src/ion/Snapshots.cpp
js/src/ion/StackSlotAllocator.h
js/src/ion/StupidAllocator.cpp
js/src/ion/StupidAllocator.h
js/src/ion/TypePolicy.cpp
js/src/ion/TypePolicy.h
js/src/ion/UnreachableCodeElimination.cpp
js/src/ion/UnreachableCodeElimination.h
js/src/ion/VMFunctions.cpp
js/src/ion/VMFunctions.h
js/src/ion/ValueNumbering.cpp
js/src/ion/ValueNumbering.h
js/src/ion/arm/Architecture-arm.cpp
js/src/ion/arm/Architecture-arm.h
js/src/ion/arm/Assembler-arm.cpp
js/src/ion/arm/Assembler-arm.h
js/src/ion/arm/Bailouts-arm.cpp
js/src/ion/arm/BaselineCompiler-arm.cpp
js/src/ion/arm/BaselineCompiler-arm.h
js/src/ion/arm/BaselineHelpers-arm.h
js/src/ion/arm/BaselineIC-arm.cpp
js/src/ion/arm/BaselineRegisters-arm.h
js/src/ion/arm/CodeGenerator-arm.cpp
js/src/ion/arm/CodeGenerator-arm.h
js/src/ion/arm/IonFrames-arm.cpp
js/src/ion/arm/IonFrames-arm.h
js/src/ion/arm/LIR-arm.h
js/src/ion/arm/LOpcodes-arm.h
js/src/ion/arm/Lowering-arm.cpp
js/src/ion/arm/Lowering-arm.h
js/src/ion/arm/MacroAssembler-arm.cpp
js/src/ion/arm/MacroAssembler-arm.h
js/src/ion/arm/MoveEmitter-arm.cpp
js/src/ion/arm/MoveEmitter-arm.h
js/src/ion/arm/Trampoline-arm.cpp
js/src/ion/shared/Assembler-shared.h
js/src/ion/shared/Assembler-x86-shared.cpp
js/src/ion/shared/Assembler-x86-shared.h
js/src/ion/shared/BaselineCompiler-shared.cpp
js/src/ion/shared/BaselineCompiler-shared.h
js/src/ion/shared/BaselineCompiler-x86-shared.cpp
js/src/ion/shared/BaselineCompiler-x86-shared.h
js/src/ion/shared/BaselineIC-x86-shared.cpp
js/src/ion/shared/CodeGenerator-shared-inl.h
js/src/ion/shared/CodeGenerator-shared.cpp
js/src/ion/shared/CodeGenerator-shared.h
js/src/ion/shared/CodeGenerator-x86-shared.cpp
js/src/ion/shared/CodeGenerator-x86-shared.h
js/src/ion/shared/IonAssemblerBuffer.h
js/src/ion/shared/IonAssemblerBufferWithConstantPools.h
js/src/ion/shared/IonFrames-shared.h
js/src/ion/shared/IonFrames-x86-shared.cpp
js/src/ion/shared/IonFrames-x86-shared.h
js/src/ion/shared/LIR-x86-shared.h
js/src/ion/shared/Lowering-shared-inl.h
js/src/ion/shared/Lowering-shared.cpp
js/src/ion/shared/Lowering-shared.h
js/src/ion/shared/Lowering-x86-shared.cpp
js/src/ion/shared/Lowering-x86-shared.h
js/src/ion/shared/MacroAssembler-x86-shared.h
js/src/ion/shared/MoveEmitter-x86-shared.cpp
js/src/ion/shared/MoveEmitter-x86-shared.h
js/src/ion/x64/Architecture-x64.h
js/src/ion/x64/Assembler-x64.cpp
js/src/ion/x64/Assembler-x64.h
js/src/ion/x64/Bailouts-x64.cpp
js/src/ion/x64/BaselineCompiler-x64.cpp
js/src/ion/x64/BaselineCompiler-x64.h
js/src/ion/x64/BaselineHelpers-x64.h
js/src/ion/x64/BaselineIC-x64.cpp
js/src/ion/x64/BaselineRegisters-x64.h
js/src/ion/x64/CodeGenerator-x64.cpp
js/src/ion/x64/CodeGenerator-x64.h
js/src/ion/x64/LIR-x64.h
js/src/ion/x64/LOpcodes-x64.h
js/src/ion/x64/Lowering-x64.cpp
js/src/ion/x64/Lowering-x64.h
js/src/ion/x64/MacroAssembler-x64.cpp
js/src/ion/x64/MacroAssembler-x64.h
js/src/ion/x64/Trampoline-x64.cpp
js/src/ion/x86/Architecture-x86.h
js/src/ion/x86/Assembler-x86.cpp
js/src/ion/x86/Assembler-x86.h
js/src/ion/x86/Bailouts-x86.cpp
js/src/ion/x86/BaselineCompiler-x86.cpp
js/src/ion/x86/BaselineCompiler-x86.h
js/src/ion/x86/BaselineHelpers-x86.h
js/src/ion/x86/BaselineIC-x86.cpp
js/src/ion/x86/BaselineRegisters-x86.h
js/src/ion/x86/CodeGenerator-x86.cpp
js/src/ion/x86/CodeGenerator-x86.h
js/src/ion/x86/LIR-x86.h
js/src/ion/x86/LOpcodes-x86.h
js/src/ion/x86/Lowering-x86.cpp
js/src/ion/x86/Lowering-x86.h
js/src/ion/x86/MacroAssembler-x86.cpp
js/src/ion/x86/MacroAssembler-x86.h
js/src/ion/x86/Trampoline-x86.cpp
js/src/jit/AliasAnalysis.cpp
js/src/jit/AliasAnalysis.h
js/src/jit/AsmJS.cpp
js/src/jit/AsmJS.h
js/src/jit/AsmJSLink.cpp
js/src/jit/AsmJSLink.h
js/src/jit/AsmJSModule.cpp
js/src/jit/AsmJSModule.h
js/src/jit/AsmJSSignalHandlers.cpp
js/src/jit/AsmJSSignalHandlers.h
js/src/jit/BacktrackingAllocator.cpp
js/src/jit/BacktrackingAllocator.h
js/src/jit/Bailouts.cpp
js/src/jit/Bailouts.h
js/src/jit/BaselineBailouts.cpp
js/src/jit/BaselineCompiler.cpp
js/src/jit/BaselineCompiler.h
js/src/jit/BaselineFrame-inl.h
js/src/jit/BaselineFrame.cpp
js/src/jit/BaselineFrame.h
js/src/jit/BaselineFrameInfo.cpp
js/src/jit/BaselineFrameInfo.h
js/src/jit/BaselineHelpers.h
js/src/jit/BaselineIC.cpp
js/src/jit/BaselineIC.h
js/src/jit/BaselineInspector.cpp
js/src/jit/BaselineInspector.h
js/src/jit/BaselineJIT.cpp
js/src/jit/BaselineJIT.h
js/src/jit/BaselineRegisters.h
js/src/jit/BitSet.cpp
js/src/jit/BitSet.h
js/src/jit/BytecodeAnalysis.cpp
js/src/jit/BytecodeAnalysis.h
js/src/jit/C1Spewer.cpp
js/src/jit/C1Spewer.h
js/src/jit/CodeGenerator.cpp
js/src/jit/CodeGenerator.h
js/src/jit/CompactBuffer.h
js/src/jit/CompileInfo-inl.h
js/src/jit/CompileInfo.h
js/src/jit/CompilerRoot.h
js/src/jit/EdgeCaseAnalysis.cpp
js/src/jit/EdgeCaseAnalysis.h
js/src/jit/EffectiveAddressAnalysis.cpp
js/src/jit/EffectiveAddressAnalysis.h
js/src/jit/ExecutionModeInlines.h
js/src/jit/FixedList.h
js/src/jit/InlineList.h
js/src/jit/Ion.cpp
js/src/jit/Ion.h
js/src/jit/IonAllocPolicy.h
js/src/jit/IonAnalysis.cpp
js/src/jit/IonAnalysis.h
js/src/jit/IonBuilder.cpp
js/src/jit/IonBuilder.h
js/src/jit/IonCaches.cpp
js/src/jit/IonCaches.h
js/src/jit/IonCode.h
js/src/jit/IonCompartment.h
js/src/jit/IonFrameIterator-inl.h
js/src/jit/IonFrameIterator.h
js/src/jit/IonFrames-inl.h
js/src/jit/IonFrames.cpp
js/src/jit/IonFrames.h
js/src/jit/IonInstrumentation.h
js/src/jit/IonLinker.h
js/src/jit/IonMacroAssembler.cpp
js/src/jit/IonMacroAssembler.h
js/src/jit/IonSpewer.cpp
js/src/jit/IonSpewer.h
js/src/jit/IonTypes.h
js/src/jit/JSONSpewer.cpp
js/src/jit/JSONSpewer.h
js/src/jit/LICM.cpp
js/src/jit/LICM.h
js/src/jit/LIR-Common.h
js/src/jit/LIR.cpp
js/src/jit/LIR.h
js/src/jit/LOpcodes.h
js/src/jit/LinearScan.cpp
js/src/jit/LinearScan.h
js/src/jit/LiveRangeAllocator.cpp
js/src/jit/LiveRangeAllocator.h
js/src/jit/Lowering.cpp
js/src/jit/Lowering.h
js/src/jit/MCallOptimize.cpp
js/src/jit/MIR.cpp
js/src/jit/MIR.h
js/src/jit/MIRGenerator.h
js/src/jit/MIRGraph.cpp
js/src/jit/MIRGraph.h
js/src/jit/MOpcodes.h
js/src/jit/MoveEmitter.h
js/src/jit/MoveResolver.cpp
js/src/jit/MoveResolver.h
js/src/jit/ParallelFunctions.cpp
js/src/jit/ParallelFunctions.h
js/src/jit/ParallelSafetyAnalysis.cpp
js/src/jit/ParallelSafetyAnalysis.h
js/src/jit/PcScriptCache.h
js/src/jit/PerfSpewer.cpp
js/src/jit/PerfSpewer.h
js/src/jit/RangeAnalysis.cpp
js/src/jit/RangeAnalysis.h
js/src/jit/RegisterAllocator.cpp
js/src/jit/RegisterAllocator.h
js/src/jit/RegisterSets.h
js/src/jit/Registers.h
js/src/jit/Safepoints.cpp
js/src/jit/Safepoints.h
js/src/jit/SnapshotReader.h
js/src/jit/SnapshotWriter.h
js/src/jit/Snapshots.cpp
js/src/jit/StackSlotAllocator.h
js/src/jit/StupidAllocator.cpp
js/src/jit/StupidAllocator.h
js/src/jit/TypePolicy.cpp
js/src/jit/TypePolicy.h
js/src/jit/UnreachableCodeElimination.cpp
js/src/jit/UnreachableCodeElimination.h
js/src/jit/VMFunctions.cpp
js/src/jit/VMFunctions.h
js/src/jit/ValueNumbering.cpp
js/src/jit/ValueNumbering.h
js/src/jit/arm/Architecture-arm.cpp
js/src/jit/arm/Architecture-arm.h
js/src/jit/arm/Assembler-arm.cpp
js/src/jit/arm/Assembler-arm.h
js/src/jit/arm/Bailouts-arm.cpp
js/src/jit/arm/BaselineCompiler-arm.cpp
js/src/jit/arm/BaselineCompiler-arm.h
js/src/jit/arm/BaselineHelpers-arm.h
js/src/jit/arm/BaselineIC-arm.cpp
js/src/jit/arm/BaselineRegisters-arm.h
js/src/jit/arm/CodeGenerator-arm.cpp
js/src/jit/arm/CodeGenerator-arm.h
js/src/jit/arm/IonFrames-arm.cpp
js/src/jit/arm/IonFrames-arm.h
js/src/jit/arm/LIR-arm.h
js/src/jit/arm/LOpcodes-arm.h
js/src/jit/arm/Lowering-arm.cpp
js/src/jit/arm/Lowering-arm.h
js/src/jit/arm/MacroAssembler-arm.cpp
js/src/jit/arm/MacroAssembler-arm.h
js/src/jit/arm/MoveEmitter-arm.cpp
js/src/jit/arm/MoveEmitter-arm.h
js/src/jit/arm/Trampoline-arm.cpp
js/src/jit/shared/Assembler-shared.h
js/src/jit/shared/Assembler-x86-shared.cpp
js/src/jit/shared/Assembler-x86-shared.h
js/src/jit/shared/BaselineCompiler-shared.cpp
js/src/jit/shared/BaselineCompiler-shared.h
js/src/jit/shared/BaselineCompiler-x86-shared.cpp
js/src/jit/shared/BaselineCompiler-x86-shared.h
js/src/jit/shared/BaselineIC-x86-shared.cpp
js/src/jit/shared/CodeGenerator-shared-inl.h
js/src/jit/shared/CodeGenerator-shared.cpp
js/src/jit/shared/CodeGenerator-shared.h
js/src/jit/shared/CodeGenerator-x86-shared.cpp
js/src/jit/shared/CodeGenerator-x86-shared.h
js/src/jit/shared/IonAssemblerBuffer.h
js/src/jit/shared/IonAssemblerBufferWithConstantPools.h
js/src/jit/shared/IonFrames-shared.h
js/src/jit/shared/IonFrames-x86-shared.cpp
js/src/jit/shared/IonFrames-x86-shared.h
js/src/jit/shared/LIR-x86-shared.h
js/src/jit/shared/Lowering-shared-inl.h
js/src/jit/shared/Lowering-shared.cpp
js/src/jit/shared/Lowering-shared.h
js/src/jit/shared/Lowering-x86-shared.cpp
js/src/jit/shared/Lowering-x86-shared.h
js/src/jit/shared/MacroAssembler-x86-shared.h
js/src/jit/shared/MoveEmitter-x86-shared.cpp
js/src/jit/shared/MoveEmitter-x86-shared.h
js/src/jit/x64/Architecture-x64.h
js/src/jit/x64/Assembler-x64.cpp
js/src/jit/x64/Assembler-x64.h
js/src/jit/x64/Bailouts-x64.cpp
js/src/jit/x64/BaselineCompiler-x64.cpp
js/src/jit/x64/BaselineCompiler-x64.h
js/src/jit/x64/BaselineHelpers-x64.h
js/src/jit/x64/BaselineIC-x64.cpp
js/src/jit/x64/BaselineRegisters-x64.h
js/src/jit/x64/CodeGenerator-x64.cpp
js/src/jit/x64/CodeGenerator-x64.h
js/src/jit/x64/LIR-x64.h
js/src/jit/x64/LOpcodes-x64.h
js/src/jit/x64/Lowering-x64.cpp
js/src/jit/x64/Lowering-x64.h
js/src/jit/x64/MacroAssembler-x64.cpp
js/src/jit/x64/MacroAssembler-x64.h
js/src/jit/x64/Trampoline-x64.cpp
js/src/jit/x86/Architecture-x86.h
js/src/jit/x86/Assembler-x86.cpp
js/src/jit/x86/Assembler-x86.h
js/src/jit/x86/Bailouts-x86.cpp
js/src/jit/x86/BaselineCompiler-x86.cpp
js/src/jit/x86/BaselineCompiler-x86.h
js/src/jit/x86/BaselineHelpers-x86.h
js/src/jit/x86/BaselineIC-x86.cpp
js/src/jit/x86/BaselineRegisters-x86.h
js/src/jit/x86/CodeGenerator-x86.cpp
js/src/jit/x86/CodeGenerator-x86.h
js/src/jit/x86/LIR-x86.h
js/src/jit/x86/LOpcodes-x86.h
js/src/jit/x86/Lowering-x86.cpp
js/src/jit/x86/Lowering-x86.h
js/src/jit/x86/MacroAssembler-x86.cpp
js/src/jit/x86/MacroAssembler-x86.h
js/src/jit/x86/Trampoline-x86.cpp
js/src/jsapi.cpp
js/src/jscntxt.cpp
js/src/jscntxtinlines.h
js/src/jscompartment.cpp
js/src/jsdbgapi.cpp
js/src/jsfun.cpp
js/src/jsgc.cpp
js/src/jsinfer.cpp
js/src/jsinferinlines.h
js/src/jsmemorymetrics.cpp
js/src/jsobj.cpp
js/src/jsscript.cpp
js/src/jsscriptinlines.h
js/src/jsworkers.cpp
js/src/jsworkers.h
js/src/shell/js.cpp
js/src/vm/ArgumentsObject.cpp
js/src/vm/Debugger.cpp
js/src/vm/ForkJoin.cpp
js/src/vm/ForkJoin.h
js/src/vm/Interpreter-inl.h
js/src/vm/Interpreter.cpp
js/src/vm/Runtime-inl.h
js/src/vm/Runtime.cpp
js/src/vm/Runtime.h
js/src/vm/SPSProfiler.cpp
js/src/vm/Stack-inl.h
js/src/vm/Stack.cpp
js/src/vm/Stack.h
js/src/vm/TypedArrayObject.cpp
--- a/config/check_spidermonkey_style.py
+++ b/config/check_spidermonkey_style.py
@@ -16,17 +16,17 @@
 # - #ifndef wrappers should have the right form. (XXX: not yet implemented)
 #   - Every header file should have one.
 #   - It should be in the vanilla form and have no tokens before/after it so
 #     that GCC and clang can avoid multiple-inclusion.
 #   - The guard name used should be appropriate for the filename.
 # 
 # We check the following things in all files.
 #
-# - #includes should have full paths, e.g. "ion/Ion.h", not "Ion.h". 
+# - #includes should have full paths, e.g. "jit/Ion.h", not "Ion.h".
 #
 # - #includes should use the appropriate form for system headers (<...>) and
 #   local headers ("...").
 #
 # - #includes should be ordered correctly. (XXX: not yet implemented;  see bug
 #   888088)
 #   - Each one should be in the correct section.
 #   - Alphabetical order should be used within sections.
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -69,28 +69,28 @@ VPATH		+= \
 # BEGIN enable non-releasable features
 #
 ifdef NIGHTLY_BUILD
 DEFINES += -DENABLE_PARALLEL_JS
 endif
 
 # Ion
 ifdef ENABLE_ION
-VPATH +=	$(srcdir)/ion
-VPATH +=	$(srcdir)/ion/shared
+VPATH +=	$(srcdir)/jit
+VPATH +=	$(srcdir)/jit/shared
 
 ifeq (86, $(findstring 86,$(TARGET_CPU)))
 ifeq (x86_64, $(TARGET_CPU))
-VPATH +=	$(srcdir)/ion/x64
+VPATH +=	$(srcdir)/jit/x64
 else
-VPATH +=	$(srcdir)/ion/x86
+VPATH +=	$(srcdir)/jit/x86
 endif
 endif
 ifeq (arm, $(findstring arm, $(TARGET_CPU)))
-VPATH +=	$(srcdir)/ion/arm
+VPATH +=	$(srcdir)/jit/arm
 endif
 endif #ENABLE_ION
 
 ###############################################
 # BEGIN include sources for the Nitro assembler
 #
 
 VPATH += 	$(srcdir)/assembler \
--- a/js/src/assembler/assembler/AssemblerBuffer.h
+++ b/js/src/assembler/assembler/AssemblerBuffer.h
@@ -38,17 +38,17 @@
 #include <limits.h>
 #include "assembler/jit/ExecutableAllocator.h"
 #include "assembler/wtf/Assertions.h"
 
 #include <stdarg.h>
 #include "jsfriendapi.h"
 #include "jsopcode.h"
 
-#include "ion/IonSpewer.h"
+#include "jit/IonSpewer.h"
 #include "js/RootingAPI.h"
 
 #define PRETTY_PRINT_OFFSET(os) (((os)<0)?"-":""), (((os)<0)?-(os):(os))
 
 #define FIXME_INSN_PRINTING                                 \
     do {                                                    \
         spew("FIXME insn printing %s:%d",                   \
              __FILE__, __LINE__);                           \
--- a/js/src/builtin/ParallelArray.h
+++ b/js/src/builtin/ParallelArray.h
@@ -6,17 +6,17 @@
 
 #ifndef builtin_ParallelArray_h
 #define builtin_ParallelArray_h
 
 #include "jsapi.h"
 #include "jscntxt.h"
 #include "jsobj.h"
 
-#include "ion/Ion.h"
+#include "jit/Ion.h"
 #include "vm/ForkJoin.h"
 #include "vm/ThreadPool.h"
 
 namespace js {
 
 class ParallelArrayObject : public JSObject
 {
     static Class protoClass;
--- a/js/src/builtin/TestingFunctions.cpp
+++ b/js/src/builtin/TestingFunctions.cpp
@@ -9,18 +9,18 @@
 #include "jsapi.h"
 #include "jscntxt.h"
 #include "jsfriendapi.h"
 #include "jsgc.h"
 #include "jsobj.h"
 #include "jsprf.h"
 #include "jswrapper.h"
 
-#include "ion/AsmJS.h"
-#include "ion/AsmJSLink.h"
+#include "jit/AsmJS.h"
+#include "jit/AsmJSLink.h"
 #include "vm/ForkJoin.h"
 #include "vm/Interpreter.h"
 
 #include "vm/ObjectImpl-inl.h"
 
 using namespace js;
 using namespace JS;
 
--- a/js/src/config/check_spidermonkey_style.py
+++ b/js/src/config/check_spidermonkey_style.py
@@ -16,17 +16,17 @@
 # - #ifndef wrappers should have the right form. (XXX: not yet implemented)
 #   - Every header file should have one.
 #   - It should be in the vanilla form and have no tokens before/after it so
 #     that GCC and clang can avoid multiple-inclusion.
 #   - The guard name used should be appropriate for the filename.
 # 
 # We check the following things in all files.
 #
-# - #includes should have full paths, e.g. "ion/Ion.h", not "Ion.h". 
+# - #includes should have full paths, e.g. "jit/Ion.h", not "Ion.h".
 #
 # - #includes should use the appropriate form for system headers (<...>) and
 #   local headers ("...").
 #
 # - #includes should be ordered correctly. (XXX: not yet implemented;  see bug
 #   888088)
 #   - Each one should be in the correct section.
 #   - Alphabetical order should be used within sections.
--- a/js/src/frontend/BytecodeCompiler.cpp
+++ b/js/src/frontend/BytecodeCompiler.cpp
@@ -7,17 +7,17 @@
 #include "frontend/BytecodeCompiler.h"
 
 #include "jsscript.h"
 
 #include "frontend/BytecodeEmitter.h"
 #include "frontend/FoldConstants.h"
 #include "frontend/NameFunctions.h"
 #include "frontend/Parser.h"
-#include "ion/AsmJSLink.h"
+#include "jit/AsmJSLink.h"
 #include "vm/GlobalObject.h"
 
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
 #include "frontend/ParseMaps-inl.h"
 
 using namespace js;
--- a/js/src/frontend/BytecodeEmitter.cpp
+++ b/js/src/frontend/BytecodeEmitter.cpp
@@ -23,17 +23,17 @@
 #include "jsnum.h"
 #include "jsopcode.h"
 #include "jsscript.h"
 #include "jstypes.h"
 #include "jsutil.h"
 
 #include "frontend/Parser.h"
 #include "frontend/TokenStream.h"
-#include "ion/AsmJSLink.h"
+#include "jit/AsmJSLink.h"
 #include "vm/Debugger.h"
 
 #include "jsatominlines.h"
 #include "jsfuninlines.h"
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
 #include "frontend/ParseMaps-inl.h"
--- a/js/src/frontend/Parser.cpp
+++ b/js/src/frontend/Parser.cpp
@@ -28,17 +28,17 @@
 #include "jsscript.h"
 #include "jstypes.h"
 #include "jsversion.h"
 
 #include "frontend/BytecodeCompiler.h"
 #include "frontend/FoldConstants.h"
 #include "frontend/ParseMaps.h"
 #include "frontend/TokenStream.h"
-#include "ion/AsmJS.h"
+#include "jit/AsmJS.h"
 #include "vm/NumericConversions.h"
 #include "vm/RegExpStatics.h"
 #include "vm/Shape.h"
 
 #include "jsatominlines.h"
 #include "jsfuninlines.h"
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
--- a/js/src/gc/Marking.cpp
+++ b/js/src/gc/Marking.cpp
@@ -3,17 +3,17 @@
  * 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/. */
 
 #include "gc/Marking.h"
 
 #include "mozilla/DebugOnly.h"
 
-#include "ion/IonCode.h"
+#include "jit/IonCode.h"
 #include "vm/Shape.h"
 #include "vm/TypedArrayObject.h"
 
 #include "jscompartmentinlines.h"
 #include "jsinferinlines.h"
 
 #include "gc/Nursery-inl.h"
 #include "vm/Shape-inl.h"
--- a/js/src/gc/Marking.h
+++ b/js/src/gc/Marking.h
@@ -7,17 +7,17 @@
 #ifndef gc_Marking_h
 #define gc_Marking_h
 
 #include "jsgc.h"
 #include "jslock.h"
 
 #include "gc/Barrier.h"
 #include "gc/Nursery.h"
-#include "ion/IonCode.h"
+#include "jit/IonCode.h"
 
 extern "C" {
 struct JSContext;
 class JSFunction;
 class JSObject;
 class JSScript;
 }
 
--- a/js/src/gc/RootMarking.cpp
+++ b/js/src/gc/RootMarking.cpp
@@ -18,18 +18,18 @@
 #include "jsprf.h"
 #include "jswatchpoint.h"
 
 #include "builtin/MapObject.h"
 #include "frontend/BytecodeCompiler.h"
 #include "gc/GCInternals.h"
 #include "gc/Marking.h"
 #ifdef JS_ION
-# include "ion/IonFrameIterator.h"
-# include "ion/IonMacroAssembler.h"
+# include "jit/IonFrameIterator.h"
+# include "jit/IonMacroAssembler.h"
 #endif
 #include "js/HashTable.h"
 #include "vm/Debugger.h"
 
 #include "jsgcinlines.h"
 #include "jsobjinlines.h"
 
 using namespace js;
--- a/js/src/gc/Zone.cpp
+++ b/js/src/gc/Zone.cpp
@@ -4,19 +4,19 @@
  * 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/. */
 
 #include "gc/Zone.h"
 
 #include "jsgc.h"
 
 #ifdef JS_ION
-#include "ion/BaselineJIT.h"
-#include "ion/Ion.h"
-#include "ion/IonCompartment.h"
+#include "jit/BaselineJIT.h"
+#include "jit/Ion.h"
+#include "jit/IonCompartment.h"
 #endif
 #include "vm/Debugger.h"
 #include "vm/Runtime.h"
 
 #include "jsgcinlines.h"
 
 #include "vm/ObjectImpl-inl.h"
 
rename from js/src/ion/AliasAnalysis.cpp
rename to js/src/jit/AliasAnalysis.cpp
--- a/js/src/ion/AliasAnalysis.cpp
+++ b/js/src/jit/AliasAnalysis.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/AliasAnalysis.h"
+#include "jit/AliasAnalysis.h"
 
 #include <stdio.h>
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::Array;
 
 namespace {
 
rename from js/src/ion/AliasAnalysis.h
rename to js/src/jit/AliasAnalysis.h
--- a/js/src/ion/AliasAnalysis.h
+++ b/js/src/jit/AliasAnalysis.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_AliasAnalysis_h
-#define ion_AliasAnalysis_h
+#ifndef jit_AliasAnalysis_h
+#define jit_AliasAnalysis_h
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 class MIRGraph;
 
 typedef Vector<MDefinition *, 4, IonAllocPolicy> InstructionVector;
 
@@ -54,9 +54,9 @@ class AliasAnalysis
   public:
     AliasAnalysis(MIRGenerator *mir, MIRGraph &graph);
     bool analyze();
 };
 
 } // namespace js
 } // namespace ion
 
-#endif /* ion_AliasAnalysis_h */
+#endif /* jit_AliasAnalysis_h */
rename from js/src/ion/AsmJS.cpp
rename to js/src/jit/AsmJS.cpp
--- a/js/src/ion/AsmJS.cpp
+++ b/js/src/jit/AsmJS.cpp
@@ -1,32 +1,32 @@
 /* -*- 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/. */
 
-#include "ion/AsmJS.h"
+#include "jit/AsmJS.h"
 
 #include "mozilla/Move.h"
 
 #ifdef MOZ_VTUNE
 # include "vtune/VTuneWrapper.h"
 #endif
 
 #include "jsmath.h"
 #include "jsworkers.h"
 #include "prmjtime.h"
 
 #include "frontend/Parser.h"
-#include "ion/AsmJSModule.h"
-#include "ion/CodeGenerator.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/PerfSpewer.h"
+#include "jit/AsmJSModule.h"
+#include "jit/CodeGenerator.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/PerfSpewer.h"
 
 #include "jsfuninlines.h"
 
 #include "frontend/ParseMaps-inl.h"
 #include "frontend/ParseNode-inl.h"
 
 using namespace js;
 using namespace js::frontend;
rename from js/src/ion/AsmJS.h
rename to js/src/jit/AsmJS.h
--- a/js/src/ion/AsmJS.h
+++ b/js/src/jit/AsmJS.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_AsmJS_h
-#define ion_AsmJS_h
+#ifndef jit_AsmJS_h
+#define jit_AsmJS_h
 
 #include "jsapi.h"
 
 namespace js {
 
 class AsmJSModule;
 class SPSProfiler;
 namespace frontend {
@@ -97,9 +97,9 @@ IsAsmJSCompilationAvailable(JSContext *c
     args.rval().set(BooleanValue(false));
     return true;
 }
 
 #endif // JS_ION
 
 } // namespace js
 
-#endif // ion_AsmJS_h
+#endif // jit_AsmJS_h
rename from js/src/ion/AsmJSLink.cpp
rename to js/src/jit/AsmJSLink.cpp
--- a/js/src/ion/AsmJSLink.cpp
+++ b/js/src/jit/AsmJSLink.cpp
@@ -1,29 +1,29 @@
 /* -*- 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/. */
 
-#include "ion/AsmJSLink.h"
+#include "jit/AsmJSLink.h"
 
 #ifdef MOZ_VTUNE
 # include "vtune/VTuneWrapper.h"
 #endif
 
 #include "jscntxt.h"
 #include "jsmath.h"
 #include "jswrapper.h"
 
 #include "frontend/BytecodeCompiler.h"
-#include "ion/AsmJSModule.h"
-#include "ion/Ion.h"
+#include "jit/AsmJSModule.h"
+#include "jit/Ion.h"
 #ifdef JS_ION_PERF
-# include "ion/PerfSpewer.h"
+# include "jit/PerfSpewer.h"
 #endif
 
 #include "jsfuninlines.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::IsNaN;
rename from js/src/ion/AsmJSLink.h
rename to js/src/jit/AsmJSLink.h
--- a/js/src/ion/AsmJSLink.h
+++ b/js/src/jit/AsmJSLink.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_AsmJSLink_h
-#define ion_AsmJSLink_h
+#ifndef jit_AsmJSLink_h
+#define jit_AsmJSLink_h
 
 #include "jsapi.h"
 
 namespace js {
 
 #ifdef JS_ION
 
 // Create a new JSFunction to replace originalFun as the representation of the
@@ -55,9 +55,9 @@ IsAsmJSModule(JSContext *cx, unsigned ar
     args.rval().set(BooleanValue(false));
     return true;
 }
 
 #endif // JS_ION
 
 } // namespace js
 
-#endif // ion_AsmJS_h
+#endif // jit_AsmJS_h
rename from js/src/ion/AsmJSModule.cpp
rename to js/src/jit/AsmJSModule.cpp
--- a/js/src/ion/AsmJSModule.cpp
+++ b/js/src/jit/AsmJSModule.cpp
@@ -1,16 +1,16 @@
 /* -*- 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/. */
 
-#include "ion/AsmJSModule.h"
-#include "ion/IonCode.h"
+#include "jit/AsmJSModule.h"
+#include "jit/IonCode.h"
 
 #include "jsobjinlines.h"
 
 using namespace js;
 
 static void AsmJSModuleObject_finalize(FreeOp *fop, JSObject *obj);
 static void AsmJSModuleObject_trace(JSTracer *trc, JSObject *obj);
 
rename from js/src/ion/AsmJSModule.h
rename to js/src/jit/AsmJSModule.h
--- a/js/src/ion/AsmJSModule.h
+++ b/js/src/jit/AsmJSModule.h
@@ -1,31 +1,31 @@
 /* -*- 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 ion_AsmJSModule_h
-#define ion_AsmJSModule_h
+#ifndef jit_AsmJSModule_h
+#define jit_AsmJSModule_h
 
 #ifdef JS_ION
 
 #include "mozilla/MathAlgorithms.h"
 
 #include "jsfriendapi.h"
 #include "jsscript.h"
 
 #include "gc/Marking.h"
-#include "ion/AsmJS.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/AsmJS.h"
+#include "jit/IonMacroAssembler.h"
 #if defined(JS_ION_PERF)
-# include "ion/PerfSpewer.h"
+# include "jit/PerfSpewer.h"
 #endif
-#include "ion/RegisterSets.h"
+#include "jit/RegisterSets.h"
 
 namespace js {
 
 // These EcmaScript-defined coercions form the basis of the asm.js type system.
 enum AsmJSCoercion
 {
     AsmJS_ToInt32,
     AsmJS_ToNumber
@@ -706,9 +706,9 @@ IsAsmJSModuleObject(JSObject *obj);
 // 'trace' and the destructor on finalization.
 extern AsmJSModule &
 AsmJSModuleObjectToModule(JSObject *obj);
 
 }  // namespace js
 
 #endif  // JS_ION
 
-#endif /* ion_AsmJSModule_h */
+#endif /* jit_AsmJSModule_h */
rename from js/src/ion/AsmJSSignalHandlers.cpp
rename to js/src/jit/AsmJSSignalHandlers.cpp
--- a/js/src/ion/AsmJSSignalHandlers.cpp
+++ b/js/src/jit/AsmJSSignalHandlers.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/AsmJSSignalHandlers.h"
+#include "jit/AsmJSSignalHandlers.h"
 
 #include "jscntxt.h"
 
 #include "assembler/assembler/MacroAssembler.h"
-#include "ion/AsmJSModule.h"
+#include "jit/AsmJSModule.h"
 
 #include "vm/ObjectImpl-inl.h"
 
 using namespace js;
 using namespace js::ion;
 using namespace mozilla;
 
 #if defined(XP_WIN)
rename from js/src/ion/AsmJSSignalHandlers.h
rename to js/src/jit/AsmJSSignalHandlers.h
--- a/js/src/ion/AsmJSSignalHandlers.h
+++ b/js/src/jit/AsmJSSignalHandlers.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_AsmJSSignalHandlers_h
-#define ion_AsmJSSignalHandlers_h
+#ifndef jit_AsmJSSignalHandlers_h
+#define jit_AsmJSSignalHandlers_h
 
 struct JSRuntime;
 
 #ifdef XP_MACOSX
 # include <mach/mach.h>
 # include <pthread.h>
 #endif
 
@@ -44,9 +44,9 @@ class AsmJSMachExceptionHandler
     bool install(JSRuntime *rt);
     void clearCurrentThread();
     void setCurrentThread();
 };
 #endif
 
 } // namespace js
 
-#endif // ion_AsmJSSignalHandlers_h
+#endif // jit_AsmJSSignalHandlers_h
rename from js/src/ion/BacktrackingAllocator.cpp
rename to js/src/jit/BacktrackingAllocator.cpp
--- a/js/src/ion/BacktrackingAllocator.cpp
+++ b/js/src/jit/BacktrackingAllocator.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/BacktrackingAllocator.h"
+#include "jit/BacktrackingAllocator.h"
 
 #include "jsprf.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
rename from js/src/ion/BacktrackingAllocator.h
rename to js/src/jit/BacktrackingAllocator.h
--- a/js/src/ion/BacktrackingAllocator.h
+++ b/js/src/jit/BacktrackingAllocator.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_BacktrackingAllocator_h
-#define ion_BacktrackingAllocator_h
+#ifndef jit_BacktrackingAllocator_h
+#define jit_BacktrackingAllocator_h
 
 #include "mozilla/Array.h"
 
 #include "ds/PriorityQueue.h"
 #include "ds/SplayTree.h"
-#include "ion/LiveRangeAllocator.h"
+#include "jit/LiveRangeAllocator.h"
 
 // Backtracking priority queue based register allocator based on that described
 // in the following blog post:
 //
 // http://blog.llvm.org/2011/09/greedy-register-allocation-in-llvm-30.html
 
 namespace js {
 namespace ion {
@@ -230,9 +230,9 @@ class BacktrackingAllocator : public Liv
     bool trySplitAfterLastRegisterUse(LiveInterval *interval, bool *success);
     bool splitAtAllRegisterUses(LiveInterval *interval);
     bool splitAcrossCalls(LiveInterval *interval);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_BacktrackingAllocator_h */
+#endif /* jit_BacktrackingAllocator_h */
rename from js/src/ion/Bailouts.cpp
rename to js/src/jit/Bailouts.cpp
--- a/js/src/ion/Bailouts.cpp
+++ b/js/src/jit/Bailouts.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
-#include "ion/Bailouts.h"
+#include "jit/Bailouts.h"
 
 #include "jsanalyze.h"
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsinfer.h"
 
-#include "ion/BaselineJIT.h"
-#include "ion/Ion.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonSpewer.h"
-#include "ion/SnapshotReader.h"
+#include "jit/BaselineJIT.h"
+#include "jit/Ion.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonSpewer.h"
+#include "jit/SnapshotReader.h"
 #include "vm/Interpreter.h"
 
 #include "vm/Stack-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 // These constructor are exactly the same except for the type of the iterator
rename from js/src/ion/Bailouts.h
rename to js/src/jit/Bailouts.h
--- a/js/src/ion/Bailouts.h
+++ b/js/src/jit/Bailouts.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_Bailouts_h
-#define ion_Bailouts_h
+#ifndef jit_Bailouts_h
+#define jit_Bailouts_h
 
 #include "jstypes.h"
 
-#include "ion/IonFrameIterator.h"
-#include "ion/IonFrames.h"
+#include "jit/IonFrameIterator.h"
+#include "jit/IonFrames.h"
 #include "vm/Stack.h"
 
 namespace js {
 namespace ion {
 
 // A "bailout" is a condition in which we need to recover an interpreter frame
 // from an IonFrame. Bailouts can happen for the following reasons:
 //   (1) A deoptimization guard, for example, an add overflows or a type check
@@ -173,9 +173,9 @@ uint32_t ExceptionHandlerBailout(JSConte
 
 uint32_t FinishBailoutToBaseline(BaselineBailoutInfo *bailoutInfo);
 
 bool CheckFrequentBailouts(JSContext *cx, JSScript *script);
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_Bailouts_h */
+#endif /* jit_Bailouts_h */
rename from js/src/ion/BaselineBailouts.cpp
rename to js/src/jit/BaselineBailouts.cpp
--- a/js/src/ion/BaselineBailouts.cpp
+++ b/js/src/jit/BaselineBailouts.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/CompileInfo.h"
-#include "ion/IonSpewer.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonSpewer.h"
 
 #include "jsfuninlines.h"
 
-#include "ion/IonFrames-inl.h"
+#include "jit/IonFrames-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 // BaselineStackBuilder may reallocate its buffer if the current one is too
 // small. To avoid dangling pointers, BufferPointer represents a pointer into
 // this buffer as a pointer to the header and a fixed offset.
 template <typename T>
rename from js/src/ion/BaselineCompiler.cpp
rename to js/src/jit/BaselineCompiler.cpp
--- a/js/src/ion/BaselineCompiler.cpp
+++ b/js/src/jit/BaselineCompiler.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/FixedList.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/VMFunctions.h"
+#include "jit/BaselineCompiler.h"
+
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/FixedList.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/VMFunctions.h"
 
 #include "vm/Interpreter-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompiler::BaselineCompiler(JSContext *cx, HandleScript script)
   : BaselineCompilerSpecific(cx, script)
rename from js/src/ion/BaselineCompiler.h
rename to js/src/jit/BaselineCompiler.h
--- a/js/src/ion/BaselineCompiler.h
+++ b/js/src/jit/BaselineCompiler.h
@@ -1,35 +1,35 @@
 /* -*- 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 ion_BaselineCompiler_h
-#define ion_BaselineCompiler_h
+#ifndef jit_BaselineCompiler_h
+#define jit_BaselineCompiler_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsinfer.h"
 
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/BytecodeAnalysis.h"
-#include "ion/FixedList.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/IonCode.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/BytecodeAnalysis.h"
+#include "jit/FixedList.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/IonCode.h"
 #if defined(JS_CPU_X86)
-# include "ion/x86/BaselineCompiler-x86.h"
+# include "jit/x86/BaselineCompiler-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/BaselineCompiler-x64.h"
+# include "jit/x64/BaselineCompiler-x64.h"
 #else
-# include "ion/arm/BaselineCompiler-arm.h"
+# include "jit/arm/BaselineCompiler-arm.h"
 #endif
 #include "vm/Interpreter.h"
 
 namespace js {
 namespace ion {
 
 #define OPCODE_LIST(_)         \
     _(JSOP_NOP)                \
@@ -265,9 +265,9 @@ class BaselineCompiler : public Baseline
     Address getScopeCoordinateAddress(Register reg);
 };
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineCompiler_h */
+#endif /* jit_BaselineCompiler_h */
rename from js/src/ion/BaselineFrame-inl.h
rename to js/src/jit/BaselineFrame-inl.h
--- a/js/src/ion/BaselineFrame-inl.h
+++ b/js/src/jit/BaselineFrame-inl.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_BaselineFrame_inl_h
-#define ion_BaselineFrame_inl_h
+#ifndef jit_BaselineFrame_inl_h
+#define jit_BaselineFrame_inl_h
 
 #ifdef JS_ION
 
-#include "ion/BaselineFrame.h"
+#include "jit/BaselineFrame.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/IonFrames.h"
+#include "jit/IonFrames.h"
 
 #include "vm/ScopeObject-inl.h"
 
 namespace js {
 namespace ion {
 
 inline void
 BaselineFrame::pushOnScopeChain(ScopeObject &scope)
@@ -80,9 +80,9 @@ BaselineFrame::callObj() const
     return obj->as<CallObject>();
 }
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineFrame_inl_h */
+#endif /* jit_BaselineFrame_inl_h */
rename from js/src/ion/BaselineFrame.cpp
rename to js/src/jit/BaselineFrame.cpp
--- a/js/src/ion/BaselineFrame.cpp
+++ b/js/src/jit/BaselineFrame.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/BaselineFrame-inl.h"
+#include "jit/BaselineFrame-inl.h"
 
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/Ion.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/Ion.h"
 #include "vm/Debugger.h"
 #include "vm/ScopeObject.h"
 
-#include "ion/IonFrames-inl.h"
+#include "jit/IonFrames-inl.h"
 #include "vm/Stack-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 void
 BaselineFrame::trace(JSTracer *trc)
 {
rename from js/src/ion/BaselineFrame.h
rename to js/src/jit/BaselineFrame.h
--- a/js/src/ion/BaselineFrame.h
+++ b/js/src/jit/BaselineFrame.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_BaselineFrame_h
-#define ion_BaselineFrame_h
+#ifndef jit_BaselineFrame_h
+#define jit_BaselineFrame_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/IonFrames.h"
+#include "jit/IonFrames.h"
 #include "vm/Stack.h"
 
 namespace js {
 namespace ion {
 
 // The stack looks like this, fp is the frame pointer:
 //
 // fp+y   arguments
@@ -398,9 +398,9 @@ class BaselineFrame
 // Ensure the frame is 8-byte aligned (required on ARM).
 JS_STATIC_ASSERT(((sizeof(BaselineFrame) + BaselineFrame::FramePointerOffset) % 8) == 0);
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineFrame_h */
+#endif /* jit_BaselineFrame_h */
rename from js/src/ion/BaselineFrameInfo.cpp
rename to js/src/jit/BaselineFrameInfo.cpp
--- a/js/src/ion/BaselineFrameInfo.cpp
+++ b/js/src/jit/BaselineFrameInfo.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/BaselineFrameInfo.h"
+#include "jit/BaselineFrameInfo.h"
 
 #include "jsanalyze.h"
 
-#include "ion/IonSpewer.h"
-#include "ion/shared/BaselineCompiler-shared.h"
+#include "jit/IonSpewer.h"
+#include "jit/shared/BaselineCompiler-shared.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 FrameInfo::init() {
     // One slot is always needed for this/arguments type checks.
     size_t nstack = Max(script->nslots - script->nfixed, 1);
rename from js/src/ion/BaselineFrameInfo.h
rename to js/src/jit/BaselineFrameInfo.h
--- a/js/src/ion/BaselineFrameInfo.h
+++ b/js/src/jit/BaselineFrameInfo.h
@@ -1,28 +1,28 @@
 /* -*- 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 ion_BaselineFrameInfo_h
-#define ion_BaselineFrameInfo_h
+#ifndef jit_BaselineFrameInfo_h
+#define jit_BaselineFrameInfo_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineJIT.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/BytecodeAnalysis.h"
-#include "ion/FixedList.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineJIT.h"
+#include "jit/BaselineRegisters.h"
+#include "jit/BytecodeAnalysis.h"
+#include "jit/FixedList.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 // FrameInfo overview.
 //
 // FrameInfo is used by the compiler to track values stored in the frame. This
 // includes locals, arguments and stack values. Locals and arguments are always
@@ -328,9 +328,9 @@ class FrameInfo
 #endif
 };
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineFrameInfo_h */
+#endif /* jit_BaselineFrameInfo_h */
rename from js/src/ion/BaselineHelpers.h
rename to js/src/jit/BaselineHelpers.h
--- a/js/src/ion/BaselineHelpers.h
+++ b/js/src/jit/BaselineHelpers.h
@@ -1,30 +1,30 @@
 /* -*- 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 ion_BaselineHelpers_h
-#define ion_BaselineHelpers_h
+#ifndef jit_BaselineHelpers_h
+#define jit_BaselineHelpers_h
 
 #ifdef JS_ION
 
 #if defined(JS_CPU_X86)
-# include "ion/x86/BaselineHelpers-x86.h"
+# include "jit/x86/BaselineHelpers-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/BaselineHelpers-x64.h"
+# include "jit/x64/BaselineHelpers-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/BaselineHelpers-arm.h"
+# include "jit/arm/BaselineHelpers-arm.h"
 #else
 # error "Unknown architecture!"
 #endif
 
 namespace js {
 namespace ion {
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineHelpers_h */
+#endif /* jit_BaselineHelpers_h */
rename from js/src/ion/BaselineIC.cpp
rename to js/src/jit/BaselineIC.cpp
--- a/js/src/ion/BaselineIC.cpp
+++ b/js/src/jit/BaselineIC.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/BaselineIC.h"
+#include "jit/BaselineIC.h"
 
 #include "builtin/Eval.h"
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineJIT.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/VMFunctions.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineJIT.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/VMFunctions.h"
 
 #include "jsboolinlines.h"
 
 #include "vm/Interpreter-inl.h"
 
 namespace js {
 namespace ion {
 
rename from js/src/ion/BaselineIC.h
rename to js/src/jit/BaselineIC.h
--- a/js/src/ion/BaselineIC.h
+++ b/js/src/jit/BaselineIC.h
@@ -1,28 +1,28 @@
 /* -*- 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 ion_BaselineIC_h
-#define ion_BaselineIC_h
+#ifndef jit_BaselineIC_h
+#define jit_BaselineIC_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsgc.h"
 #include "jsopcode.h"
 #include "jsproxy.h"
 
 #include "gc/Heap.h"
-#include "ion/BaselineJIT.h"
-#include "ion/BaselineRegisters.h"
+#include "jit/BaselineJIT.h"
+#include "jit/BaselineRegisters.h"
 
 namespace js {
 namespace ion {
 
 //
 // Baseline Inline Caches are polymorphic caches that aggressively
 // share their stub code.
 //
@@ -5610,9 +5610,9 @@ class ICRetSub_Resume : public ICStub
     };
 };
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineIC_h */
+#endif /* jit_BaselineIC_h */
rename from js/src/ion/BaselineInspector.cpp
rename to js/src/jit/BaselineInspector.cpp
--- a/js/src/ion/BaselineInspector.cpp
+++ b/js/src/jit/BaselineInspector.cpp
@@ -1,17 +1,17 @@
 /* -*- 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/. */
 
-#include "ion/BaselineInspector.h"
+#include "jit/BaselineInspector.h"
 
-#include "ion/BaselineIC.h"
+#include "jit/BaselineIC.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 SetElemICInspector::sawOOBDenseWrite() const
 {
     if (!icEntry_)
rename from js/src/ion/BaselineInspector.h
rename to js/src/jit/BaselineInspector.h
--- a/js/src/ion/BaselineInspector.h
+++ b/js/src/jit/BaselineInspector.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_BaselineInspector_h
-#define ion_BaselineInspector_h
+#ifndef jit_BaselineInspector_h
+#define jit_BaselineInspector_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/MIR.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/MIR.h"
 
 namespace js {
 namespace ion {
 
 class BaselineInspector;
 
 class ICInspector
 {
@@ -111,9 +111,9 @@ class BaselineInspector
     bool hasSeenDoubleResult(jsbytecode *pc);
 };
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineInspector_h */
+#endif /* jit_BaselineInspector_h */
rename from js/src/ion/BaselineJIT.cpp
rename to js/src/jit/BaselineJIT.cpp
--- a/js/src/ion/BaselineJIT.cpp
+++ b/js/src/jit/BaselineJIT.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
-#include "ion/BaselineJIT.h"
+#include "jit/BaselineJIT.h"
 
 #include "mozilla/MemoryReporting.h"
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineIC.h"
-#include "ion/CompileInfo.h"
-#include "ion/IonSpewer.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineIC.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonSpewer.h"
 
 #include "jsopcodeinlines.h"
 
-#include "ion/IonFrames-inl.h"
+#include "jit/IonFrames-inl.h"
 #include "vm/Stack-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 /* static */ PCMappingSlotInfo::SlotLocation
 PCMappingSlotInfo::ToSlotLocation(const StackValue *stackVal)
 {
rename from js/src/ion/BaselineJIT.h
rename to js/src/jit/BaselineJIT.h
--- a/js/src/ion/BaselineJIT.h
+++ b/js/src/jit/BaselineJIT.h
@@ -1,28 +1,28 @@
 /* -*- 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 ion_BaselineJIT_h
-#define ion_BaselineJIT_h
+#ifndef jit_BaselineJIT_h
+#define jit_BaselineJIT_h
 
 #ifdef JS_ION
 
 #include "mozilla/MemoryReporting.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
 #include "ds/LifoAlloc.h"
-#include "ion/Bailouts.h"
-#include "ion/IonCode.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/Bailouts.h"
+#include "jit/IonCode.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 class StackValue;
 class ICEntry;
 class ICStub;
 
@@ -334,9 +334,9 @@ BailoutIonToBaseline(JSContext *cx, JitA
 void
 MarkActiveBaselineScripts(Zone *zone);
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineJIT_h */
+#endif /* jit_BaselineJIT_h */
rename from js/src/ion/BaselineRegisters.h
rename to js/src/jit/BaselineRegisters.h
--- a/js/src/ion/BaselineRegisters.h
+++ b/js/src/jit/BaselineRegisters.h
@@ -1,28 +1,28 @@
 /* -*- 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 ion_BaselineRegisters_h
-#define ion_BaselineRegisters_h
+#ifndef jit_BaselineRegisters_h
+#define jit_BaselineRegisters_h
 
 #ifdef JS_ION
 
 #if defined(JS_CPU_X86)
-# include "ion/x86/BaselineRegisters-x86.h"
+# include "jit/x86/BaselineRegisters-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/BaselineRegisters-x64.h"
+# include "jit/x64/BaselineRegisters-x64.h"
 #else
-# include "ion/arm/BaselineRegisters-arm.h"
+# include "jit/arm/BaselineRegisters-arm.h"
 #endif
 
 namespace js {
 namespace ion {
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_BaselineRegisters_h */
+#endif /* jit_BaselineRegisters_h */
rename from js/src/ion/BitSet.cpp
rename to js/src/jit/BitSet.cpp
--- a/js/src/ion/BitSet.cpp
+++ b/js/src/jit/BitSet.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/BitSet.h"
+#include "jit/BitSet.h"
 
 #include "jsutil.h"
 
 using namespace js;
 using namespace js::ion;
 
 BitSet *
 BitSet::New(unsigned int max)
rename from js/src/ion/BitSet.h
rename to js/src/jit/BitSet.h
--- a/js/src/ion/BitSet.h
+++ b/js/src/jit/BitSet.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_BitSet_h
-#define ion_BitSet_h
+#ifndef jit_BitSet_h
+#define jit_BitSet_h
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/IonAllocPolicy.h"
+#include "jit/IonAllocPolicy.h"
 
 namespace js {
 namespace ion {
 
 // Provides constant time set insertion and removal, and fast linear
 // set operations such as intersection, difference, and union.
 // N.B. All set operations must be performed on sets with the same maximum.
 class BitSet : private TempObject
@@ -166,9 +166,9 @@ class BitSet::Iterator
         JS_ASSERT(index_ <= set_.max_);
         return index_;
     }
 };
 
 }
 }
 
-#endif /* ion_BitSet_h */
+#endif /* jit_BitSet_h */
rename from js/src/ion/BytecodeAnalysis.cpp
rename to js/src/jit/BytecodeAnalysis.cpp
--- a/js/src/ion/BytecodeAnalysis.cpp
+++ b/js/src/jit/BytecodeAnalysis.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/BytecodeAnalysis.h"
+#include "jit/BytecodeAnalysis.h"
 
 #include "jsopcode.h"
 
 #include "jsopcodeinlines.h"
 
 using namespace js;
 using namespace js::ion;
 
rename from js/src/ion/BytecodeAnalysis.h
rename to js/src/jit/BytecodeAnalysis.h
--- a/js/src/ion/BytecodeAnalysis.h
+++ b/js/src/jit/BytecodeAnalysis.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_BytecodeAnalysis_h
-#define ion_BytecodeAnalysis_h
+#ifndef jit_BytecodeAnalysis_h
+#define jit_BytecodeAnalysis_h
 
 #include "jscntxt.h"
 
-#include "ion/IonAllocPolicy.h"
+#include "jit/IonAllocPolicy.h"
 #include "js/Vector.h"
 
 namespace js {
 namespace ion {
 
 // Basic information about bytecodes in the script.  Used to help baseline compilation.
 struct BytecodeInfo
 {
@@ -57,9 +57,9 @@ class BytecodeAnalysis
         return NULL;
     }
 };
 
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_BytecodeAnalysis_h */
+#endif /* jit_BytecodeAnalysis_h */
rename from js/src/ion/C1Spewer.cpp
rename to js/src/jit/C1Spewer.cpp
--- a/js/src/ion/C1Spewer.cpp
+++ b/js/src/jit/C1Spewer.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
 #ifdef DEBUG
 
-#include "ion/C1Spewer.h"
+#include "jit/C1Spewer.h"
 
 #include <stdarg.h>
 #include <time.h>
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/LinearScan.h"
-#include "ion/LIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/LinearScan.h"
+#include "jit/LIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 C1Spewer::init(const char *path)
 {
     spewout_ = fopen(path, "w");
rename from js/src/ion/C1Spewer.h
rename to js/src/jit/C1Spewer.h
--- a/js/src/ion/C1Spewer.h
+++ b/js/src/jit/C1Spewer.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_C1Spewer_h
-#define ion_C1Spewer_h
+#ifndef jit_C1Spewer_h
+#define jit_C1Spewer_h
 
 #ifdef DEBUG
 
 #include "jsscript.h"
 
 #include "js/RootingAPI.h"
 
 namespace js {
@@ -47,9 +47,9 @@ class C1Spewer
     void spewIntervals(FILE *fp, MBasicBlock *block, LinearScanAllocator *regalloc, size_t &nextId);
 };
 
 } // namespace ion
 } // namespace js
 
 #endif /* DEBUG */
 
-#endif /* ion_C1Spewer_h */
+#endif /* jit_C1Spewer_h */
rename from js/src/ion/CodeGenerator.cpp
rename to js/src/jit/CodeGenerator.cpp
--- a/js/src/ion/CodeGenerator.cpp
+++ b/js/src/jit/CodeGenerator.cpp
@@ -1,39 +1,39 @@
 /* -*- 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/. */
 
-#include "ion/CodeGenerator.h"
+#include "jit/CodeGenerator.h"
 
 #include "mozilla/Assertions.h"
 #include "mozilla/Attributes.h"
 #include "mozilla/DebugOnly.h"
 #include "mozilla/Util.h"
 
 #include "jsmath.h"
 #include "jsnum.h"
 
 #include "builtin/Eval.h"
 #include "gc/Nursery.h"
-#include "ion/ExecutionModeInlines.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIRGenerator.h"
-#include "ion/MoveEmitter.h"
-#include "ion/ParallelFunctions.h"
-#include "ion/ParallelSafetyAnalysis.h"
-#include "ion/PerfSpewer.h"
+#include "jit/ExecutionModeInlines.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIRGenerator.h"
+#include "jit/MoveEmitter.h"
+#include "jit/ParallelFunctions.h"
+#include "jit/ParallelSafetyAnalysis.h"
+#include "jit/PerfSpewer.h"
 #include "vm/ForkJoin.h"
 
 #include "jsboolinlines.h"
 
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "jit/shared/CodeGenerator-shared-inl.h"
 #include "vm/Interpreter-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 using mozilla::Maybe;
 
rename from js/src/ion/CodeGenerator.h
rename to js/src/jit/CodeGenerator.h
--- a/js/src/ion/CodeGenerator.h
+++ b/js/src/jit/CodeGenerator.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_CodeGenerator_h
-#define ion_CodeGenerator_h
+#ifndef jit_CodeGenerator_h
+#define jit_CodeGenerator_h
 
-#include "ion/PerfSpewer.h"
+#include "jit/PerfSpewer.h"
 
 #if defined(JS_CPU_X86)
-# include "ion/x86/CodeGenerator-x86.h"
+# include "jit/x86/CodeGenerator-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/CodeGenerator-x64.h"
+# include "jit/x64/CodeGenerator-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/CodeGenerator-arm.h"
+# include "jit/arm/CodeGenerator-arm.h"
 #else
 #error "CPU Not Supported"
 #endif
 
 namespace js {
 namespace ion {
 
 class OutOfLineNewParallelArray;
@@ -350,9 +350,9 @@ class CodeGenerator : public CodeGenerat
     IonScriptCounts *unassociatedScriptCounts_;
 
     PerfSpewer perfSpewer_;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_CodeGenerator_h */
+#endif /* jit_CodeGenerator_h */
rename from js/src/ion/CompactBuffer.h
rename to js/src/jit/CompactBuffer.h
--- a/js/src/ion/CompactBuffer.h
+++ b/js/src/jit/CompactBuffer.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_Compactbuffer_h
-#define ion_Compactbuffer_h
+#ifndef jit_Compactbuffer_h
+#define jit_Compactbuffer_h
 
 #include "jsalloc.h"
 
-#include "ion/IonTypes.h"
+#include "jit/IonTypes.h"
 #include "js/Vector.h"
 
 namespace js {
 namespace ion {
 
 class CompactBufferWriter;
 
 // CompactBuffers are byte streams designed for compressable integers. It has
@@ -152,9 +152,9 @@ CompactBufferReader::CompactBufferReader
   : buffer_(writer.buffer()),
     end_(writer.buffer() + writer.length())
 {
 }
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_Compactbuffer_h */
+#endif /* jit_Compactbuffer_h */
rename from js/src/ion/CompileInfo-inl.h
rename to js/src/jit/CompileInfo-inl.h
--- a/js/src/ion/CompileInfo-inl.h
+++ b/js/src/jit/CompileInfo-inl.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_CompileInfo_inl_h
-#define ion_CompileInfo_inl_h
+#ifndef jit_CompileInfo_inl_h
+#define jit_CompileInfo_inl_h
 
-#include "ion/CompileInfo.h"
+#include "jit/CompileInfo.h"
 
 #include "jsscriptinlines.h"
 
 using namespace js;
 using namespace ion;
 
 inline RegExpObject *
 CompileInfo::getRegExp(jsbytecode *pc) const
@@ -21,9 +21,9 @@ CompileInfo::getRegExp(jsbytecode *pc) c
 }
 
 inline JSFunction *
 CompileInfo::getFunction(jsbytecode *pc) const
 {
     return script_->getFunction(GET_UINT32_INDEX(pc));
 }
 
-#endif /* ion_CompileInfo_inl_h */
+#endif /* jit_CompileInfo_inl_h */
rename from js/src/ion/CompileInfo.h
rename to js/src/jit/CompileInfo.h
--- a/js/src/ion/CompileInfo.h
+++ b/js/src/jit/CompileInfo.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_CompileInfo_h
-#define ion_CompileInfo_h
+#ifndef jit_CompileInfo_h
+#define jit_CompileInfo_h
 
 #include "jsfun.h"
 
-#include "ion/Registers.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 inline unsigned
 StartArgSlot(JSScript *script, JSFunction *fun)
 {
     // First slot is for scope chain.
@@ -238,9 +238,9 @@ class CompileInfo
     jsbytecode *osrPc_;
     bool constructing_;
     ExecutionMode executionMode_;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_CompileInfo_h */
+#endif /* jit_CompileInfo_h */
rename from js/src/ion/CompilerRoot.h
rename to js/src/jit/CompilerRoot.h
--- a/js/src/ion/CompilerRoot.h
+++ b/js/src/jit/CompilerRoot.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_CompilerRoot_h
-#define ion_CompilerRoot_h
+#ifndef jit_CompilerRoot_h
+#define jit_CompilerRoot_h
 
 #ifdef JS_ION
 
 #include "jscntxt.h"
 
-#include "ion/Ion.h"
-#include "ion/IonAllocPolicy.h"
+#include "jit/Ion.h"
+#include "jit/IonAllocPolicy.h"
 #include "js/RootingAPI.h"
 
 namespace js {
 namespace ion {
 
 // Roots a read-only GCThing for the lifetime of a single compilation.
 // Each root is maintained in a linked list that is walked over during tracing.
 // The CompilerRoot must be heap-allocated and may not go out of scope.
@@ -62,9 +62,9 @@ typedef CompilerRoot<PropertyName*> Comp
 typedef CompilerRoot<Shape*> CompilerRootShape;
 typedef CompilerRoot<Value> CompilerRootValue;
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_CompilerRoot_h */
+#endif /* jit_CompilerRoot_h */
rename from js/src/ion/EdgeCaseAnalysis.cpp
rename to js/src/jit/EdgeCaseAnalysis.cpp
--- a/js/src/ion/EdgeCaseAnalysis.cpp
+++ b/js/src/jit/EdgeCaseAnalysis.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/EdgeCaseAnalysis.h"
+#include "jit/EdgeCaseAnalysis.h"
 
 #include <stdio.h>
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 EdgeCaseAnalysis::EdgeCaseAnalysis(MIRGenerator *mir, MIRGraph &graph)
   : mir(mir), graph(graph)
 {
 }
rename from js/src/ion/EdgeCaseAnalysis.h
rename to js/src/jit/EdgeCaseAnalysis.h
--- a/js/src/ion/EdgeCaseAnalysis.h
+++ b/js/src/jit/EdgeCaseAnalysis.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_EdgeCaseAnalysis_h
-#define ion_EdgeCaseAnalysis_h
+#ifndef jit_EdgeCaseAnalysis_h
+#define jit_EdgeCaseAnalysis_h
 
-#include "ion/MIRGenerator.h"
+#include "jit/MIRGenerator.h"
 
 namespace js {
 namespace ion {
 
 class MIRGraph;
 
 class EdgeCaseAnalysis
 {
@@ -23,9 +23,9 @@ class EdgeCaseAnalysis
     EdgeCaseAnalysis(MIRGenerator *mir, MIRGraph &graph);
     bool analyzeLate();
 };
 
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_EdgeCaseAnalysis_h */
+#endif /* jit_EdgeCaseAnalysis_h */
rename from js/src/ion/EffectiveAddressAnalysis.cpp
rename to js/src/jit/EffectiveAddressAnalysis.cpp
--- a/js/src/ion/EffectiveAddressAnalysis.cpp
+++ b/js/src/jit/EffectiveAddressAnalysis.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/EffectiveAddressAnalysis.h"
+#include "jit/EffectiveAddressAnalysis.h"
 
 using namespace js;
 using namespace ion;
 
 static void
 AnalyzeLsh(MBasicBlock *block, MLsh *lsh)
 {
     if (lsh->specialization() != MIRType_Int32)
rename from js/src/ion/EffectiveAddressAnalysis.h
rename to js/src/jit/EffectiveAddressAnalysis.h
--- a/js/src/ion/EffectiveAddressAnalysis.h
+++ b/js/src/jit/EffectiveAddressAnalysis.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_EffectiveAddressAnalysis_h
-#define ion_EffectiveAddressAnalysis_h
+#ifndef jit_EffectiveAddressAnalysis_h
+#define jit_EffectiveAddressAnalysis_h
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 class EffectiveAddressAnalysis
 {
     MIRGraph &graph_;
 
@@ -23,9 +23,9 @@ class EffectiveAddressAnalysis
     {}
 
     bool analyze();
 };
 
 } /* namespace ion */
 } /* namespace js */
 
-#endif /* ion_EffectiveAddressAnalysis_h */
+#endif /* jit_EffectiveAddressAnalysis_h */
rename from js/src/ion/ExecutionModeInlines.h
rename to js/src/jit/ExecutionModeInlines.h
--- a/js/src/ion/ExecutionModeInlines.h
+++ b/js/src/jit/ExecutionModeInlines.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_ExecutionModeInlines_h
-#define ion_ExecutionModeInlines_h
+#ifndef jit_ExecutionModeInlines_h
+#define jit_ExecutionModeInlines_h
 
 #ifdef JS_ION
 
-#include "ion/CompileInfo.h"
+#include "jit/CompileInfo.h"
 
 namespace js {
 namespace ion {
 
 static inline bool
 HasIonScript(JSScript *script, ExecutionMode cmode)
 {
     switch (cmode) {
@@ -101,9 +101,9 @@ CompilerOutputKind(ExecutionMode cmode)
     MOZ_ASSUME_UNREACHABLE("No such execution mode");
 }
 
 } // namespace ion
 } // namespace js
 
 #endif  // JS_ION
 
-#endif /* ion_ExecutionModeInlines_h */
+#endif /* jit_ExecutionModeInlines_h */
rename from js/src/ion/FixedList.h
rename to js/src/jit/FixedList.h
--- a/js/src/ion/FixedList.h
+++ b/js/src/jit/FixedList.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_FixedList_h
-#define ion_FixedList_h
+#ifndef jit_FixedList_h
+#define jit_FixedList_h
 
 #include <stddef.h>
 
-#include "ion/Ion.h"
-#include "ion/IonAllocPolicy.h"
+#include "jit/Ion.h"
+#include "jit/IonAllocPolicy.h"
 
 namespace js {
 namespace ion {
 
 // List of a fixed length, but the length is unknown until runtime.
 template <typename T>
 class FixedList
 {
@@ -71,9 +71,9 @@ class FixedList
         JS_ASSERT(index < length_);
         return list_[index];
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_FixedList_h */
+#endif /* jit_FixedList_h */
rename from js/src/ion/InlineList.h
rename to js/src/jit/InlineList.h
--- a/js/src/ion/InlineList.h
+++ b/js/src/jit/InlineList.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_InlineList_h
-#define ion_InlineList_h
+#ifndef jit_InlineList_h
+#define jit_InlineList_h
 
 #include "mozilla/DebugOnly.h"
 
 #include "jsutil.h"
 
 namespace js {
 
 template <typename T> class InlineForwardList;
@@ -387,9 +387,9 @@ class InlineListReverseIterator
     }
 
   private:
     Node *iter;
 };
 
 } // namespace js
 
-#endif /* ion_InlineList_h */
+#endif /* jit_InlineList_h */
rename from js/src/ion/Ion.cpp
rename to js/src/jit/Ion.cpp
--- a/js/src/ion/Ion.cpp
+++ b/js/src/jit/Ion.cpp
@@ -1,56 +1,56 @@
 /* -*- 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/. */
 
-#include "ion/Ion.h"
+#include "jit/Ion.h"
 
 #include "mozilla/MemoryReporting.h"
 
 #include "jscompartment.h"
 #include "jsworkers.h"
 #if JS_TRACE_LOGGING
 #include "TraceLogging.h"
 #endif
 
 #include "gc/Marking.h"
-#include "ion/AsmJSModule.h"
-#include "ion/AliasAnalysis.h"
-#include "ion/BacktrackingAllocator.h"
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineInspector.h"
-#include "ion/BaselineJIT.h"
-#include "ion/CodeGenerator.h"
-#include "ion/CompilerRoot.h"
-#include "ion/EdgeCaseAnalysis.h"
-#include "ion/EffectiveAddressAnalysis.h"
-#include "ion/ExecutionModeInlines.h"
-#include "ion/IonAnalysis.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/LICM.h"
-#include "ion/LinearScan.h"
-#include "ion/LIR.h"
-#include "ion/ParallelSafetyAnalysis.h"
-#include "ion/PerfSpewer.h"
-#include "ion/RangeAnalysis.h"
-#include "ion/StupidAllocator.h"
-#include "ion/UnreachableCodeElimination.h"
-#include "ion/ValueNumbering.h"
+#include "jit/AsmJSModule.h"
+#include "jit/AliasAnalysis.h"
+#include "jit/BacktrackingAllocator.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineInspector.h"
+#include "jit/BaselineJIT.h"
+#include "jit/CodeGenerator.h"
+#include "jit/CompilerRoot.h"
+#include "jit/EdgeCaseAnalysis.h"
+#include "jit/EffectiveAddressAnalysis.h"
+#include "jit/ExecutionModeInlines.h"
+#include "jit/IonAnalysis.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/LICM.h"
+#include "jit/LinearScan.h"
+#include "jit/LIR.h"
+#include "jit/ParallelSafetyAnalysis.h"
+#include "jit/PerfSpewer.h"
+#include "jit/RangeAnalysis.h"
+#include "jit/StupidAllocator.h"
+#include "jit/UnreachableCodeElimination.h"
+#include "jit/ValueNumbering.h"
 #if defined(JS_CPU_X86)
-# include "ion/x86/Lowering-x86.h"
+# include "jit/x86/Lowering-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/Lowering-x64.h"
+# include "jit/x64/Lowering-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/Lowering-arm.h"
+# include "jit/arm/Lowering-arm.h"
 #endif
 #include "vm/ForkJoin.h"
 #include "vm/ThreadPool.h"
 
 #include "jscompartmentinlines.h"
 #include "jsgcinlines.h"
 #include "jsinferinlines.h"
 
rename from js/src/ion/Ion.h
rename to js/src/jit/Ion.h
--- a/js/src/ion/Ion.h
+++ b/js/src/jit/Ion.h
@@ -1,27 +1,27 @@
 /* -*- 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 ion_Ion_h
-#define ion_Ion_h
+#ifndef jit_Ion_h
+#define jit_Ion_h
 
 #ifdef JS_ION
 
 #include "mozilla/MemoryReporting.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsinfer.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/IonCode.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonCode.h"
 #include "vm/Interpreter.h"
 
 namespace js {
 namespace ion {
 
 class TempAllocator;
 
 // Possible register allocators which may be used.
@@ -374,9 +374,9 @@ size_t SizeOfIonData(JSScript *script, m
 void DestroyIonScripts(FreeOp *fop, JSScript *script);
 void TraceIonScripts(JSTracer* trc, JSScript *script);
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_Ion_h */
+#endif /* jit_Ion_h */
rename from js/src/ion/IonAllocPolicy.h
rename to js/src/jit/IonAllocPolicy.h
--- a/js/src/ion/IonAllocPolicy.h
+++ b/js/src/jit/IonAllocPolicy.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_IonAllocPolicy_h
-#define ion_IonAllocPolicy_h
+#ifndef jit_IonAllocPolicy_h
+#define jit_IonAllocPolicy_h
 
 #include "mozilla/GuardObjects.h"
 
 #include "jscntxt.h"
 
 #include "ds/LifoAlloc.h"
-#include "ion/InlineList.h"
-#include "ion/Ion.h"
+#include "jit/InlineList.h"
+#include "jit/Ion.h"
 
 namespace js {
 namespace ion {
 
 class TempAllocator
 {
     LifoAllocScope lifoScope_;
 
@@ -156,9 +156,9 @@ class TempObjectPool
     void clear() {
         freed_.clear();
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonAllocPolicy_h */
+#endif /* jit_IonAllocPolicy_h */
rename from js/src/ion/IonAnalysis.cpp
rename to js/src/jit/IonAnalysis.cpp
--- a/js/src/ion/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/IonAnalysis.h"
+#include "jit/IonAnalysis.h"
 
 #include "jsanalyze.h"
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/LIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/LIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 // A critical edge is an edge which is neither its successor's only predecessor
 // nor its predecessor's only successor. Critical edges must be split to
 // prevent copy-insertion and code motion from affecting other edges.
 bool
rename from js/src/ion/IonAnalysis.h
rename to js/src/jit/IonAnalysis.h
--- a/js/src/ion/IonAnalysis.h
+++ b/js/src/jit/IonAnalysis.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_IonAnalysis_h
-#define ion_IonAnalysis_h
+#ifndef jit_IonAnalysis_h
+#define jit_IonAnalysis_h
 
 // This file declares various analysis passes that operate on MIR.
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/MIR.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/MIR.h"
 
 namespace js {
 namespace ion {
 
 class MIRGenerator;
 class MIRGraph;
 
 bool
@@ -122,9 +122,9 @@ class LinearSum
   private:
     Vector<LinearTerm, 2, IonAllocPolicy> terms_;
     int32_t constant_;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonAnalysis_h */
+#endif /* jit_IonAnalysis_h */
rename from js/src/ion/IonBuilder.cpp
rename to js/src/jit/IonBuilder.cpp
--- a/js/src/ion/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -1,34 +1,34 @@
 /* -*- 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/. */
 
-#include "ion/IonBuilder.h"
+#include "jit/IonBuilder.h"
 
 #include "mozilla/DebugOnly.h"
 
 #include "builtin/Eval.h"
 #include "frontend/SourceNotes.h"
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineInspector.h"
-#include "ion/ExecutionModeInlines.h"
-#include "ion/Ion.h"
-#include "ion/IonAnalysis.h"
-#include "ion/IonSpewer.h"
-#include "ion/Lowering.h"
-#include "ion/MIRGraph.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineInspector.h"
+#include "jit/ExecutionModeInlines.h"
+#include "jit/Ion.h"
+#include "jit/IonAnalysis.h"
+#include "jit/IonSpewer.h"
+#include "jit/Lowering.h"
+#include "jit/MIRGraph.h"
 
 #include "jsinferinlines.h"
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
-#include "ion/CompileInfo-inl.h"
+#include "jit/CompileInfo-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 IonBuilder::IonBuilder(JSContext *cx, TempAllocator *temp, MIRGraph *graph,
                        BaselineInspector *inspector, CompileInfo *info, BaselineFrame *baselineFrame,
rename from js/src/ion/IonBuilder.h
rename to js/src/jit/IonBuilder.h
--- a/js/src/ion/IonBuilder.h
+++ b/js/src/jit/IonBuilder.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_IonBuilder_h
-#define ion_IonBuilder_h
+#ifndef jit_IonBuilder_h
+#define jit_IonBuilder_h
 
 #ifdef JS_ION
 
 // This file declares the data structures for building a MIRGraph from a
 // JSScript.
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 class CodeGenerator;
 class CallInfo;
 class BaselineInspector;
 
@@ -828,9 +828,9 @@ bool TypeSetIncludes(types::TypeSet *typ
 
 bool NeedsPostBarrier(CompileInfo &info, MDefinition *value);
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonBuilder_h */
+#endif /* jit_IonBuilder_h */
rename from js/src/ion/IonCaches.cpp
rename to js/src/jit/IonCaches.cpp
--- a/js/src/ion/IonCaches.cpp
+++ b/js/src/jit/IonCaches.cpp
@@ -1,24 +1,24 @@
 /* -*- 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/. */
 
-#include "ion/IonCaches.h"
+#include "jit/IonCaches.h"
 
 #include "mozilla/DebugOnly.h"
 
-#include "ion/CodeGenerator.h"
-#include "ion/Ion.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/PerfSpewer.h"
-#include "ion/VMFunctions.h"
+#include "jit/CodeGenerator.h"
+#include "jit/Ion.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/PerfSpewer.h"
+#include "jit/VMFunctions.h"
 #include "vm/Shape.h"
 
 #include "vm/Interpreter-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
rename from js/src/ion/IonCaches.h
rename to js/src/jit/IonCaches.h
--- a/js/src/ion/IonCaches.h
+++ b/js/src/jit/IonCaches.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_IonCaches_h
-#define ion_IonCaches_h
+#ifndef jit_IonCaches_h
+#define jit_IonCaches_h
 
 #ifdef JS_CPU_ARM
-# include "ion/arm/Assembler-arm.h"
+# include "jit/arm/Assembler-arm.h"
 #endif
-#include "ion/IonCode.h"
-#include "ion/Registers.h"
-#include "ion/shared/Assembler-shared.h"
+#include "jit/IonCode.h"
+#include "jit/Registers.h"
+#include "jit/shared/Assembler-shared.h"
 #include "vm/ForkJoin.h"
 
 class JSFunction;
 class JSScript;
 
 namespace js {
 
 class TypedArrayObject;
@@ -1023,9 +1023,9 @@ class GetElementParIC : public ParallelI
         return *static_cast<ickind##IC *>(this);                        \
     }
 IONCACHE_KIND_LIST(CACHE_CASTS)
 #undef OPCODE_CASTS
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonCaches_h */
+#endif /* jit_IonCaches_h */
rename from js/src/ion/IonCode.h
rename to js/src/jit/IonCode.h
--- a/js/src/ion/IonCode.h
+++ b/js/src/jit/IonCode.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_IonCode_h
-#define ion_IonCode_h
+#ifndef jit_IonCode_h
+#define jit_IonCode_h
 
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/PodOperations.h"
 
 #include "jsinfer.h"
 
 #include "gc/Heap.h"
-#include "ion/IonTypes.h"
+#include "jit/IonTypes.h"
 
 namespace JSC {
     class ExecutablePool;
 }
 
 class JSScript;
 
 namespace js {
@@ -744,9 +744,9 @@ IsMarked(const ion::VMFunction *)
     // It is considered as a root object which is always marked.
     return true;
 }
 
 } // namespace gc
 
 } // namespace js
 
-#endif /* ion_IonCode_h */
+#endif /* jit_IonCode_h */
rename from js/src/ion/IonCompartment.h
rename to js/src/jit/IonCompartment.h
--- a/js/src/ion/IonCompartment.h
+++ b/js/src/jit/IonCompartment.h
@@ -1,26 +1,26 @@
 /* -*- 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 ion_IonCompartment_h
-#define ion_IonCompartment_h
+#ifndef jit_IonCompartment_h
+#define jit_IonCompartment_h
 
 #ifdef JS_ION
 
 #include "mozilla/MemoryReporting.h"
 
 #include "jsweakcache.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/IonCode.h"
-#include "ion/IonFrames.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonCode.h"
+#include "jit/IonFrames.h"
 #include "js/Value.h"
 #include "vm/Stack.h"
 
 namespace js {
 namespace ion {
 
 class FrameSizeClass;
 
@@ -375,9 +375,9 @@ class IonCompartment
 void InvalidateAll(FreeOp *fop, JS::Zone *zone);
 void FinishInvalidation(FreeOp *fop, JSScript *script);
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonCompartment_h */
+#endif /* jit_IonCompartment_h */
rename from js/src/ion/IonFrameIterator-inl.h
rename to js/src/jit/IonFrameIterator-inl.h
--- a/js/src/ion/IonFrameIterator-inl.h
+++ b/js/src/jit/IonFrameIterator-inl.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_IonFrameIterator_inl_h
-#define ion_IonFrameIterator_inl_h
+#ifndef jit_IonFrameIterator_inl_h
+#define jit_IonFrameIterator_inl_h
 
 #ifdef JS_ION
 
-#include "ion/IonFrameIterator.h"
+#include "jit/IonFrameIterator.h"
 
-#include "ion/Bailouts.h"
-#include "ion/BaselineFrame.h"
+#include "jit/Bailouts.h"
+#include "jit/BaselineFrame.h"
 
 namespace js {
 namespace ion {
 
 template <AllowGC allowGC>
 inline
 InlineFrameIteratorMaybeGC<allowGC>::InlineFrameIteratorMaybeGC(
                                                 JSContext *cx, const IonBailoutIterator *iter)
@@ -39,9 +39,9 @@ IonFrameIterator::baselineFrame() const
     return (BaselineFrame *)(fp() - BaselineFrame::FramePointerOffset - BaselineFrame::Size());
 }
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonFrameIterator_inl_h */
+#endif /* jit_IonFrameIterator_inl_h */
rename from js/src/ion/IonFrameIterator.h
rename to js/src/jit/IonFrameIterator.h
--- a/js/src/ion/IonFrameIterator.h
+++ b/js/src/jit/IonFrameIterator.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_IonFrameIterator_h
-#define ion_IonFrameIterator_h
+#ifndef jit_IonFrameIterator_h
+#define jit_IonFrameIterator_h
 
 #ifdef JS_ION
 
 #include "jsscript.h"
 #include "jstypes.h"
 
-#include "ion/IonCode.h"
-#include "ion/SnapshotReader.h"
+#include "jit/IonCode.h"
+#include "jit/SnapshotReader.h"
 
 namespace js {
     class ActivationIterator;
 };
 
 namespace js {
 namespace ion {
 
@@ -496,9 +496,9 @@ class InlineFrameIteratorMaybeGC
 typedef InlineFrameIteratorMaybeGC<CanGC> InlineFrameIterator;
 typedef InlineFrameIteratorMaybeGC<NoGC> InlineFrameIteratorNoGC;
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonFrameIterator_h */
+#endif /* jit_IonFrameIterator_h */
rename from js/src/ion/IonFrames-inl.h
rename to js/src/jit/IonFrames-inl.h
--- a/js/src/ion/IonFrames-inl.h
+++ b/js/src/jit/IonFrames-inl.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_IonFrames_inl_h
-#define ion_IonFrames_inl_h
+#ifndef jit_IonFrames_inl_h
+#define jit_IonFrames_inl_h
 
 #ifdef JS_ION
 
-#include "ion/IonFrames.h"
+#include "jit/IonFrames.h"
 
-#include "ion/IonFrameIterator.h"
-#include "ion/LIR.h"
+#include "jit/IonFrameIterator.h"
+#include "jit/LIR.h"
 
-#include "ion/IonFrameIterator-inl.h"
+#include "jit/IonFrameIterator-inl.h"
 
 namespace js {
 namespace ion {
 
 inline void
 SafepointIndex::resolve()
 {
     JS_ASSERT(!resolved);
@@ -78,9 +78,9 @@ GetTopBaselineFrame(JSContext *cx)
     return iter.baselineFrame();
 }
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonFrames_inl_h */
+#endif /* jit_IonFrames_inl_h */
rename from js/src/ion/IonFrames.cpp
rename to js/src/jit/IonFrames.cpp
--- a/js/src/ion/IonFrames.cpp
+++ b/js/src/jit/IonFrames.cpp
@@ -1,36 +1,36 @@
 /* -*- 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/. */
 
-#include "ion/IonFrames-inl.h"
+#include "jit/IonFrames-inl.h"
 
 #include "jsfun.h"
 #include "jsobj.h"
 #include "jsscript.h"
 
 #include "gc/Marking.h"
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/Ion.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonMacroAssembler.h"
-#include "ion/IonSpewer.h"
-#include "ion/PcScriptCache.h"
-#include "ion/Safepoints.h"
-#include "ion/SnapshotReader.h"
-#include "ion/VMFunctions.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/Ion.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/IonSpewer.h"
+#include "jit/PcScriptCache.h"
+#include "jit/Safepoints.h"
+#include "jit/SnapshotReader.h"
+#include "jit/VMFunctions.h"
 
 #include "jsfuninlines.h"
 
-#include "ion/IonFrameIterator-inl.h"
+#include "jit/IonFrameIterator-inl.h"
 #include "vm/Probes-inl.h"
 
 namespace js {
 namespace ion {
 
 IonFrameIterator::IonFrameIterator(const ActivationIterator &activations)
     : current_(activations.jitTop()),
       type_(IonFrame_Exit),
rename from js/src/ion/IonFrames.h
rename to js/src/jit/IonFrames.h
--- a/js/src/ion/IonFrames.h
+++ b/js/src/jit/IonFrames.h
@@ -1,29 +1,29 @@
 /* -*- 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 ion_IonFrames_h
-#define ion_IonFrames_h
+#ifndef jit_IonFrames_h
+#define jit_IonFrames_h
 
 #ifdef JS_ION
 
 #include "mozilla/DebugOnly.h"
 
 #include "jscntxt.h"
 #include "jsfun.h"
 #include "jstypes.h"
 #include "jsutil.h"
 
-#include "ion/IonCode.h"
-#include "ion/IonFrameIterator.h"
-#include "ion/Registers.h"
+#include "jit/IonCode.h"
+#include "jit/IonFrameIterator.h"
+#include "jit/Registers.h"
 
 class JSFunction;
 class JSScript;
 
 namespace js {
 namespace ion {
 
 typedef void * CalleeToken;
@@ -321,19 +321,19 @@ GetTopIonJSScript(JSContext *cx, const S
 {
     return GetTopIonJSScript(&cx->mainThread(), safepointIndexOut, returnAddrOut);
 }
 
 } // namespace ion
 } // namespace js
 
 #if defined(JS_CPU_X86) || defined (JS_CPU_X64)
-# include "ion/shared/IonFrames-x86-shared.h"
+# include "jit/shared/IonFrames-x86-shared.h"
 #elif defined (JS_CPU_ARM)
-# include "ion/arm/IonFrames-arm.h"
+# include "jit/arm/IonFrames-arm.h"
 #else
 # error "unsupported architecture"
 #endif
 
 namespace js {
 namespace ion {
 
 JSScript *
@@ -370,9 +370,9 @@ ReadFrameDoubleSlot(IonJSFrameLayout *fp
 CalleeToken
 MarkCalleeToken(JSTracer *trc, CalleeToken token);
 
 } /* namespace ion */
 } /* namespace js */
 
 #endif // JS_ION
 
-#endif /* ion_IonFrames_h */
+#endif /* jit_IonFrames_h */
rename from js/src/ion/IonInstrumentation.h
rename to js/src/jit/IonInstrumentation.h
--- a/js/src/ion/IonInstrumentation.h
+++ b/js/src/jit/IonInstrumentation.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_IonInstrumentation_h
-#define ion_IonInstrumentation_h
+#ifndef jit_IonInstrumentatjit_h
+#define jit_IonInstrumentatjit_h
 
 namespace js {
 
 class SPSProfiler;
 
 namespace ion {
 
 class MacroAssembler;
@@ -32,9 +32,9 @@ class IonInstrumentation : public BaseIn
     void leave(MacroAssembler &masm, Register reg) {
         BaseInstrumentation::leave(*trackedPc_, masm, reg);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonInstrumentation_h */
+#endif /* jit_IonInstrumentatjit_h */
rename from js/src/ion/IonLinker.h
rename to js/src/jit/IonLinker.h
--- a/js/src/ion/IonLinker.h
+++ b/js/src/jit/IonLinker.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_IonLinker_h
-#define ion_IonLinker_h
+#ifndef jit_IonLinker_h
+#define jit_IonLinker_h
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsgc.h"
 
 #include "assembler/jit/ExecutableAllocator.h"
-#include "ion/IonCode.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonCode.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 class Linker
 {
     MacroAssembler &masm;
 
@@ -76,9 +76,9 @@ class Linker
     IonCode *newCode(JSContext *cx, JSC::CodeKind kind) {
         return newCode(cx, cx->compartment()->ionCompartment(), kind);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonLinker_h */
+#endif /* jit_IonLinker_h */
rename from js/src/ion/IonMacroAssembler.cpp
rename to js/src/jit/IonMacroAssembler.cpp
--- a/js/src/ion/IonMacroAssembler.cpp
+++ b/js/src/jit/IonMacroAssembler.cpp
@@ -1,24 +1,24 @@
 /* -*- 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/. */
 
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonMacroAssembler.h"
 
 #include "jsinfer.h"
 
-#include "ion/Bailouts.h"
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/MIR.h"
+#include "jit/Bailouts.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/BaselineRegisters.h"
+#include "jit/MIR.h"
 #include "js/RootingAPI.h"
 #include "vm/ForkJoin.h"
 
 #include "jsgcinlines.h"
 #include "jsinferinlines.h"
 
 #include "vm/Shape-inl.h"
 
rename from js/src/ion/IonMacroAssembler.h
rename to js/src/jit/IonMacroAssembler.h
--- a/js/src/ion/IonMacroAssembler.h
+++ b/js/src/jit/IonMacroAssembler.h
@@ -1,32 +1,32 @@
 /* -*- 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 ion_IonMacroAssembler_h
-#define ion_IonMacroAssembler_h
+#ifndef jit_IonMacroAssembler_h
+#define jit_IonMacroAssembler_h
 
 #ifdef JS_ION
 
 #include "jscompartment.h"
 
 #if defined(JS_CPU_X86)
-# include "ion/x86/MacroAssembler-x86.h"
+# include "jit/x86/MacroAssembler-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/MacroAssembler-x64.h"
+# include "jit/x64/MacroAssembler-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/MacroAssembler-arm.h"
+# include "jit/arm/MacroAssembler-arm.h"
 #endif
-#include "ion/IonCompartment.h"
-#include "ion/IonInstrumentation.h"
-#include "ion/ParallelFunctions.h"
-#include "ion/VMFunctions.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonInstrumentation.h"
+#include "jit/ParallelFunctions.h"
+#include "jit/VMFunctions.h"
 #include "vm/ForkJoin.h"
 #include "vm/ProxyObject.h"
 #include "vm/Shape.h"
 #include "vm/TypedArrayObject.h"
 
 namespace js {
 namespace ion {
 
@@ -1046,9 +1046,9 @@ JSOpToCondition(JSOp op, bool isSigned)
     }
 }
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_IonMacroAssembler_h */
+#endif /* jit_IonMacroAssembler_h */
rename from js/src/ion/IonSpewer.cpp
rename to js/src/jit/IonSpewer.cpp
--- a/js/src/ion/IonSpewer.cpp
+++ b/js/src/jit/IonSpewer.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
 #ifdef DEBUG
 
-#include "ion/IonSpewer.h"
+#include "jit/IonSpewer.h"
 
-#include "ion/Ion.h"
+#include "jit/Ion.h"
 
 #ifndef ION_SPEW_DIR
 # if defined(_WIN32)
 #  define ION_SPEW_DIR ""
 # elif defined(__ANDROID__)
 #  define ION_SPEW_DIR "/data/local/tmp/"
 # else
 #  define ION_SPEW_DIR "/tmp/"
rename from js/src/ion/IonSpewer.h
rename to js/src/jit/IonSpewer.h
--- a/js/src/ion/IonSpewer.h
+++ b/js/src/jit/IonSpewer.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_IonSpewer_h
-#define ion_IonSpewer_h
+#ifndef jit_IonSpewer_h
+#define jit_IonSpewer_h
 
 #include "mozilla/DebugOnly.h"
 
 #include <stdarg.h>
 
-#include "ion/C1Spewer.h"
-#include "ion/JSONSpewer.h"
+#include "jit/C1Spewer.h"
+#include "jit/JSONSpewer.h"
 
 namespace js {
 namespace ion {
 
 // New channels may be added below.
 #define IONSPEW_CHANNEL_LIST(_)             \
     /* Used to abort SSA construction */    \
     _(Abort)                                \
@@ -194,9 +194,9 @@ class AutoDisableSpew
             EnableChannel(Channel);
 #endif
     }
 };
 
 } /* ion */
 } /* js */
 
-#endif /* ion_IonSpewer_h */
+#endif /* jit_IonSpewer_h */
rename from js/src/ion/IonTypes.h
rename to js/src/jit/IonTypes.h
--- a/js/src/ion/IonTypes.h
+++ b/js/src/jit/IonTypes.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_IonTypes_h
-#define ion_IonTypes_h
+#ifndef jit_IonTypes_h
+#define jit_IonTypes_h
 
 #include "jstypes.h"
 
 #include "js/Value.h"
 
 namespace js {
 namespace ion {
 
@@ -204,9 +204,9 @@ IsNullOrUndefined(MIRType type)
 #ifdef DEBUG
 // Track the pipeline of opcodes which has produced a snapshot.
 #define TRACK_SNAPSHOTS 1
 #endif
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_IonTypes_h */
+#endif /* jit_IonTypes_h */
rename from js/src/ion/JSONSpewer.cpp
rename to js/src/jit/JSONSpewer.cpp
--- a/js/src/ion/JSONSpewer.cpp
+++ b/js/src/jit/JSONSpewer.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/JSONSpewer.h"
+#include "jit/JSONSpewer.h"
 
 #include <stdarg.h>
 
-#include "ion/LinearScan.h"
-#include "ion/LIR.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/RangeAnalysis.h"
+#include "jit/LinearScan.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/RangeAnalysis.h"
 
 using namespace js;
 using namespace js::ion;
 
 JSONSpewer::~JSONSpewer()
 {
     if (fp_)
         fclose(fp_);
rename from js/src/ion/JSONSpewer.h
rename to js/src/jit/JSONSpewer.h
--- a/js/src/ion/JSONSpewer.h
+++ b/js/src/jit/JSONSpewer.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_JSONSpewer_h
-#define ion_JSONSpewer_h
+#ifndef jit_JSONSpewer_h
+#define jit_JSONSpewer_h
 
 #include <stdio.h>
 
 #include "jsscript.h"
 
 #include "js/RootingAPI.h"
 
 class JSScript;
@@ -71,9 +71,9 @@ class JSONSpewer
     void endPass();
     void endFunction();
     void finish();
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_JSONSpewer_h */
+#endif /* jit_JSONSpewer_h */
rename from js/src/ion/LICM.cpp
rename to js/src/jit/LICM.cpp
--- a/js/src/ion/LICM.cpp
+++ b/js/src/jit/LICM.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/LICM.h"
+#include "jit/LICM.h"
 
 #include <stdio.h>
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace {
 
 typedef Vector<MBasicBlock*, 1, IonAllocPolicy> BlockQueue;
 typedef Vector<MInstruction*, 1, IonAllocPolicy> InstructionQueue;
rename from js/src/ion/LICM.h
rename to js/src/jit/LICM.h
--- a/js/src/ion/LICM.h
+++ b/js/src/jit/LICM.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_LICM_h
-#define ion_LICM_h
+#ifndef jit_LICM_h
+#define jit_LICM_h
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/IonAnalysis.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/IonAnalysis.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 // This file represents the Loop Invariant Code Motion optimization pass
 
 namespace js {
 namespace ion {
 
 class LICM
 {
@@ -25,9 +25,9 @@ class LICM
   public:
     LICM(MIRGenerator *mir, MIRGraph &graph);
     bool analyze();
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_LICM_h */
+#endif /* jit_LICM_h */
rename from js/src/ion/LIR-Common.h
rename to js/src/jit/LIR-Common.h
--- a/js/src/ion/LIR-Common.h
+++ b/js/src/jit/LIR-Common.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_LIR_Common_h
-#define ion_LIR_Common_h
-
-#include "ion/shared/Assembler-shared.h"
+#ifndef jit_LIR_Common_h
+#define jit_LIR_Common_h
+
+#include "jit/shared/Assembler-shared.h"
 
 // This file declares LIR instructions that are common to every platform.
 
 namespace js {
 namespace ion {
 
 template <size_t Temps, size_t ExtraUses = 0>
 class LBinaryMath : public LInstructionHelper<1, 2 + ExtraUses, Temps>
@@ -4934,9 +4934,9 @@ class LAsmJSCheckOverRecursed : public L
     MAsmJSCheckOverRecursed *mir() const {
         return mir_->toAsmJSCheckOverRecursed();
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_LIR_Common_h */
+#endif /* jit_LIR_Common_h */
rename from js/src/ion/LIR.cpp
rename to js/src/jit/LIR.cpp
--- a/js/src/ion/LIR.cpp
+++ b/js/src/jit/LIR.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/LIR.h"
+#include "jit/LIR.h"
 
 #include "jsprf.h"
 
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/shared/CodeGenerator-shared.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/shared/CodeGenerator-shared.h"
 
 using namespace js;
 using namespace js::ion;
 
 LIRGraph::LIRGraph(MIRGraph *mir)
   : numVirtualRegisters_(0),
     numInstructions_(1), // First id is 1.
     localSlotCount_(0),
rename from js/src/ion/LIR.h
rename to js/src/jit/LIR.h
--- a/js/src/ion/LIR.h
+++ b/js/src/jit/LIR.h
@@ -1,34 +1,34 @@
 /* -*- 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 ion_LIR_h
-#define ion_LIR_h
+#ifndef jit_LIR_h
+#define jit_LIR_h
 
 // This file declares the core data structures for LIR: storage allocations for
 // inputs and outputs, as well as the interface instructions must conform to.
 
 #include "mozilla/Array.h"
 
 #include "jscntxt.h"
 
-#include "ion/Bailouts.h"
-#include "ion/InlineList.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/LOpcodes.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/Registers.h"
-#include "ion/Safepoints.h"
-#include "ion/shared/Assembler-shared.h"
-#include "ion/VMFunctions.h"
+#include "jit/Bailouts.h"
+#include "jit/InlineList.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/LOpcodes.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/Registers.h"
+#include "jit/Safepoints.h"
+#include "jit/shared/Assembler-shared.h"
+#include "jit/VMFunctions.h"
 
 namespace js {
 namespace ion {
 
 class LUse;
 class LGeneralReg;
 class LFloatReg;
 class LStackSlot;
@@ -1467,26 +1467,26 @@ LAllocation::toRegister() const
     }
 #elif defined(JS_PUNBOX64)
 # define BOX_OUTPUT_ACCESSORS()                                             \
     const LDefinition *outputValue() {                                      \
         return getDef(0);                                                   \
     }
 #endif
 
-#include "ion/LIR-Common.h"
+#include "jit/LIR-Common.h"
 #if defined(JS_CPU_X86) || defined(JS_CPU_X64)
 # if defined(JS_CPU_X86)
-#  include "ion/x86/LIR-x86.h"
+#  include "jit/x86/LIR-x86.h"
 # elif defined(JS_CPU_X64)
-#  include "ion/x64/LIR-x64.h"
+#  include "jit/x64/LIR-x64.h"
 # endif
-# include "ion/shared/LIR-x86-shared.h"
+# include "jit/shared/LIR-x86-shared.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/LIR-arm.h"
+# include "jit/arm/LIR-arm.h"
 #endif
 
 #undef LIR_HEADER
 
 namespace js {
 namespace ion {
 
 #define LIROP(name)                                                         \
@@ -1554,9 +1554,9 @@ BaseOfNunboxSlot(LDefinition::Type type,
         return slot + (NUNBOX32_PAYLOAD_OFFSET / STACK_SLOT_SIZE);
     return slot + (NUNBOX32_TYPE_OFFSET / STACK_SLOT_SIZE);
 }
 #endif
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_LIR_h */
+#endif /* jit_LIR_h */
rename from js/src/ion/LOpcodes.h
rename to js/src/jit/LOpcodes.h
--- a/js/src/ion/LOpcodes.h
+++ b/js/src/jit/LOpcodes.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_LOpcodes_h
-#define ion_LOpcodes_h
+#ifndef jit_LOpcodes_h
+#define jit_LOpcodes_h
 
 #define LIR_COMMON_OPCODE_LIST(_)   \
     _(Label)                        \
     _(Nop)                          \
     _(OsiPoint)                     \
     _(MoveGroup)                    \
     _(Integer)                      \
     _(Pointer)                      \
@@ -244,20 +244,20 @@
     _(AsmJSReturn)                  \
     _(AsmJSVoidReturn)              \
     _(AsmJSPassStackArg)            \
     _(AsmJSCall)                    \
     _(AsmJSCheckOverRecursed)       \
     _(CheckInterruptPar)
 
 #if defined(JS_CPU_X86)
-# include "ion/x86/LOpcodes-x86.h"
+# include "jit/x86/LOpcodes-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/LOpcodes-x64.h"
+# include "jit/x64/LOpcodes-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/LOpcodes-arm.h"
+# include "jit/arm/LOpcodes-arm.h"
 #endif
 
 #define LIR_OPCODE_LIST(_)          \
     LIR_COMMON_OPCODE_LIST(_)       \
     LIR_CPU_OPCODE_LIST(_)
 
-#endif /* ion_LOpcodes_h */
+#endif /* jit_LOpcodes_h */
rename from js/src/ion/LinearScan.cpp
rename to js/src/jit/LinearScan.cpp
--- a/js/src/ion/LinearScan.cpp
+++ b/js/src/jit/LinearScan.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/LinearScan.h"
+#include "jit/LinearScan.h"
 
 #include "mozilla/DebugOnly.h"
 
 #include <limits.h>
 
-#include "ion/BitSet.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
+#include "jit/BitSet.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 /*
  * Merge virtual register intervals into the UnhandledQueue, taking advantage
rename from js/src/ion/LinearScan.h
rename to js/src/jit/LinearScan.h
--- a/js/src/ion/LinearScan.h
+++ b/js/src/jit/LinearScan.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_LinearScan_h
-#define ion_LinearScan_h
+#ifndef jit_LinearScan_h
+#define jit_LinearScan_h
 
-#include "ion/BitSet.h"
-#include "ion/LiveRangeAllocator.h"
+#include "jit/BitSet.h"
+#include "jit/LiveRangeAllocator.h"
 #include "js/Vector.h"
 
 namespace js {
 namespace ion {
 
 class LinearScanVirtualRegister : public VirtualRegister
 {
   private:
@@ -128,9 +128,9 @@ class LinearScanAllocator : public LiveR
     }
 
     bool go();
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_LinearScan_h */
+#endif /* jit_LinearScan_h */
rename from js/src/ion/LiveRangeAllocator.cpp
rename to js/src/jit/LiveRangeAllocator.cpp
--- a/js/src/ion/LiveRangeAllocator.cpp
+++ b/js/src/jit/LiveRangeAllocator.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/LiveRangeAllocator.h"
+#include "jit/LiveRangeAllocator.h"
 
 #include "mozilla/DebugOnly.h"
 
-#include "ion/BacktrackingAllocator.h"
-#include "ion/LinearScan.h"
+#include "jit/BacktrackingAllocator.h"
+#include "jit/LinearScan.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 int
 Requirement::priority() const
rename from js/src/ion/LiveRangeAllocator.h
rename to js/src/jit/LiveRangeAllocator.h
--- a/js/src/ion/LiveRangeAllocator.h
+++ b/js/src/jit/LiveRangeAllocator.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_LiveRangeAllocator_h
-#define ion_LiveRangeAllocator_h
+#ifndef jit_LiveRangeAllocator_h
+#define jit_LiveRangeAllocator_h
 
 #include "mozilla/Array.h"
 #include "mozilla/DebugOnly.h"
 
-#include "ion/RegisterAllocator.h"
-#include "ion/StackSlotAllocator.h"
+#include "jit/RegisterAllocator.h"
+#include "jit/StackSlotAllocator.h"
 
 // Common structures and functions used by register allocators that operate on
 // virtual register live ranges.
 
 namespace js {
 namespace ion {
 
 class Requirement
@@ -639,9 +639,9 @@ class LiveRangeAllocator : public Regist
         }
         return i;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_LiveRangeAllocator_h */
+#endif /* jit_LiveRangeAllocator_h */
rename from js/src/ion/Lowering.cpp
rename to js/src/jit/Lowering.cpp
--- a/js/src/ion/Lowering.cpp
+++ b/js/src/jit/Lowering.cpp
@@ -1,31 +1,31 @@
 /* -*- 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/. */
 
-#include "ion/Lowering.h"
+#include "jit/Lowering.h"
 
 #include "mozilla/DebugOnly.h"
 
 #include "jsanalyze.h"
 #include "jsbool.h"
 #include "jsnum.h"
 
-#include "ion/IonSpewer.h"
-#include "ion/LIR.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/RangeAnalysis.h"
+#include "jit/IonSpewer.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/RangeAnalysis.h"
 
 #include "jsinferinlines.h"
 
-#include "ion/shared/Lowering-shared-inl.h"
+#include "jit/shared/Lowering-shared-inl.h"
 
 using namespace js;
 using namespace ion;
 
 bool
 LIRGenerator::visitParameter(MParameter *param)
 {
     ptrdiff_t offset;
rename from js/src/ion/Lowering.h
rename to js/src/jit/Lowering.h
--- a/js/src/ion/Lowering.h
+++ b/js/src/jit/Lowering.h
@@ -1,29 +1,29 @@
 /* -*- 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 ion_Lowering_h
-#define ion_Lowering_h
+#ifndef jit_Lowering_h
+#define jit_Lowering_h
 
 // This file declares the structures that are used for attaching LIR to a
 // MIRGraph.
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/LIR.h"
-#include "ion/MOpcodes.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/LIR.h"
+#include "jit/MOpcodes.h"
 #if defined(JS_CPU_X86)
-# include "ion/x86/Lowering-x86.h"
+# include "jit/x86/Lowering-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/Lowering-x64.h"
+# include "jit/x64/Lowering-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/Lowering-arm.h"
+# include "jit/arm/Lowering-arm.h"
 #else
 # error "CPU!"
 #endif
 
 namespace js {
 namespace ion {
 
 class LIRGenerator : public LIRGeneratorSpecific
@@ -248,9 +248,9 @@ class LIRGenerator : public LIRGenerator
     bool visitAsmJSCheckOverRecursed(MAsmJSCheckOverRecursed *ins);
     bool visitSetDOMProperty(MSetDOMProperty *ins);
     bool visitGetDOMProperty(MGetDOMProperty *ins);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_Lowering_h */
+#endif /* jit_Lowering_h */
rename from js/src/ion/MCallOptimize.cpp
rename to js/src/jit/MCallOptimize.cpp
--- a/js/src/ion/MCallOptimize.cpp
+++ b/js/src/jit/MCallOptimize.cpp
@@ -4,19 +4,19 @@
  * 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/. */
 
 #include "jslibmath.h"
 #include "jsmath.h"
 
 #include "builtin/ParallelArray.h"
 #include "builtin/TestingFunctions.h"
-#include "ion/IonBuilder.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/IonBuilder.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 #include "jsscriptinlines.h"
 
 #include "vm/StringObject-inl.h"
 
 namespace js {
 namespace ion {
 
rename from js/src/ion/MIR.cpp
rename to js/src/jit/MIR.cpp
--- a/js/src/ion/MIR.cpp
+++ b/js/src/jit/MIR.cpp
@@ -1,28 +1,28 @@
 /* -*- 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/. */
 
-#include "ion/MIR.h"
+#include "jit/MIR.h"
 
 #include "mozilla/FloatingPoint.h"
 
 #include "jsnum.h"
 #include "jsstr.h"
 
-#include "ion/BaselineInspector.h"
-#include "ion/EdgeCaseAnalysis.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
-#include "ion/LICM.h" // For LinearSum
-#include "ion/MIRGraph.h"
-#include "ion/RangeAnalysis.h"
+#include "jit/BaselineInspector.h"
+#include "jit/EdgeCaseAnalysis.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
+#include "jit/LICM.h" // For LinearSum
+#include "jit/MIRGraph.h"
+#include "jit/RangeAnalysis.h"
 
 #include "jsatominlines.h"
 #include "jsinferinlines.h"
 
 #include "vm/Shape-inl.h"
 
 using namespace js;
 using namespace js::ion;
rename from js/src/ion/MIR.h
rename to js/src/jit/MIR.h
--- a/js/src/ion/MIR.h
+++ b/js/src/jit/MIR.h
@@ -4,33 +4,33 @@
  * 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/. */
 
 /*
  * Everything needed to build actual MIR instructions: the actual opcodes and
  * instructions, the instruction interface, and use chains.
  */
 
-#ifndef ion_MIR_h
-#define ion_MIR_h
+#ifndef jit_MIR_h
+#define jit_MIR_h
 
 #include "mozilla/Array.h"
 
 #include "jscntxt.h"
 #include "jsinfer.h"
 #include "jslibmath.h"
 
-#include "ion/Bailouts.h"
-#include "ion/CompilerRoot.h"
-#include "ion/FixedList.h"
-#include "ion/InlineList.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/IonMacroAssembler.h"
-#include "ion/MOpcodes.h"
-#include "ion/TypePolicy.h"
+#include "jit/Bailouts.h"
+#include "jit/CompilerRoot.h"
+#include "jit/FixedList.h"
+#include "jit/InlineList.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/MOpcodes.h"
+#include "jit/TypePolicy.h"
 #include "vm/ScopeObject.h"
 
 namespace js {
 
 class StringObject;
 
 namespace ion {
 
@@ -8595,9 +8595,9 @@ void AddObjectsForPropertyRead(JSContext
                                types::StackTypeSet *observed);
 bool PropertyWriteNeedsTypeBarrier(JSContext *cx, MBasicBlock *current, MDefinition **pobj,
                                    PropertyName *name, MDefinition **pvalue,
                                    bool canModify = true);
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_MIR_h */
+#endif /* jit_MIR_h */
rename from js/src/ion/MIRGenerator.h
rename to js/src/jit/MIRGenerator.h
--- a/js/src/ion/MIRGenerator.h
+++ b/js/src/jit/MIRGenerator.h
@@ -1,32 +1,32 @@
 /* -*- 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 ion_MIRGenerator_h
-#define ion_MIRGenerator_h
+#ifndef jit_MIRGenerator_h
+#define jit_MIRGenerator_h
 
 // This file declares the data structures used to build a control-flow graph
 // containing MIR.
 
 #include <stdarg.h>
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/IonCompartment.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/IonCompartment.h"
 #if defined(JS_ION_PERF)
-# include "ion/PerfSpewer.h"
+# include "jit/PerfSpewer.h"
 #endif
-#include "ion/RegisterSets.h"
+#include "jit/RegisterSets.h"
 
 namespace js {
 namespace ion {
 
 class MBasicBlock;
 class MIRGraph;
 class MStart;
 
@@ -154,9 +154,9 @@ class MIRGenerator
   public:
     AsmJSPerfSpewer &perfSpewer() { return asmJSPerfSpewer_; }
 #endif
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_MIRGenerator_h */
+#endif /* jit_MIRGenerator_h */
rename from js/src/ion/MIRGraph.cpp
rename to js/src/jit/MIRGraph.cpp
--- a/js/src/ion/MIRGraph.cpp
+++ b/js/src/jit/MIRGraph.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/MIRGraph.h"
+#include "jit/MIRGraph.h"
 
 #include "jsanalyze.h"
 
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
 
 #include "jsinferinlines.h"
 
 using namespace js;
 using namespace js::ion;
 
 MIRGenerator::MIRGenerator(JSCompartment *compartment,
                            TempAllocator *temp, MIRGraph *graph, CompileInfo *info)
rename from js/src/ion/MIRGraph.h
rename to js/src/jit/MIRGraph.h
--- a/js/src/ion/MIRGraph.h
+++ b/js/src/jit/MIRGraph.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_MIRGraph_h
-#define ion_MIRGraph_h
+#ifndef jit_MIRGraph_h
+#define jit_MIRGraph_h
 
 // This file declares the data structures used to build a control-flow graph
 // containing MIR.
 
-#include "ion/FixedList.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/MIR.h"
-#include "ion/MIRGenerator.h"
+#include "jit/FixedList.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/MIR.h"
+#include "jit/MIRGenerator.h"
 
 namespace js {
 namespace ion {
 
 class MBasicBlock;
 class MIRGraph;
 class MStart;
 
@@ -752,9 +752,9 @@ class MDefinitionIterator
         return getIns();
     }
 
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_MIRGraph_h */
+#endif /* jit_MIRGraph_h */
rename from js/src/ion/MOpcodes.h
rename to js/src/jit/MOpcodes.h
--- a/js/src/ion/MOpcodes.h
+++ b/js/src/jit/MOpcodes.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_MOpcodes_h
-#define ion_MOpcodes_h
+#ifndef jit_MOpcodes_h
+#define jit_MOpcodes_h
 
 namespace js {
 namespace ion {
 
 #define MIR_OPCODE_LIST(_)                                                  \
     _(Constant)                                                             \
     _(Parameter)                                                            \
     _(Callee)                                                               \
@@ -220,9 +220,9 @@ class MInstructionVisitorWithDefaults : 
 #define VISIT_INS(op) virtual bool visit##op(M##op *) { MOZ_ASSUME_UNREACHABLE("NYI: " #op); }
     MIR_OPCODE_LIST(VISIT_INS)
 #undef VISIT_INS
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_MOpcodes_h */
+#endif /* jit_MOpcodes_h */
rename from js/src/ion/MoveEmitter.h
rename to js/src/jit/MoveEmitter.h
--- a/js/src/ion/MoveEmitter.h
+++ b/js/src/jit/MoveEmitter.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_MoveEmitter_h
-#define ion_MoveEmitter_h
+#ifndef jit_MoveEmitter_h
+#define jit_MoveEmitter_h
 
 #if defined(JS_CPU_X86) || defined(JS_CPU_X64)
-# include "ion/shared/MoveEmitter-x86-shared.h"
+# include "jit/shared/MoveEmitter-x86-shared.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/MoveEmitter-arm.h"
+# include "jit/arm/MoveEmitter-arm.h"
 #else
 # error "CPU Not Supported"
 #endif
 
-#endif /* ion_MoveEmitter_h */
+#endif /* jit_MoveEmitter_h */
rename from js/src/ion/MoveResolver.cpp
rename to js/src/jit/MoveResolver.cpp
--- a/js/src/ion/MoveResolver.cpp
+++ b/js/src/jit/MoveResolver.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/MoveResolver.h"
+#include "jit/MoveResolver.h"
 
 using namespace js;
 using namespace js::ion;
 
 MoveResolver::MoveResolver()
   : hasCycles_(false)
 {
 }
rename from js/src/ion/MoveResolver.h
rename to js/src/jit/MoveResolver.h
--- a/js/src/ion/MoveResolver.h
+++ b/js/src/jit/MoveResolver.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_MoveResolver_h
-#define ion_MoveResolver_h
+#ifndef jit_MoveResolver_h
+#define jit_MoveResolver_h
 
-#include "ion/InlineList.h"
-#include "ion/IonAllocPolicy.h"
-#include "ion/Registers.h"
+#include "jit/InlineList.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 class MoveResolver
 {
   public:
     // This is similar to Operand, but carries more information. We're also not
@@ -211,9 +211,9 @@ class MoveResolver
     void clearTempObjectPool() {
         movePool_.clear();
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_MoveResolver_h */
+#endif /* jit_MoveResolver_h */
rename from js/src/ion/ParallelFunctions.cpp
rename to js/src/jit/ParallelFunctions.cpp
--- a/js/src/ion/ParallelFunctions.cpp
+++ b/js/src/jit/ParallelFunctions.cpp
@@ -1,17 +1,17 @@
 /* -*- 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/. */
 
-#include "ion/ParallelFunctions.h"
+#include "jit/ParallelFunctions.h"
 
-#include "ion/IonSpewer.h"
+#include "jit/IonSpewer.h"
 #include "vm/ArrayObject.h"
 #include "vm/Interpreter.h"
 
 #include "jsfuninlines.h"
 #include "jsgcinlines.h"
 #include "jsobjinlines.h"
 
 using namespace js;
rename from js/src/ion/ParallelFunctions.h
rename to js/src/jit/ParallelFunctions.h
--- a/js/src/ion/ParallelFunctions.h
+++ b/js/src/jit/ParallelFunctions.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_ParallelFunctions_h
-#define ion_ParallelFunctions_h
+#ifndef jit_ParallelFunctions_h
+#define jit_ParallelFunctions_h
 
 #include "gc/Heap.h"
 #include "vm/ForkJoin.h"
 #include "vm/ThreadPool.h"
 
 namespace js {
 namespace ion {
 
@@ -84,9 +84,9 @@ void TraceLIR(uint32_t bblock, uint32_t 
               const char *lirOpName, const char *mirOpName,
               JSScript *script, jsbytecode *pc);
 
 void CallToUncompiledScriptPar(JSFunction *func);
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_ParallelFunctions_h */
+#endif /* jit_ParallelFunctions_h */
rename from js/src/ion/ParallelSafetyAnalysis.cpp
rename to js/src/jit/ParallelSafetyAnalysis.cpp
--- a/js/src/ion/ParallelSafetyAnalysis.cpp
+++ b/js/src/jit/ParallelSafetyAnalysis.cpp
@@ -1,24 +1,24 @@
 /* -*- 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/. */
 
-#include "ion/ParallelSafetyAnalysis.h"
+#include "jit/ParallelSafetyAnalysis.h"
 
 #include <stdio.h>
 
-#include "ion/Ion.h"
-#include "ion/IonAnalysis.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/UnreachableCodeElimination.h"
+#include "jit/Ion.h"
+#include "jit/IonAnalysis.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/UnreachableCodeElimination.h"
 #include "vm/Stack.h"
 
 #include "jsinferinlines.h"
 
 using namespace js;
 using namespace ion;
 
 using parallel::Spew;
rename from js/src/ion/ParallelSafetyAnalysis.h
rename to js/src/jit/ParallelSafetyAnalysis.h
--- a/js/src/ion/ParallelSafetyAnalysis.h
+++ b/js/src/jit/ParallelSafetyAnalysis.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_ParallelSafetyAnalysis_h
-#define ion_ParallelSafetyAnalysis_h
+#ifndef jit_ParallelSafetyAnalysis_h
+#define jit_ParallelSafetyAnalysis_h
 
-#include "ion/CompileInfo.h"
-#include "ion/MIR.h"
+#include "jit/CompileInfo.h"
+#include "jit/MIR.h"
 
 namespace js {
 
 class StackFrame;
 
 namespace ion {
 
 class MIRGraph;
@@ -47,9 +47,9 @@ class ParallelSafetyAnalysis
 // This code may clone scripts and thus may invoke the GC.  Hence only
 // run from the link phase, which executes on the main thread.
 typedef Vector<JSScript *, 4, IonAllocPolicy> CallTargetVector;
 bool AddPossibleCallees(MIRGraph &graph, CallTargetVector &targets);
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_ParallelSafetyAnalysis_h */
+#endif /* jit_ParallelSafetyAnalysis_h */
rename from js/src/ion/PcScriptCache.h
rename to js/src/jit/PcScriptCache.h
--- a/js/src/ion/PcScriptCache.h
+++ b/js/src/jit/PcScriptCache.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_PcScriptCache_h
-#define ion_PcScriptCache_h
+#ifndef jit_PcScriptCache_h
+#define jit_PcScriptCache_h
 
 // Defines a fixed-size hash table solely for the purpose of caching ion::GetPcScript().
 // One cache is attached to each JSRuntime; it functions as if cleared on GC.
 
 struct JSRuntime;
 
 namespace js {
 namespace ion {
@@ -70,9 +70,9 @@ struct PcScriptCache
         uint32_t key = (uint32_t)((uintptr_t)addr);
         return ((key >> 3) * 2654435761u) % Length;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_PcScriptCache_h */
+#endif /* jit_PcScriptCache_h */
rename from js/src/ion/PerfSpewer.cpp
rename to js/src/jit/PerfSpewer.cpp
--- a/js/src/ion/PerfSpewer.cpp
+++ b/js/src/jit/PerfSpewer.cpp
@@ -1,28 +1,28 @@
 /* -*- 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/. */
 
-#include "ion/PerfSpewer.h"
+#include "jit/PerfSpewer.h"
 
 #include <stdarg.h>
 
 #if defined(__linux__)
 # include <unistd.h>
 #endif
 
-#include "ion/IonSpewer.h"
-#include "ion/LinearScan.h"
-#include "ion/LIR.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/RangeAnalysis.h"
+#include "jit/IonSpewer.h"
+#include "jit/LinearScan.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/RangeAnalysis.h"
 
 using namespace js;
 using namespace js::ion;
 
 #define PERF_MODE_NONE  1
 #define PERF_MODE_FUNC  2
 #define PERF_MODE_BLOCK 3
 
rename from js/src/ion/PerfSpewer.h
rename to js/src/jit/PerfSpewer.h
--- a/js/src/ion/PerfSpewer.h
+++ b/js/src/jit/PerfSpewer.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_PerfSpewer_h
-#define ion_PerfSpewer_h
+#ifndef jit_PerfSpewer_h
+#define jit_PerfSpewer_h
 
 #include <stdio.h>
 
 #include "jsscript.h"
 
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonMacroAssembler.h"
 #include "js/RootingAPI.h"
 
 class JSScript;
 
 namespace js {
 namespace ion {
 
 class MBasicBlock;
@@ -89,9 +89,9 @@ class AsmJSPerfSpewer : public PerfSpewe
                         const BasicBlocksVector &basicBlocks);
     void writeFunctionMap(unsigned long base, unsigned long size, const char *filename,
                           unsigned lineno, unsigned colIndex, const char *funcName);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_PerfSpewer_h */
+#endif /* jit_PerfSpewer_h */
rename from js/src/ion/RangeAnalysis.cpp
rename to js/src/jit/RangeAnalysis.cpp
--- a/js/src/ion/RangeAnalysis.cpp
+++ b/js/src/jit/RangeAnalysis.cpp
@@ -1,28 +1,28 @@
 /* -*- 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/. */
 
-#include "ion/RangeAnalysis.h"
+#include "jit/RangeAnalysis.h"
 
 #include "mozilla/MathAlgorithms.h"
 
 #include <math.h>
 #include <stdio.h>
 
 #include "jsanalyze.h"
 
-#include "ion/Ion.h"
-#include "ion/IonAnalysis.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/Ion.h"
+#include "jit/IonAnalysis.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 #include "vm/NumericConversions.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::Abs;
 using mozilla::CountLeadingZeroes32;
 using mozilla::ExponentComponent;
rename from js/src/ion/RangeAnalysis.h
rename to js/src/jit/RangeAnalysis.h
--- a/js/src/ion/RangeAnalysis.h
+++ b/js/src/jit/RangeAnalysis.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_RangeAnalysis_h
-#define ion_RangeAnalysis_h
+#ifndef jit_RangeAnalysis_h
+#define jit_RangeAnalysis_h
 
 #include "mozilla/FloatingPoint.h"
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/IonAnalysis.h"
-#include "ion/MIR.h"
+#include "jit/CompileInfo.h"
+#include "jit/IonAnalysis.h"
+#include "jit/MIR.h"
 
 namespace js {
 namespace ion {
 
 class MBasicBlock;
 class MIRGraph;
 
 // An upper bound computed on the number of backedges a loop will take.
@@ -395,9 +395,9 @@ class Range : public TempObject {
     inline void setSymbolicUpper(SymbolicBound *bound) {
         symbolicUpper_ = bound;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_RangeAnalysis_h */
+#endif /* jit_RangeAnalysis_h */
rename from js/src/ion/RegisterAllocator.cpp
rename to js/src/jit/RegisterAllocator.cpp
--- a/js/src/ion/RegisterAllocator.cpp
+++ b/js/src/jit/RegisterAllocator.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/RegisterAllocator.h"
+#include "jit/RegisterAllocator.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 AllocationIntegrityState::record()
 {
     // Ignore repeated record() calls.
rename from js/src/ion/RegisterAllocator.h
rename to js/src/jit/RegisterAllocator.h
--- a/js/src/ion/RegisterAllocator.h
+++ b/js/src/jit/RegisterAllocator.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_RegisterAllocator_h
-#define ion_RegisterAllocator_h
+#ifndef jit_RegisterAllocator_h
+#define jit_RegisterAllocator_h
 
 #include "mozilla/Attributes.h"
 
-#include "ion/InlineList.h"
-#include "ion/Ion.h"
-#include "ion/LIR.h"
-#include "ion/Lowering.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/InlineList.h"
+#include "jit/Ion.h"
+#include "jit/LIR.h"
+#include "jit/Lowering.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 // Generic structures and functions for use by register allocators.
 
 namespace js {
 namespace ion {
 
 // Structure for running a liveness analysis on a finished register allocation.
 // This analysis can be used for two purposes:
@@ -360,9 +360,9 @@ GetFixedRegister(LDefinition *def, const
     return def->type() == LDefinition::DOUBLE
            ? AnyRegister(FloatRegister::FromCode(use->registerCode()))
            : AnyRegister(Register::FromCode(use->registerCode()));
 }
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_RegisterAllocator_h */
+#endif /* jit_RegisterAllocator_h */
rename from js/src/ion/RegisterSets.h
rename to js/src/jit/RegisterSets.h
--- a/js/src/ion/RegisterSets.h
+++ b/js/src/jit/RegisterSets.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_RegisterSets_h
-#define ion_RegisterSets_h
+#ifndef jit_RegisterSets_h
+#define jit_RegisterSets_h
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/Registers.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 struct AnyRegister {
     typedef uint32_t Code;
 
     static const uint32_t Total = Registers::Total + FloatRegisters::Total;
@@ -837,9 +837,9 @@ class AsmJSHeapAccess
 #endif
 };
 
 typedef Vector<AsmJSHeapAccess, 0, IonAllocPolicy> AsmJSHeapAccessVector;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_RegisterSets_h */
+#endif /* jit_RegisterSets_h */
rename from js/src/ion/Registers.h
rename to js/src/jit/Registers.h
--- a/js/src/ion/Registers.h
+++ b/js/src/jit/Registers.h
@@ -1,32 +1,32 @@
 /* -*- 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 ion_Registers_h
-#define ion_Registers_h
+#ifndef jit_Registers_h
+#define jit_Registers_h
 
 #include "mozilla/Array.h"
 
 #include "jsutil.h"
 
 // ARM defines the RegisterID within Architecture-arm.h
 #if !defined(JS_CPU_ARM)
 #include "assembler/assembler/MacroAssembler.h"
 #endif
-#include "ion/IonTypes.h"
+#include "jit/IonTypes.h"
 #if defined(JS_CPU_X86)
-# include "ion/x86/Architecture-x86.h"
+# include "jit/x86/Architecture-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/Architecture-x64.h"
+# include "jit/x64/Architecture-x64.h"
 #elif defined(JS_CPU_ARM)
-# include "ion/arm/Architecture-arm.h"
+# include "jit/arm/Architecture-arm.h"
 #endif
 
 namespace js {
 namespace ion {
 
 struct Register {
     typedef Registers Codes;
     typedef Codes::Code Code;
@@ -117,9 +117,9 @@ class MachineState
     void write(Register reg, uintptr_t value) const {
         *regs_[reg.code()] = value;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_Registers_h */
+#endif /* jit_Registers_h */
rename from js/src/ion/Safepoints.cpp
rename to js/src/jit/Safepoints.cpp
--- a/js/src/ion/Safepoints.cpp
+++ b/js/src/jit/Safepoints.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/Safepoints.h"
+#include "jit/Safepoints.h"
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/IonSpewer.h"
-#include "ion/LIR.h"
+#include "jit/IonSpewer.h"
+#include "jit/LIR.h"
 
 using namespace js;
 using namespace ion;
 
 using mozilla::FloorLog2;
 
 bool
 SafepointWriter::init(uint32_t slotCount)
rename from js/src/ion/Safepoints.h
rename to js/src/jit/Safepoints.h
--- a/js/src/ion/Safepoints.h
+++ b/js/src/jit/Safepoints.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_Safepoints_h
-#define ion_Safepoints_h
+#ifndef jit_Safepoints_h
+#define jit_Safepoints_h
 
-#include "ion/BitSet.h"
-#include "ion/CompactBuffer.h"
-#include "ion/Registers.h"
-#include "ion/shared/Assembler-shared.h"
+#include "jit/BitSet.h"
+#include "jit/CompactBuffer.h"
+#include "jit/Registers.h"
+#include "jit/shared/Assembler-shared.h"
 
 namespace js {
 namespace ion {
 
 struct SafepointNunboxEntry;
 class LAllocation;
 class LSafepoint;
 
@@ -112,9 +112,9 @@ class SafepointReader
 
     // Returns true if a slot was read, false if there are no more slots.
     bool getSlotsOrElementsSlot(uint32_t *slot);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_Safepoints_h */
+#endif /* jit_Safepoints_h */
rename from js/src/ion/SnapshotReader.h
rename to js/src/jit/SnapshotReader.h
--- a/js/src/ion/SnapshotReader.h
+++ b/js/src/jit/SnapshotReader.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_SnapshotReader_h
-#define ion_SnapshotReader_h
+#ifndef jit_SnapshotReader_h
+#define jit_SnapshotReader_h
 
-#include "ion/CompactBuffer.h"
-#include "ion/IonCode.h"
-#include "ion/IonTypes.h"
-#include "ion/Registers.h"
+#include "jit/CompactBuffer.h"
+#include "jit/IonCode.h"
+#include "jit/IonTypes.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 #ifdef TRACK_SNAPSHOTS
 class LInstruction;
 #endif
 
@@ -226,9 +226,9 @@ class SnapshotReader
     uint32_t frameCount() const {
         return frameCount_;
     }
 };
 
 }
 }
 
-#endif /* ion_SnapshotReader_h */
+#endif /* jit_SnapshotReader_h */
rename from js/src/ion/SnapshotWriter.h
rename to js/src/jit/SnapshotWriter.h
--- a/js/src/ion/SnapshotWriter.h
+++ b/js/src/jit/SnapshotWriter.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_SnapshotWriter_h
-#define ion_SnapshotWriter_h
+#ifndef jit_SnapshotWriter_h
+#define jit_SnapshotWriter_h
 
-#include "ion/Bailouts.h"
-#include "ion/CompactBuffer.h"
-#include "ion/Ion.h"
-#include "ion/IonCode.h"
-#include "ion/Registers.h"
+#include "jit/Bailouts.h"
+#include "jit/CompactBuffer.h"
+#include "jit/Ion.h"
+#include "jit/IonCode.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 // Collects snapshots in a contiguous buffer, which is copied into IonScript
 // memory after code generation.
 class SnapshotWriter
 {
@@ -68,9 +68,9 @@ class SnapshotWriter
     const uint8_t *buffer() const {
         return writer_.buffer();
     }
 };
 
 }
 }
 
-#endif /* ion_SnapshotWriter_h */
+#endif /* jit_SnapshotWriter_h */
rename from js/src/ion/Snapshots.cpp
rename to js/src/jit/Snapshots.cpp
--- a/js/src/ion/Snapshots.cpp
+++ b/js/src/jit/Snapshots.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
 #include "jsscript.h"
 
-#include "ion/IonFrames.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
+#include "jit/IonFrames.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
 #ifdef TRACK_SNAPSHOTS
-#include "ion/LIR.h"
-#include "ion/MIR.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
 #endif
-#include "ion/MIRGenerator.h"
-#include "ion/SnapshotReader.h"
-#include "ion/SnapshotWriter.h"
+#include "jit/MIRGenerator.h"
+#include "jit/SnapshotReader.h"
+#include "jit/SnapshotWriter.h"
 
 using namespace js;
 using namespace js::ion;
 
 // Snapshot header:
 //
 //   [vwu] bits (n-31]: frame count
 //         bits [0,n):  bailout kind (n = BAILOUT_KIND_BITS)
rename from js/src/ion/StackSlotAllocator.h
rename to js/src/jit/StackSlotAllocator.h
--- a/js/src/ion/StackSlotAllocator.h
+++ b/js/src/jit/StackSlotAllocator.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_StackSlotAllocator_h
-#define ion_StackSlotAllocator_h
+#ifndef jit_StackSlotAllocator_h
+#define jit_StackSlotAllocator_h
 
-#include "ion/Registers.h"
+#include "jit/Registers.h"
 
 namespace js {
 namespace ion {
 
 class StackSlotAllocator
 {
     js::Vector<uint32_t, 4, SystemAllocPolicy> normalSlots;
     js::Vector<uint32_t, 4, SystemAllocPolicy> doubleSlots;
@@ -56,9 +56,9 @@ class StackSlotAllocator
     uint32_t stackHeight() const {
         return height_;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_StackSlotAllocator_h */
+#endif /* jit_StackSlotAllocator_h */
rename from js/src/ion/StupidAllocator.cpp
rename to js/src/jit/StupidAllocator.cpp
--- a/js/src/ion/StupidAllocator.cpp
+++ b/js/src/jit/StupidAllocator.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/StupidAllocator.h"
+#include "jit/StupidAllocator.h"
 
 using namespace js;
 using namespace js::ion;
 
 static inline uint32_t
 DefaultStackSlot(uint32_t vreg)
 {
 #if JS_BITS_PER_WORD == 32
rename from js/src/ion/StupidAllocator.h
rename to js/src/jit/StupidAllocator.h
--- a/js/src/ion/StupidAllocator.h
+++ b/js/src/jit/StupidAllocator.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_StupidAllocator_h
-#define ion_StupidAllocator_h
+#ifndef jit_StupidAllocator_h
+#define jit_StupidAllocator_h
 
-#include "ion/RegisterAllocator.h"
+#include "jit/RegisterAllocator.h"
 
 // Simple register allocator that only carries registers within basic blocks.
 
 namespace js {
 namespace ion {
 
 class StupidAllocator : public RegisterAllocator
 {
@@ -78,9 +78,9 @@ class StupidAllocator : public RegisterA
 
     bool allocationRequiresRegister(const LAllocation *alloc, AnyRegister reg);
     bool registerIsReserved(LInstruction *ins, AnyRegister reg);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_StupidAllocator_h */
+#endif /* jit_StupidAllocator_h */
rename from js/src/ion/TypePolicy.cpp
rename to js/src/jit/TypePolicy.cpp
--- a/js/src/ion/TypePolicy.cpp
+++ b/js/src/jit/TypePolicy.cpp
@@ -1,18 +1,18 @@
 /* -*- 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/. */
 
-#include "ion/TypePolicy.h"
+#include "jit/TypePolicy.h"
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::ion;
 
 MDefinition *
 BoxInputsPolicy::boxAt(MInstruction *at, MDefinition *operand)
 {
     if (operand->isUnbox())
rename from js/src/ion/TypePolicy.h
rename to js/src/jit/TypePolicy.h
--- a/js/src/ion/TypePolicy.h
+++ b/js/src/jit/TypePolicy.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_TypePolicy_h
-#define ion_TypePolicy_h
+#ifndef jit_TypePolicy_h
+#define jit_TypePolicy_h
 
-#include "ion/IonTypes.h"
+#include "jit/IonTypes.h"
 
 namespace js {
 namespace ion {
 
 class MInstruction;
 class MDefinition;
 
 // A type policy directs the type analysis phases, which insert conversion,
@@ -249,9 +249,9 @@ CoercesToDouble(MIRType type)
         return true;
     return false;
 }
 
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_TypePolicy_h */
+#endif /* jit_TypePolicy_h */
rename from js/src/ion/UnreachableCodeElimination.cpp
rename to js/src/jit/UnreachableCodeElimination.cpp
--- a/js/src/ion/UnreachableCodeElimination.cpp
+++ b/js/src/jit/UnreachableCodeElimination.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/UnreachableCodeElimination.h"
+#include "jit/UnreachableCodeElimination.h"
 
-#include "ion/AliasAnalysis.h"
-#include "ion/IonAnalysis.h"
-#include "ion/ValueNumbering.h"
+#include "jit/AliasAnalysis.h"
+#include "jit/IonAnalysis.h"
+#include "jit/ValueNumbering.h"
 
 using namespace js;
 using namespace ion;
 
 bool
 UnreachableCodeElimination::analyze()
 {
     // The goal of this routine is to eliminate code that is
rename from js/src/ion/UnreachableCodeElimination.h
rename to js/src/jit/UnreachableCodeElimination.h
--- a/js/src/ion/UnreachableCodeElimination.h
+++ b/js/src/jit/UnreachableCodeElimination.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_UnreachableCodeElimination_h
-#define ion_UnreachableCodeElimination_h
+#ifndef jit_UnreachableCodeEliminatjit_h
+#define jit_UnreachableCodeEliminatjit_h
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 class MIRGraph;
 
 class UnreachableCodeElimination
 {
@@ -49,9 +49,9 @@ class UnreachableCodeElimination
     // reachable.  The parameter |marked| should be the number of blocks that
     // are marked.
     bool removeUnmarkedBlocks(size_t marked);
 };
 
 } /* namespace ion */
 } /* namespace js */
 
-#endif /* ion_UnreachableCodeElimination_h */
+#endif /* jit_UnreachableCodeEliminatjit_h */
rename from js/src/ion/VMFunctions.cpp
rename to js/src/jit/VMFunctions.cpp
--- a/js/src/ion/VMFunctions.cpp
+++ b/js/src/jit/VMFunctions.cpp
@@ -1,27 +1,27 @@
 /* -*- 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/. */
 
-#include "ion/VMFunctions.h"
+#include "jit/VMFunctions.h"
 
 #include "builtin/ParallelArray.h"
 #include "frontend/BytecodeCompiler.h"
-#include "ion/BaselineIC.h"
-#include "ion/Ion.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonFrames.h"
+#include "jit/BaselineIC.h"
+#include "jit/Ion.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonFrames.h"
 #include "vm/ArrayObject.h"
 #include "vm/Debugger.h"
 #include "vm/Interpreter.h"
 
-#include "ion/BaselineFrame-inl.h"
+#include "jit/BaselineFrame-inl.h"
 #include "vm/Interpreter-inl.h"
 #include "vm/StringObject-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
rename from js/src/ion/VMFunctions.h
rename to js/src/jit/VMFunctions.h
--- a/js/src/ion/VMFunctions.h
+++ b/js/src/jit/VMFunctions.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_VMFunctions_h
-#define ion_VMFunctions_h
+#ifndef jit_VMFunctions_h
+#define jit_VMFunctions_h
 
 #include "jspubtd.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/Ion.h"
-#include "ion/IonFrames.h"
+#include "jit/CompileInfo.h"
+#include "jit/Ion.h"
+#include "jit/IonFrames.h"
 
 namespace js {
 
 class DeclEnvObject;
 class ForkJoinSlice;
 
 namespace ion {
 
@@ -658,9 +658,9 @@ bool EnterBlock(JSContext *cx, BaselineF
 bool LeaveBlock(JSContext *cx, BaselineFrame *frame);
 
 bool InitBaselineFrameForOsr(BaselineFrame *frame, StackFrame *interpFrame,
                              uint32_t numStackValues);
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_VMFunctions_h */
+#endif /* jit_VMFunctions_h */
rename from js/src/ion/ValueNumbering.cpp
rename to js/src/jit/ValueNumbering.cpp
--- a/js/src/ion/ValueNumbering.cpp
+++ b/js/src/jit/ValueNumbering.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/ValueNumbering.h"
+#include "jit/ValueNumbering.h"
 
-#include "ion/CompileInfo.h"
-#include "ion/Ion.h"
-#include "ion/IonBuilder.h"
-#include "ion/IonSpewer.h"
+#include "jit/CompileInfo.h"
+#include "jit/Ion.h"
+#include "jit/IonBuilder.h"
+#include "jit/IonSpewer.h"
 
 using namespace js;
 using namespace js::ion;
 
 ValueNumberer::ValueNumberer(MIRGenerator *mir, MIRGraph &graph, bool optimistic)
   : mir(mir),
     graph_(graph),
     pessimisticPass_(!optimistic),
rename from js/src/ion/ValueNumbering.h
rename to js/src/jit/ValueNumbering.h
--- a/js/src/ion/ValueNumbering.h
+++ b/js/src/jit/ValueNumbering.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_ValueNumbering_h
-#define ion_ValueNumbering_h
+#ifndef jit_ValueNumbering_h
+#define jit_ValueNumbering_h
 
-#include "ion/CompileInfo.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/CompileInfo.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 class ValueNumberer
 {
   protected:
     struct ValueHasher
@@ -131,9 +131,9 @@ class ValueNumberData : public TempObjec
         if (rep->valueNumberData()->classNext)
             rep->valueNumberData()->classNext->valueNumberData()->classPrev = thisDef;
         rep->valueNumberData()->classNext = thisDef;
     }
 };
 } // namespace ion
 } // namespace js
 
-#endif /* ion_ValueNumbering_h */
+#endif /* jit_ValueNumbering_h */
rename from js/src/ion/arm/Architecture-arm.cpp
rename to js/src/jit/arm/Architecture-arm.cpp
--- a/js/src/ion/arm/Architecture-arm.cpp
+++ b/js/src/jit/arm/Architecture-arm.cpp
@@ -1,23 +1,23 @@
 /* -*- 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/. */
 
-#include "ion/arm/Architecture-arm.h"
+#include "jit/arm/Architecture-arm.h"
 
 #include <elf.h>
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "ion/arm/Assembler-arm.h"
+#include "jit/arm/Assembler-arm.h"
 
 #if !(defined(ANDROID) || defined(MOZ_B2G))
 #define HWCAP_ARMv7 (1 << 31)
 #include <asm/hwcap.h>
 #else
 #define HWCAP_VFP      (1<<0)
 #define HWCAP_VFPv3    (1<<1)
 #define HWCAP_VFPv3D16 (1<<2)
rename from js/src/ion/arm/Architecture-arm.h
rename to js/src/jit/arm/Architecture-arm.h
--- a/js/src/ion/arm/Architecture-arm.h
+++ b/js/src/jit/arm/Architecture-arm.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_arm_Architecture_arm_h
-#define ion_arm_Architecture_arm_h
+#ifndef jit_arm_Architecture_arm_h
+#define jit_arm_Architecture_arm_h
 
 #include <limits.h>
 #include <stdint.h>
 
 // gcc appears to use __ARM_PCS_VFP to denote that the target is a hard-float target.
 #ifdef __ARM_PCS_VFP
 #define JS_CPU_ARM_HARDFP
 #endif
@@ -222,9 +222,9 @@ bool hasMOVWT();
 bool hasVFPv3();
 bool hasVFP();
 bool has16DP();
 bool hasIDIV();
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_Architecture_arm_h */
+#endif /* jit_arm_Architecture_arm_h */
rename from js/src/ion/arm/Assembler-arm.cpp
rename to js/src/jit/arm/Assembler-arm.cpp
--- a/js/src/ion/arm/Assembler-arm.cpp
+++ b/js/src/jit/arm/Assembler-arm.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
-#include "ion/arm/Assembler-arm.h"
+#include "jit/arm/Assembler-arm.h"
 
 #include "mozilla/DebugOnly.h"
 #include "mozilla/MathAlgorithms.h"
 
 #include "jscompartment.h"
 #include "jsutil.h"
 
 #include "assembler/jit/ExecutableAllocator.h"
 #include "gc/Marking.h"
-#include "ion/IonCompartment.h"
-#include "ion/arm/MacroAssembler-arm.h"
+#include "jit/IonCompartment.h"
+#include "jit/arm/MacroAssembler-arm.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::CountLeadingZeroes32;
 
 ABIArgGenerator::ABIArgGenerator() :
 #if defined(JS_CPU_ARM_HARDFP)
rename from js/src/ion/arm/Assembler-arm.h
rename to js/src/jit/arm/Assembler-arm.h
--- a/js/src/ion/arm/Assembler-arm.h
+++ b/js/src/jit/arm/Assembler-arm.h
@@ -1,27 +1,27 @@
 /* -*- 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 ion_arm_Assembler_arm_h
-#define ion_arm_Assembler_arm_h
+#ifndef jit_arm_Assembler_arm_h
+#define jit_arm_Assembler_arm_h
 
 #include "mozilla/Attributes.h"
 #include "mozilla/MathAlgorithms.h"
 #include "mozilla/Util.h"
 
 #include "assembler/assembler/AssemblerBufferWithConstantPool.h"
-#include "ion/arm/Architecture-arm.h"
-#include "ion/CompactBuffer.h"
-#include "ion/IonCode.h"
-#include "ion/shared/Assembler-shared.h"
-#include "ion/shared/IonAssemblerBufferWithConstantPools.h"
+#include "jit/arm/Architecture-arm.h"
+#include "jit/CompactBuffer.h"
+#include "jit/IonCode.h"
+#include "jit/shared/Assembler-shared.h"
+#include "jit/shared/IonAssemblerBufferWithConstantPools.h"
 
 namespace js {
 namespace ion {
 
 //NOTE: there are duplicates in this list!
 // sometimes we want to specifically refer to the
 // link register as a link register (bl lr is much
 // clearer than bl r14).  HOWEVER, this register can
@@ -2248,9 +2248,9 @@ class AutoForbidPools {
     ~AutoForbidPools() {
         masm_->leaveNoPool();
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_Assembler_arm_h */
+#endif /* jit_arm_Assembler_arm_h */
rename from js/src/ion/arm/Bailouts-arm.cpp
rename to js/src/jit/arm/Bailouts-arm.cpp
--- a/js/src/ion/arm/Bailouts-arm.cpp
+++ b/js/src/jit/arm/Bailouts-arm.cpp
@@ -2,18 +2,18 @@
  * 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/. */
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/Bailouts.h"
-#include "ion/IonCompartment.h"
+#include "jit/Bailouts.h"
+#include "jit/IonCompartment.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if 0
 // no clue what these asserts should be.
 JS_STATIC_ASSERT(sizeof(BailoutStack) ==
                  sizeof(uintptr_t) +
rename from js/src/ion/arm/BaselineCompiler-arm.cpp
rename to js/src/jit/arm/BaselineCompiler-arm.cpp
--- a/js/src/ion/arm/BaselineCompiler-arm.cpp
+++ b/js/src/jit/arm/BaselineCompiler-arm.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/arm/BaselineCompiler-arm.h"
+#include "jit/arm/BaselineCompiler-arm.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompilerARM::BaselineCompilerARM(JSContext *cx, HandleScript script)
   : BaselineCompilerShared(cx, script)
 {
 }
rename from js/src/ion/arm/BaselineCompiler-arm.h
rename to js/src/jit/arm/BaselineCompiler-arm.h
--- a/js/src/ion/arm/BaselineCompiler-arm.h
+++ b/js/src/jit/arm/BaselineCompiler-arm.h
@@ -1,26 +1,26 @@
 /* -*- 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 ion_arm_BaselineCompiler_arm_h
-#define ion_arm_BaselineCompiler_arm_h
+#ifndef jit_arm_BaselineCompiler_arm_h
+#define jit_arm_BaselineCompiler_arm_h
 
-#include "ion/shared/BaselineCompiler-shared.h"
+#include "jit/shared/BaselineCompiler-shared.h"
 
 namespace js {
 namespace ion {
 
 class BaselineCompilerARM : public BaselineCompilerShared
 {
   protected:
     BaselineCompilerARM(JSContext *cx, HandleScript script);
 };
 
 typedef BaselineCompilerARM BaselineCompilerSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_BaselineCompiler_arm_h */
+#endif /* jit_arm_BaselineCompiler_arm_h */
rename from js/src/ion/arm/BaselineHelpers-arm.h
rename to js/src/jit/arm/BaselineHelpers-arm.h
--- a/js/src/ion/arm/BaselineHelpers-arm.h
+++ b/js/src/jit/arm/BaselineHelpers-arm.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_arm_BaselineHelpers_arm_h
-#define ion_arm_BaselineHelpers_arm_h
+#ifndef jit_arm_BaselineHelpers_arm_h
+#define jit_arm_BaselineHelpers_arm_h
 
 #ifdef JS_ION
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineRegisters.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 // Distance from sp to the top Value inside an IC stub (no return address on the stack on ARM).
 static const size_t ICStackValueOffset = 0;
 
 inline void
@@ -301,10 +301,10 @@ EmitStubGuardFailure(MacroAssembler &mas
 }
 
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_arm_BaselineHelpers_arm_h */
+#endif /* jit_arm_BaselineHelpers_arm_h */
 
rename from js/src/ion/arm/BaselineIC-arm.cpp
rename to js/src/jit/arm/BaselineIC-arm.cpp
--- a/js/src/ion/arm/BaselineIC-arm.cpp
+++ b/js/src/jit/arm/BaselineIC-arm.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/IonLinker.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/IonLinker.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
 
 // ICCompare_Int32
rename from js/src/ion/arm/BaselineRegisters-arm.h
rename to js/src/jit/arm/BaselineRegisters-arm.h
--- a/js/src/ion/arm/BaselineRegisters-arm.h
+++ b/js/src/jit/arm/BaselineRegisters-arm.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_arm_BaselineRegisters_arm_h
-#define ion_arm_BaselineRegisters_arm_h
+#ifndef jit_arm_BaselineRegisters_arm_h
+#define jit_arm_BaselineRegisters_arm_h
 
 #ifdef JS_ION
 
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 // r15 = program-counter
 // r14 = link-register
 
 // r13 = stack-pointer
@@ -52,9 +52,9 @@ static MOZ_CONSTEXPR_VAR Register Baseli
 static MOZ_CONSTEXPR_VAR FloatRegister FloatReg0      = d0;
 static MOZ_CONSTEXPR_VAR FloatRegister FloatReg1      = d2;
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_arm_BaselineRegisters_arm_h */
+#endif /* jit_arm_BaselineRegisters_arm_h */
rename from js/src/ion/arm/CodeGenerator-arm.cpp
rename to js/src/jit/arm/CodeGenerator-arm.cpp
--- a/js/src/ion/arm/CodeGenerator-arm.cpp
+++ b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -1,33 +1,33 @@
 /* -*- 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/. */
 
-#include "ion/arm/CodeGenerator-arm.h"
+#include "jit/arm/CodeGenerator-arm.h"
 
 #include "mozilla/MathAlgorithms.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsnum.h"
 
-#include "ion/CodeGenerator.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonFrames.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/PerfSpewer.h"
+#include "jit/CodeGenerator.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonFrames.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/PerfSpewer.h"
 #include "vm/Shape.h"
 
 #include "jsscriptinlines.h"
 
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "jit/shared/CodeGenerator-shared-inl.h"
 #include "vm/Shape-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 // shared
rename from js/src/ion/arm/CodeGenerator-arm.h
rename to js/src/jit/arm/CodeGenerator-arm.h
--- a/js/src/ion/arm/CodeGenerator-arm.h
+++ b/js/src/jit/arm/CodeGenerator-arm.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_arm_CodeGenerator_arm_h
-#define ion_arm_CodeGenerator_arm_h
+#ifndef jit_arm_CodeGenerator_arm_h
+#define jit_arm_CodeGenerator_arm_h
 
-#include "ion/arm/Assembler-arm.h"
-#include "ion/shared/CodeGenerator-shared.h"
+#include "jit/arm/Assembler-arm.h"
+#include "jit/shared/CodeGenerator-shared.h"
 
 namespace js {
 namespace ion {
 
 class OutOfLineBailout;
 class OutOfLineTableSwitch;
 
 class CodeGeneratorARM : public CodeGeneratorShared
@@ -197,9 +197,9 @@ class OutOfLineBailout : public OutOfLin
     LSnapshot *snapshot() const {
         return snapshot_;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_CodeGenerator_arm_h */
+#endif /* jit_arm_CodeGenerator_arm_h */
rename from js/src/ion/arm/IonFrames-arm.cpp
rename to js/src/jit/arm/IonFrames-arm.cpp
--- a/js/src/ion/arm/IonFrames-arm.cpp
+++ b/js/src/jit/arm/IonFrames-arm.cpp
@@ -1,16 +1,16 @@
 /* -*- 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/. */
 
-#include "ion/Ion.h"
-#include "ion/IonFrames.h"
+#include "jit/Ion.h"
+#include "jit/IonFrames.h"
 
 using namespace js;
 using namespace js::ion;
 
 IonJSFrameLayout *
 InvalidationBailoutStack::fp() const
 {
     return (IonJSFrameLayout *) (sp() + ionScript_->frameSize());
rename from js/src/ion/arm/IonFrames-arm.h
rename to js/src/jit/arm/IonFrames-arm.h
--- a/js/src/ion/arm/IonFrames-arm.h
+++ b/js/src/jit/arm/IonFrames-arm.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_arm_IonFrames_arm_h
-#define ion_arm_IonFrames_arm_h
+#ifndef jit_arm_IonFrames_arm_h
+#define jit_arm_IonFrames_arm_h
 
-#include "ion/shared/IonFrames-shared.h"
+#include "jit/shared/IonFrames-shared.h"
 
 namespace js {
 namespace ion {
 
 class IonFramePrefix;
 // Layout of the frame prefix. This assumes the stack architecture grows down.
 // If this is ever not the case, we'll have to refactor.
 class IonCommonFrameLayout
@@ -534,9 +534,9 @@ class InvalidationBailoutStack
     }
 
     void checkInvariants() const;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_IonFrames_arm_h */
+#endif /* jit_arm_IonFrames_arm_h */
rename from js/src/ion/arm/LIR-arm.h
rename to js/src/jit/arm/LIR-arm.h
--- a/js/src/ion/arm/LIR-arm.h
+++ b/js/src/jit/arm/LIR-arm.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_arm_LIR_arm_h
-#define ion_arm_LIR_arm_h
+#ifndef jit_arm_LIR_arm_h
+#define jit_arm_LIR_arm_h
 
 namespace js {
 namespace ion {
 
 class LBox : public LInstructionHelper<2, 1, 0>
 {
     MIRType type_;
 
@@ -407,9 +407,9 @@ class LAsmJSLoadFuncPtr : public LInstru
     const LDefinition *temp() {
         return getTemp(0);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_LIR_arm_h */
+#endif /* jit_arm_LIR_arm_h */
rename from js/src/ion/arm/LOpcodes-arm.h
rename to js/src/jit/arm/LOpcodes-arm.h
--- a/js/src/ion/arm/LOpcodes-arm.h
+++ b/js/src/jit/arm/LOpcodes-arm.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_arm_LOpcodes_arm_h
-#define ion_arm_LOpcodes_arm_h
+#ifndef jit_arm_LOpcodes_arm_h
+#define jit_arm_LOpcodes_arm_h
 
 #define LIR_CPU_OPCODE_LIST(_)  \
     _(Unbox)                    \
     _(UnboxDouble)              \
     _(Box)                      \
     _(BoxDouble)                \
     _(DivI)                     \
     _(SoftDivI)                 \
@@ -21,9 +21,9 @@
     _(ModMaskI)                 \
     _(PowHalfD)                 \
     _(UInt32ToDouble)           \
     _(UDiv)                     \
     _(UMod)                     \
     _(SoftUDivOrMod)            \
     _(AsmJSLoadFuncPtr)
 
-#endif /* ion_arm_LOpcodes_arm_h */
+#endif /* jit_arm_LOpcodes_arm_h */
rename from js/src/ion/arm/Lowering-arm.cpp
rename to js/src/jit/arm/Lowering-arm.cpp
--- a/js/src/ion/arm/Lowering-arm.cpp
+++ b/js/src/jit/arm/Lowering-arm.cpp
@@ -1,21 +1,21 @@
 /* -*- 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/. */
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/arm/Assembler-arm.h"
-#include "ion/Lowering.h"
-#include "ion/MIR.h"
+#include "jit/arm/Assembler-arm.h"
+#include "jit/Lowering.h"
+#include "jit/MIR.h"
 
-#include "ion/shared/Lowering-shared-inl.h"
+#include "jit/shared/Lowering-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 bool
 LIRGeneratorARM::useBox(LInstruction *lir, size_t n, MDefinition *mir,
rename from js/src/ion/arm/Lowering-arm.h
rename to js/src/jit/arm/Lowering-arm.h
--- a/js/src/ion/arm/Lowering-arm.h
+++ b/js/src/jit/arm/Lowering-arm.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_arm_Lowering_arm_h
-#define ion_arm_Lowering_arm_h
+#ifndef jit_arm_Lowering_arm_h
+#define jit_arm_Lowering_arm_h
 
-#include "ion/shared/Lowering-shared.h"
+#include "jit/shared/Lowering-shared.h"
 
 namespace js {
 namespace ion {
 
 class LIRGeneratorARM : public LIRGeneratorShared
 {
   public:
     LIRGeneratorARM(MIRGenerator *gen, MIRGraph &graph, LIRGraph &lirGraph)
@@ -84,9 +84,9 @@ class LIRGeneratorARM : public LIRGenera
     bool visitStoreTypedArrayElementStatic(MStoreTypedArrayElementStatic *ins);
 };
 
 typedef LIRGeneratorARM LIRGeneratorSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_Lowering_arm_h */
+#endif /* jit_arm_Lowering_arm_h */
rename from js/src/ion/arm/MacroAssembler-arm.cpp
rename to js/src/jit/arm/MacroAssembler-arm.cpp
--- a/js/src/ion/arm/MacroAssembler-arm.cpp
+++ b/js/src/jit/arm/MacroAssembler-arm.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/arm/MacroAssembler-arm.h"
+#include "jit/arm/MacroAssembler-arm.h"
 
 #include "mozilla/DebugOnly.h"
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/Bailouts.h"
-#include "ion/BaselineFrame.h"
-#include "ion/MoveEmitter.h"
+#include "jit/Bailouts.h"
+#include "jit/BaselineFrame.h"
+#include "jit/MoveEmitter.h"
 
 using namespace js;
 using namespace ion;
 
 using mozilla::Abs;
 
 bool
 isValueDTRDCandidate(ValueOperand &val)
rename from js/src/ion/arm/MacroAssembler-arm.h
rename to js/src/jit/arm/MacroAssembler-arm.h
--- a/js/src/ion/arm/MacroAssembler-arm.h
+++ b/js/src/jit/arm/MacroAssembler-arm.h
@@ -1,25 +1,25 @@
 /* -*- 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 ion_arm_MacroAssembler_arm_h
-#define ion_arm_MacroAssembler_arm_h
+#ifndef jit_arm_MacroAssembler_arm_h
+#define jit_arm_MacroAssembler_arm_h
 
 #include "mozilla/DebugOnly.h"
 
 #include "jsopcode.h"
 
-#include "ion/arm/Assembler-arm.h"
-#include "ion/IonCaches.h"
-#include "ion/IonFrames.h"
-#include "ion/MoveResolver.h"
+#include "jit/arm/Assembler-arm.h"
+#include "jit/IonCaches.h"
+#include "jit/IonFrames.h"
+#include "jit/MoveResolver.h"
 
 using mozilla::DebugOnly;
 
 namespace js {
 namespace ion {
 
 static Register CallReg = ip;
 static const int defaultShift = 3;
@@ -1374,9 +1374,9 @@ class MacroAssemblerARMCompat : public M
     }
 };
 
 typedef MacroAssemblerARMCompat MacroAssemblerSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_MacroAssembler_arm_h */
+#endif /* jit_arm_MacroAssembler_arm_h */
rename from js/src/ion/arm/MoveEmitter-arm.cpp
rename to js/src/jit/arm/MoveEmitter-arm.cpp
--- a/js/src/ion/arm/MoveEmitter-arm.cpp
+++ b/js/src/jit/arm/MoveEmitter-arm.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/arm/MoveEmitter-arm.h"
+#include "jit/arm/MoveEmitter-arm.h"
 
 using namespace js;
 using namespace js::ion;
 
 MoveEmitterARM::MoveEmitterARM(MacroAssemblerARMCompat &masm)
   : inCycle_(false),
     masm(masm),
     pushedAtCycle_(-1),
rename from js/src/ion/arm/MoveEmitter-arm.h
rename to js/src/jit/arm/MoveEmitter-arm.h
--- a/js/src/ion/arm/MoveEmitter-arm.h
+++ b/js/src/jit/arm/MoveEmitter-arm.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_arm_MoveEmitter_arm_h
-#define ion_arm_MoveEmitter_arm_h
+#ifndef jit_arm_MoveEmitter_arm_h
+#define jit_arm_MoveEmitter_arm_h
 
-#include "ion/IonMacroAssembler.h"
-#include "ion/MoveResolver.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/MoveResolver.h"
 
 namespace js {
 namespace ion {
 
 class CodeGenerator;
 
 class MoveEmitterARM
 {
@@ -60,9 +60,9 @@ class MoveEmitterARM
     void finish();
 };
 
 typedef MoveEmitterARM MoveEmitter;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_arm_MoveEmitter_arm_h */
+#endif /* jit_arm_MoveEmitter_arm_h */
rename from js/src/ion/arm/Trampoline-arm.cpp
rename to js/src/jit/arm/Trampoline-arm.cpp
--- a/js/src/ion/arm/Trampoline-arm.cpp
+++ b/js/src/jit/arm/Trampoline-arm.cpp
@@ -2,24 +2,24 @@
  * 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/. */
 
 #include "jscompartment.h"
 
 #include "assembler/assembler/MacroAssembler.h"
-#include "ion/arm/BaselineHelpers-arm.h"
-#include "ion/Bailouts.h"
-#include "ion/ExecutionModeInlines.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonFrames.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/VMFunctions.h"
+#include "jit/arm/BaselineHelpers-arm.h"
+#include "jit/Bailouts.h"
+#include "jit/ExecutionModeInlines.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonFrames.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/VMFunctions.h"
 
 using namespace js;
 using namespace js::ion;
 
 static const FloatRegisterSet NonVolatileFloatRegs =
     FloatRegisterSet((1 << FloatRegisters::d8) |
                      (1 << FloatRegisters::d9) |
                      (1 << FloatRegisters::d10) |
rename from js/src/ion/shared/Assembler-shared.h
rename to js/src/jit/shared/Assembler-shared.h
--- a/js/src/ion/shared/Assembler-shared.h
+++ b/js/src/jit/shared/Assembler-shared.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_shared_Assembler_shared_h
-#define ion_shared_Assembler_shared_h
+#ifndef jit_shared_Assembler_shared_h
+#define jit_shared_Assembler_shared_h
 
 #include "mozilla/PodOperations.h"
 
 #include <limits.h>
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/Registers.h"
-#include "ion/RegisterSets.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/Registers.h"
+#include "jit/RegisterSets.h"
 
 #if defined(JS_CPU_X64) || defined(JS_CPU_ARM)
 // JS_SMALL_BRANCH means the range on a branch instruction
 // is smaller than the whole address space
 #    define JS_SMALL_BRANCH
 #endif
 namespace js {
 namespace ion {
@@ -569,9 +569,9 @@ class CodeLocationLabel
         return raw_;
     }
 };
 
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_Assembler_shared_h */
+#endif /* jit_shared_Assembler_shared_h */
rename from js/src/ion/shared/Assembler-x86-shared.cpp
rename to js/src/jit/shared/Assembler-x86-shared.cpp
--- a/js/src/ion/shared/Assembler-x86-shared.cpp
+++ b/js/src/jit/shared/Assembler-x86-shared.cpp
@@ -1,16 +1,16 @@
 /* -*- 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/. */
 
 #include "gc/Marking.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonMacroAssembler.h"
 
 using namespace js;
 using namespace js::ion;
 
 void
 AssemblerX86Shared::copyJumpRelocationTable(uint8_t *dest)
 {
     if (jumpRelocations_.length())
rename from js/src/ion/shared/Assembler-x86-shared.h
rename to js/src/jit/shared/Assembler-x86-shared.h
--- a/js/src/ion/shared/Assembler-x86-shared.h
+++ b/js/src/jit/shared/Assembler-x86-shared.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_shared_Assembler_x86_shared_h
-#define ion_shared_Assembler_x86_shared_h
+#ifndef jit_shared_Assembler_x86_shared_h
+#define jit_shared_Assembler_x86_shared_h
 
 #include <cstddef>
 
 #include "assembler/assembler/X86Assembler.h"
-#include "ion/shared/Assembler-shared.h"
+#include "jit/shared/Assembler-shared.h"
 
 namespace js {
 namespace ion {
 
 class AssemblerX86Shared
 {
   protected:
     struct RelativePatch {
@@ -1393,9 +1393,9 @@ class AssemblerX86Shared
                   *ptr == 0xE8);  // CALL
         *ptr = enabled ? 0xE8 : 0x3D;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_Assembler_x86_shared_h */
+#endif /* jit_shared_Assembler_x86_shared_h */
rename from js/src/ion/shared/BaselineCompiler-shared.cpp
rename to js/src/jit/shared/BaselineCompiler-shared.cpp
--- a/js/src/ion/shared/BaselineCompiler-shared.cpp
+++ b/js/src/jit/shared/BaselineCompiler-shared.cpp
@@ -1,18 +1,18 @@
 /* -*- 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/. */
 
-#include "ion/shared/BaselineCompiler-shared.h"
+#include "jit/shared/BaselineCompiler-shared.h"
 
-#include "ion/BaselineIC.h"
-#include "ion/VMFunctions.h"
+#include "jit/BaselineIC.h"
+#include "jit/VMFunctions.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompilerShared::BaselineCompilerShared(JSContext *cx, HandleScript script)
   : cx(cx),
     script(cx, script),
     pc(script->code),
rename from js/src/ion/shared/BaselineCompiler-shared.h
rename to js/src/jit/shared/BaselineCompiler-shared.h
--- a/js/src/ion/shared/BaselineCompiler-shared.h
+++ b/js/src/jit/shared/BaselineCompiler-shared.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_shared_BaselineCompiler_shared_h
-#define ion_shared_BaselineCompiler_shared_h
+#ifndef jit_shared_BaselineCompiler_shared_h
+#define jit_shared_BaselineCompiler_shared_h
 
 #include "jscntxt.h"
 
-#include "ion/BaselineFrameInfo.h"
-#include "ion/BaselineIC.h"
-#include "ion/IonInstrumentation.h"
-#include "ion/IonMacroAssembler.h"
-#include "ion/IonSpewer.h"
+#include "jit/BaselineFrameInfo.h"
+#include "jit/BaselineIC.h"
+#include "jit/IonInstrumentation.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/IonSpewer.h"
 
 namespace js {
 namespace ion {
 
 class BaselineCompilerShared
 {
   protected:
     JSContext *cx;
@@ -136,9 +136,9 @@ class BaselineCompilerShared
     BytecodeAnalysis &analysis() {
         return analysis_;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_BaselineCompiler_shared_h */
+#endif /* jit_shared_BaselineCompiler_shared_h */
rename from js/src/ion/shared/BaselineCompiler-x86-shared.cpp
rename to js/src/jit/shared/BaselineCompiler-x86-shared.cpp
--- a/js/src/ion/shared/BaselineCompiler-x86-shared.cpp
+++ b/js/src/jit/shared/BaselineCompiler-x86-shared.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/shared/BaselineCompiler-x86-shared.h"
+#include "jit/shared/BaselineCompiler-x86-shared.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompilerX86Shared::BaselineCompilerX86Shared(JSContext *cx, HandleScript script)
   : BaselineCompilerShared(cx, script)
 {
 }
rename from js/src/ion/shared/BaselineCompiler-x86-shared.h
rename to js/src/jit/shared/BaselineCompiler-x86-shared.h
--- a/js/src/ion/shared/BaselineCompiler-x86-shared.h
+++ b/js/src/jit/shared/BaselineCompiler-x86-shared.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_shared_BaselineCompiler_x86_shared_h
-#define ion_shared_BaselineCompiler_x86_shared_h
+#ifndef jit_shared_BaselineCompiler_x86_shared_h
+#define jit_shared_BaselineCompiler_x86_shared_h
 
-#include "ion/shared/BaselineCompiler-shared.h"
+#include "jit/shared/BaselineCompiler-shared.h"
 
 namespace js {
 namespace ion {
 
 class BaselineCompilerX86Shared : public BaselineCompilerShared
 {
   protected:
     BaselineCompilerX86Shared(JSContext *cx, HandleScript script);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_BaselineCompiler_x86_shared_h */
+#endif /* jit_shared_BaselineCompiler_x86_shared_h */
rename from js/src/ion/shared/BaselineIC-x86-shared.cpp
rename to js/src/jit/shared/BaselineIC-x86-shared.cpp
--- a/js/src/ion/shared/BaselineIC-x86-shared.cpp
+++ b/js/src/jit/shared/BaselineIC-x86-shared.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/IonLinker.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/IonLinker.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 ICCompare_Double::Compiler::generateStubCode(MacroAssembler &masm)
 {
     Label failure, notNaN;
rename from js/src/ion/shared/CodeGenerator-shared-inl.h
rename to js/src/jit/shared/CodeGenerator-shared-inl.h
--- a/js/src/ion/shared/CodeGenerator-shared-inl.h
+++ b/js/src/jit/shared/CodeGenerator-shared-inl.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_shared_CodeGenerator_shared_inl_h
-#define ion_shared_CodeGenerator_shared_inl_h
+#ifndef jit_shared_CodeGenerator_shared_inl_h
+#define jit_shared_CodeGenerator_shared_inl_h
 
-#include "ion/shared/CodeGenerator-shared.h"
+#include "jit/shared/CodeGenerator-shared.h"
 
 namespace js {
 namespace ion {
 
 static inline int32_t
 ToInt32(const LAllocation *a)
 {
     if (a->isConstantValue())
@@ -156,9 +156,9 @@ CodeGeneratorShared::restoreLiveIgnore(L
     JS_ASSERT(!ins->isCall());
     LSafepoint *safepoint = ins->safepoint();
     masm.PopRegsInMaskIgnore(safepoint->liveRegs(), ignore);
 }
 
 } // ion
 } // js
 
-#endif /* ion_shared_CodeGenerator_shared_inl_h */
+#endif /* jit_shared_CodeGenerator_shared_inl_h */
rename from js/src/ion/shared/CodeGenerator-shared.cpp
rename to js/src/jit/shared/CodeGenerator-shared.cpp
--- a/js/src/ion/shared/CodeGenerator-shared.cpp
+++ b/js/src/jit/shared/CodeGenerator-shared.cpp
@@ -1,26 +1,26 @@
 /* -*- 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/. */
 
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "jit/shared/CodeGenerator-shared-inl.h"
 
 #include "mozilla/DebugOnly.h"
 
 #include "builtin/ParallelArray.h"
-#include "ion/IonMacroAssembler.h"
-#include "ion/IonSpewer.h"
-#include "ion/MIR.h"
-#include "ion/MIRGenerator.h"
-#include "ion/ParallelFunctions.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/IonSpewer.h"
+#include "jit/MIR.h"
+#include "jit/MIRGenerator.h"
+#include "jit/ParallelFunctions.h"
 
-#include "ion/IonFrames-inl.h"
+#include "jit/IonFrames-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 namespace js {
 namespace ion {
rename from js/src/ion/shared/CodeGenerator-shared.h
rename to js/src/jit/shared/CodeGenerator-shared.h
--- a/js/src/ion/shared/CodeGenerator-shared.h
+++ b/js/src/jit/shared/CodeGenerator-shared.h
@@ -1,26 +1,26 @@
 /* -*- 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 ion_shared_CodeGenerator_shared_h
-#define ion_shared_CodeGenerator_shared_h
+#ifndef jit_shared_CodeGenerator_shared_h
+#define jit_shared_CodeGenerator_shared_h
 
-#include "ion/IonCaches.h"
-#include "ion/IonFrames.h"
-#include "ion/IonMacroAssembler.h"
-#include "ion/LIR.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
-#include "ion/Safepoints.h"
-#include "ion/SnapshotWriter.h"
-#include "ion/VMFunctions.h"
+#include "jit/IonCaches.h"
+#include "jit/IonFrames.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
+#include "jit/Safepoints.h"
+#include "jit/SnapshotWriter.h"
+#include "jit/VMFunctions.h"
 
 namespace js {
 namespace ion {
 
 class OutOfLineCode;
 class CodeGenerator;
 class MacroAssembler;
 class IonCache;
@@ -684,9 +684,9 @@ class OutOfLinePropagateAbortPar : publi
     LInstruction *lir() { return lir_; }
 
     bool generate(CodeGeneratorShared *codegen);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_CodeGenerator_shared_h */
+#endif /* jit_shared_CodeGenerator_shared_h */
rename from js/src/ion/shared/CodeGenerator-x86-shared.cpp
rename to js/src/jit/shared/CodeGenerator-x86-shared.cpp
--- a/js/src/ion/shared/CodeGenerator-x86-shared.cpp
+++ b/js/src/jit/shared/CodeGenerator-x86-shared.cpp
@@ -1,29 +1,29 @@
 /* -*- 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/. */
 
-#include "ion/shared/CodeGenerator-x86-shared.h"
+#include "jit/shared/CodeGenerator-x86-shared.h"
 
 #include "mozilla/DebugOnly.h"
 #include "mozilla/MathAlgorithms.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsmath.h"
 
-#include "ion/IonCompartment.h"
-#include "ion/IonFrames.h"
-#include "ion/ParallelFunctions.h"
-#include "ion/RangeAnalysis.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonFrames.h"
+#include "jit/ParallelFunctions.h"
+#include "jit/RangeAnalysis.h"
 
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "jit/shared/CodeGenerator-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 namespace js {
 namespace ion {
rename from js/src/ion/shared/CodeGenerator-x86-shared.h
rename to js/src/jit/shared/CodeGenerator-x86-shared.h
--- a/js/src/ion/shared/CodeGenerator-x86-shared.h
+++ b/js/src/jit/shared/CodeGenerator-x86-shared.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_shared_CodeGenerator_x86_shared_h
-#define ion_shared_CodeGenerator_x86_shared_h
+#ifndef jit_shared_CodeGenerator_x86_shared_h
+#define jit_shared_CodeGenerator_x86_shared_h
 
-#include "ion/shared/CodeGenerator-shared.h"
+#include "jit/shared/CodeGenerator-shared.h"
 
 namespace js {
 namespace ion {
 
 class OutOfLineBailout;
 class OutOfLineUndoALUOperation;
 class MulNegativeZeroCheck;
 class ModOverflowCheck;
@@ -142,9 +142,9 @@ class OutOfLineBailout : public OutOfLin
     LSnapshot *snapshot() const {
         return snapshot_;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_CodeGenerator_x86_shared_h */
+#endif /* jit_shared_CodeGenerator_x86_shared_h */
rename from js/src/ion/shared/IonAssemblerBuffer.h
rename to js/src/jit/shared/IonAssemblerBuffer.h
--- a/js/src/ion/shared/IonAssemblerBuffer.h
+++ b/js/src/jit/shared/IonAssemblerBuffer.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_shared_IonAssemblerBuffer_h
-#define ion_shared_IonAssemblerBuffer_h
+#ifndef jit_shared_IonAssemblerBuffer_h
+#define jit_shared_IonAssemblerBuffer_h
 
 // needed for the definition of Label :(
-#include "ion/shared/Assembler-shared.h"
+#include "jit/shared/Assembler-shared.h"
 
 namespace js {
 namespace ion {
 
 // This should theoretically reside inside of AssemblerBuffer, but that won't be nice
 // AssemblerBuffer is templated, BufferOffset would be indirectly.
 // A BufferOffset is the offset into a buffer, expressed in bytes of instructions.
 
@@ -268,9 +268,9 @@ struct AssemblerBuffer
         }
     };
   public:
     LifoAlloc LifoAlloc_;
 };
 
 } // ion
 } // js
-#endif /* ion_shared_IonAssemblerBuffer_h */
+#endif /* jit_shared_IonAssemblerBuffer_h */
rename from js/src/ion/shared/IonAssemblerBufferWithConstantPools.h
rename to js/src/jit/shared/IonAssemblerBufferWithConstantPools.h
--- a/js/src/ion/shared/IonAssemblerBufferWithConstantPools.h
+++ b/js/src/jit/shared/IonAssemblerBufferWithConstantPools.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_shared_IonAssemblerBufferWithConstantPools_h
-#define ion_shared_IonAssemblerBufferWithConstantPools_h
+#ifndef jit_shared_IonAssemblerBufferWithConstantPools_h
+#define jit_shared_IonAssemblerBufferWithConstantPools_h
 
 #include "assembler/wtf/SegmentedVector.h"
-#include "ion/IonSpewer.h"
-#include "ion/shared/IonAssemblerBuffer.h"
+#include "jit/IonSpewer.h"
+#include "jit/shared/IonAssemblerBuffer.h"
 
 namespace js {
 namespace ion {
 typedef Vector<BufferOffset, 512, IonAllocPolicy> LoadOffsets;
 
 struct Pool
   : public IonAllocPolicy
 {
@@ -1143,9 +1143,9 @@ struct AssemblerBufferWithConstantPool :
         size_t size = getPoolEntrySize(pe);
         uint8_t *entry = getPoolEntry(pe);
         memcpy(buff, entry, size);
     }
 
 };
 } // ion
 } // js
-#endif /* ion_shared_IonAssemblerBufferWithConstantPools_h */
+#endif /* jit_shared_IonAssemblerBufferWithConstantPools_h */
rename from js/src/ion/shared/IonFrames-shared.h
rename to js/src/jit/shared/IonFrames-shared.h
--- a/js/src/ion/shared/IonFrames-shared.h
+++ b/js/src/jit/shared/IonFrames-shared.h
@@ -1,17 +1,17 @@
 /* -*- 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 ion_shared_IonFrames_shared_h
-#define ion_shared_IonFrames_shared_h
+#ifndef jit_shared_IonFrames_shared_h
+#define jit_shared_IonFrames_shared_h
 
 #define ION_FRAME_DOMGETTER ((IonCode *)0x1)
 #define ION_FRAME_DOMSETTER ((IonCode *)0x2)
 #define ION_FRAME_DOMMETHOD ((IonCode *)0x3)
 #define ION_FRAME_OOL_NATIVE_GETTER ((IonCode *)0x4)
 #define ION_FRAME_OOL_PROPERTY_OP   ((IonCode *)0x5)
 #define ION_FRAME_OOL_PROXY_GET     ((IonCode *)0x6)
 
-#endif /* ion_shared_IonFrames_shared_h */
+#endif /* jit_shared_IonFrames_shared_h */
rename from js/src/ion/shared/IonFrames-x86-shared.cpp
rename to js/src/jit/shared/IonFrames-x86-shared.cpp
--- a/js/src/ion/shared/IonFrames-x86-shared.cpp
+++ b/js/src/jit/shared/IonFrames-x86-shared.cpp
@@ -1,16 +1,16 @@
 /* -*- 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/. */
 
-#include "ion/Ion.h"
-#include "ion/IonFrames.h"
+#include "jit/Ion.h"
+#include "jit/IonFrames.h"
 
 using namespace js;
 using namespace js::ion;
 
 IonJSFrameLayout *
 InvalidationBailoutStack::fp() const
 {
     return (IonJSFrameLayout *) (sp() + ionScript_->frameSize());
rename from js/src/ion/shared/IonFrames-x86-shared.h
rename to js/src/jit/shared/IonFrames-x86-shared.h
--- a/js/src/ion/shared/IonFrames-x86-shared.h
+++ b/js/src/jit/shared/IonFrames-x86-shared.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_shared_IonFrames_x86_shared_h
-#define ion_shared_IonFrames_x86_shared_h
+#ifndef jit_shared_IonFrames_x86_shared_h
+#define jit_shared_IonFrames_x86_shared_h
 
 #include <stdint.h>
 
-#include "ion/shared/IonFrames-shared.h"
+#include "jit/shared/IonFrames-shared.h"
 
 namespace js {
 namespace ion {
 
 class IonCommonFrameLayout
 {
   private:
     uint8_t *returnAddress_;
@@ -532,9 +532,9 @@ class InvalidationBailoutStack
     }
 
     void checkInvariants() const;
 };
 
 }
 }
 
-#endif /* ion_shared_IonFrames_x86_shared_h */
+#endif /* jit_shared_IonFrames_x86_shared_h */
rename from js/src/ion/shared/LIR-x86-shared.h
rename to js/src/jit/shared/LIR-x86-shared.h
--- a/js/src/ion/shared/LIR-x86-shared.h
+++ b/js/src/jit/shared/LIR-x86-shared.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_shared_LIR_x86_shared_h
-#define ion_shared_LIR_x86_shared_h
+#ifndef jit_shared_LIR_x86_shared_h
+#define jit_shared_LIR_x86_shared_h
 
 namespace js {
 namespace ion {
 
 class LDivI : public LBinaryMath<1>
 {
   public:
     LIR_HEADER(DivI)
@@ -294,9 +294,9 @@ class LMulI : public LBinaryMath<0, 1>
     const LAllocation *lhsCopy() {
         return this->getOperand(2);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_LIR_x86_shared_h */
+#endif /* jit_shared_LIR_x86_shared_h */
rename from js/src/ion/shared/Lowering-shared-inl.h
rename to js/src/jit/shared/Lowering-shared-inl.h
--- a/js/src/ion/shared/Lowering-shared-inl.h
+++ b/js/src/jit/shared/Lowering-shared-inl.h
@@ -1,21 +1,21 @@
 /* -*- 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 ion_shared_Lowering_shared_inl_h
-#define ion_shared_Lowering_shared_inl_h
+#ifndef jit_shared_Lowering_shared_inl_h
+#define jit_shared_Lowering_shared_inl_h
 
-#include "ion/shared/Lowering-shared.h"
+#include "jit/shared/Lowering-shared.h"
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 namespace js {
 namespace ion {
 
 bool
 LIRGeneratorShared::emitAtUses(MInstruction *mir)
 {
     JS_ASSERT(mir->canEmitAtUses());
@@ -454,9 +454,9 @@ LIRGeneratorShared::fillBoxUses(LInstruc
     lir->getOperand(n + 1)->toUse()->setVirtualRegister(VirtualRegisterOfPayload(mir));
     return true;
 }
 #endif
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_Lowering_shared_inl_h */
+#endif /* jit_shared_Lowering_shared_inl_h */
rename from js/src/ion/shared/Lowering-shared.cpp
rename to js/src/jit/shared/Lowering-shared.cpp
--- a/js/src/ion/shared/Lowering-shared.cpp
+++ b/js/src/jit/shared/Lowering-shared.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/shared/Lowering-shared-inl.h"
+#include "jit/shared/Lowering-shared-inl.h"
 
-#include "ion/LIR.h"
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/LIR.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace ion;
 
 bool
 LIRGeneratorShared::visitConstant(MConstant *ins)
 {
     const Value &v = ins->value();
rename from js/src/ion/shared/Lowering-shared.h
rename to js/src/jit/shared/Lowering-shared.h
--- a/js/src/ion/shared/Lowering-shared.h
+++ b/js/src/jit/shared/Lowering-shared.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_shared_Lowering_shared_h
-#define ion_shared_Lowering_shared_h
+#ifndef jit_shared_Lowering_shared_h
+#define jit_shared_Lowering_shared_h
 
 // This file declares the structures that are used for attaching LIR to a
 // MIRGraph.
 
-#include "ion/IonAllocPolicy.h"
-#include "ion/LIR.h"
+#include "jit/IonAllocPolicy.h"
+#include "jit/LIR.h"
 
 namespace js {
 namespace ion {
 
 class MBasicBlock;
 class MTableSwitch;
 class MIRGenerator;
 class MIRGraph;
@@ -180,9 +180,9 @@ class LIRGeneratorShared : public MInstr
     static bool allowStaticTypedArrayAccesses() {
         return false;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_Lowering_shared_h */
+#endif /* jit_shared_Lowering_shared_h */
rename from js/src/ion/shared/Lowering-x86-shared.cpp
rename to js/src/jit/shared/Lowering-x86-shared.cpp
--- a/js/src/ion/shared/Lowering-x86-shared.cpp
+++ b/js/src/jit/shared/Lowering-x86-shared.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/shared/Lowering-x86-shared.h"
+#include "jit/shared/Lowering-x86-shared.h"
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/Lowering.h"
-#include "ion/MIR.h"
+#include "jit/Lowering.h"
+#include "jit/MIR.h"
 
-#include "ion/shared/Lowering-shared-inl.h"
+#include "jit/shared/Lowering-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 LTableSwitch *
 LIRGeneratorX86Shared::newLTableSwitch(const LAllocation &in, const LDefinition &inputCopy,
rename from js/src/ion/shared/Lowering-x86-shared.h
rename to js/src/jit/shared/Lowering-x86-shared.h
--- a/js/src/ion/shared/Lowering-x86-shared.h
+++ b/js/src/jit/shared/Lowering-x86-shared.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_shared_Lowering_x86_shared_h
-#define ion_shared_Lowering_x86_shared_h
+#ifndef jit_shared_Lowering_x86_shared_h
+#define jit_shared_Lowering_x86_shared_h
 
-#include "ion/shared/Lowering-shared.h"
+#include "jit/shared/Lowering-shared.h"
 
 namespace js {
 namespace ion {
 
 class LIRGeneratorX86Shared : public LIRGeneratorShared
 {
   protected:
     LIRGeneratorX86Shared(MIRGenerator *gen, MIRGraph &graph, LIRGraph &lirGraph)
@@ -48,9 +48,9 @@ class LIRGeneratorX86Shared : public LIR
     bool lowerUrshD(MUrsh *mir);
     bool lowerConstantDouble(double d, MInstruction *ins);
     bool lowerTruncateDToInt32(MTruncateToInt32 *ins);
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_Lowering_x86_shared_h */
+#endif /* jit_shared_Lowering_x86_shared_h */
rename from js/src/ion/shared/MacroAssembler-x86-shared.h
rename to js/src/jit/shared/MacroAssembler-x86-shared.h
--- a/js/src/ion/shared/MacroAssembler-x86-shared.h
+++ b/js/src/jit/shared/MacroAssembler-x86-shared.h
@@ -1,28 +1,28 @@
 /* -*- 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 ion_shared_MacroAssembler_x86_shared_h
-#define ion_shared_MacroAssembler_x86_shared_h
+#ifndef jit_shared_MacroAssembler_x86_shared_h
+#define jit_shared_MacroAssembler_x86_shared_h
 
 #include "mozilla/Casting.h"
 #include "mozilla/DebugOnly.h"
 
 #include "jsopcode.h"
 
-#include "ion/IonCaches.h"
-#include "ion/IonFrames.h"
+#include "jit/IonCaches.h"
+#include "jit/IonFrames.h"
 #if defined(JS_CPU_X86)
-# include "ion/x86/Assembler-x86.h"
+# include "jit/x86/Assembler-x86.h"
 #elif defined(JS_CPU_X64)
-# include "ion/x64/Assembler-x64.h"
+# include "jit/x64/Assembler-x64.h"
 #endif
 
 namespace js {
 namespace ion {
 
 class MacroAssemblerX86Shared : public Assembler
 {
   protected:
@@ -508,9 +508,9 @@ class MacroAssemblerX86Shared : public A
     void abiret() {
         ret();
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_shared_MacroAssembler_x86_shared_h */
+#endif /* jit_shared_MacroAssembler_x86_shared_h */
rename from js/src/ion/shared/MoveEmitter-x86-shared.cpp
rename to js/src/jit/shared/MoveEmitter-x86-shared.cpp
--- a/js/src/ion/shared/MoveEmitter-x86-shared.cpp
+++ b/js/src/jit/shared/MoveEmitter-x86-shared.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/shared/MoveEmitter-x86-shared.h"
+#include "jit/shared/MoveEmitter-x86-shared.h"
 
 using namespace js;
 using namespace js::ion;
 
 MoveEmitterX86::MoveEmitterX86(MacroAssemblerSpecific &masm)
   : inCycle_(false),
     masm(masm),
     pushedAtCycle_(-1)
rename from js/src/ion/shared/MoveEmitter-x86-shared.h
rename to js/src/jit/shared/MoveEmitter-x86-shared.h
--- a/js/src/ion/shared/MoveEmitter-x86-shared.h
+++ b/js/src/jit/shared/MoveEmitter-x86-shared.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_MoveEmitter_x86_shared_h
-#define ion_MoveEmitter_x86_shared_h
+#ifndef jit_MoveEmitter_x86_shared_h
+#define jit_MoveEmitter_x86_shared_h
 
-#include "ion/IonMacroAssembler.h"
-#include "ion/MoveResolver.h"
+#include "jit/IonMacroAssembler.h"
+#include "jit/MoveResolver.h"
 
 namespace js {
 namespace ion {
 
 class CodeGenerator;
 
 class MoveEmitterX86
 {
@@ -51,9 +51,9 @@ class MoveEmitterX86
     void finish();
 };
 
 typedef MoveEmitterX86 MoveEmitter;
 
 } // ion
 } // js
 
-#endif /* ion_MoveEmitter_x86_shared_h */
+#endif /* jit_MoveEmitter_x86_shared_h */
rename from js/src/ion/x64/Architecture-x64.h
rename to js/src/jit/x64/Architecture-x64.h
--- a/js/src/ion/x64/Architecture-x64.h
+++ b/js/src/jit/x64/Architecture-x64.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_x64_Architecture_x64_h
-#define ion_x64_Architecture_x64_h
+#ifndef jit_x64_Architecture_x64_h
+#define jit_x64_Architecture_x64_h
 
 #include "assembler/assembler/MacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 static const ptrdiff_t STACK_SLOT_SIZE       = 8;
 static const uint32_t MAX_STACK_SLOTS          = 256;
@@ -152,9 +152,9 @@ class FloatRegisters {
         (1 << JSC::X86Registers::xmm15);    // This is ScratchFloatReg.
 
     static const uint32_t AllocatableMask = AllMask & ~NonAllocatableMask;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_Architecture_x64_h */
+#endif /* jit_x64_Architecture_x64_h */
rename from js/src/ion/x64/Assembler-x64.cpp
rename to js/src/jit/x64/Assembler-x64.cpp
--- a/js/src/ion/x64/Assembler-x64.cpp
+++ b/js/src/jit/x64/Assembler-x64.cpp
@@ -1,18 +1,18 @@
 /* -*- 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/. */
 
-#include "ion/x64/Assembler-x64.h"
+#include "jit/x64/Assembler-x64.h"
 
 #include "gc/Marking.h"
-#include "ion/LIR.h"
+#include "jit/LIR.h"
 
 using namespace js;
 using namespace js::ion;
 
 ABIArgGenerator::ABIArgGenerator()
   :
 #if defined(XP_WIN)
     regIndex_(0),
rename from js/src/ion/x64/Assembler-x64.h
rename to js/src/jit/x64/Assembler-x64.h
--- a/js/src/ion/x64/Assembler-x64.h
+++ b/js/src/jit/x64/Assembler-x64.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_x64_Assembler_x64_h
-#define ion_x64_Assembler_x64_h
+#ifndef jit_x64_Assembler_x64_h
+#define jit_x64_Assembler_x64_h
 
 #include "mozilla/Util.h"
 
-#include "ion/CompactBuffer.h"
-#include "ion/IonCode.h"
-#include "ion/shared/Assembler-shared.h"
+#include "jit/CompactBuffer.h"
+#include "jit/IonCode.h"
+#include "jit/shared/Assembler-shared.h"
 
 namespace js {
 namespace ion {
 
 static MOZ_CONSTEXPR_VAR Register rax = { JSC::X86Registers::eax };
 static MOZ_CONSTEXPR_VAR Register rbx = { JSC::X86Registers::ebx };
 static MOZ_CONSTEXPR_VAR Register rcx = { JSC::X86Registers::ecx };
 static MOZ_CONSTEXPR_VAR Register rdx = { JSC::X86Registers::edx };
@@ -255,17 +255,17 @@ class Operand
         JS_ASSERT(kind() == REG_DISP || kind() == SCALE);
         return disp_;
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#include "ion/shared/Assembler-x86-shared.h"
+#include "jit/shared/Assembler-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 // Return operand from a JS -> JS call.
 static MOZ_CONSTEXPR_VAR ValueOperand JSReturnOperand = ValueOperand(JSReturnReg);
 
 class Assembler : public AssemblerX86Shared
@@ -773,9 +773,9 @@ GetFloatArgReg(uint32_t intArg, uint32_t
         return false;
     *out = FloatArgRegs[arg];
     return true;
 }
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_Assembler_x64_h */
+#endif /* jit_x64_Assembler_x64_h */
rename from js/src/ion/x64/Bailouts-x64.cpp
rename to js/src/jit/x64/Bailouts-x64.cpp
--- a/js/src/ion/x64/Bailouts-x64.cpp
+++ b/js/src/jit/x64/Bailouts-x64.cpp
@@ -2,18 +2,18 @@
  * 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/. */
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/Bailouts.h"
-#include "ion/IonCompartment.h"
+#include "jit/Bailouts.h"
+#include "jit/IonCompartment.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if defined(_WIN32)
 # pragma pack(push, 1)
 #endif
 
rename from js/src/ion/x64/BaselineCompiler-x64.cpp
rename to js/src/jit/x64/BaselineCompiler-x64.cpp
--- a/js/src/ion/x64/BaselineCompiler-x64.cpp
+++ b/js/src/jit/x64/BaselineCompiler-x64.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/x64/BaselineCompiler-x64.h"
+#include "jit/x64/BaselineCompiler-x64.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompilerX64::BaselineCompilerX64(JSContext *cx, HandleScript script)
   : BaselineCompilerX86Shared(cx, script)
 {
 }
rename from js/src/ion/x64/BaselineCompiler-x64.h
rename to js/src/jit/x64/BaselineCompiler-x64.h
--- a/js/src/ion/x64/BaselineCompiler-x64.h
+++ b/js/src/jit/x64/BaselineCompiler-x64.h
@@ -1,26 +1,26 @@
 /* -*- 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 ion_x64_BaselineCompiler_x64_h
-#define ion_x64_BaselineCompiler_x64_h
+#ifndef jit_x64_BaselineCompiler_x64_h
+#define jit_x64_BaselineCompiler_x64_h
 
-#include "ion/shared/BaselineCompiler-x86-shared.h"
+#include "jit/shared/BaselineCompiler-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 class BaselineCompilerX64 : public BaselineCompilerX86Shared
 {
   protected:
     BaselineCompilerX64(JSContext *cx, HandleScript script);
 };
 
 typedef BaselineCompilerX64 BaselineCompilerSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_BaselineCompiler_x64_h */
+#endif /* jit_x64_BaselineCompiler_x64_h */
rename from js/src/ion/x64/BaselineHelpers-x64.h
rename to js/src/jit/x64/BaselineHelpers-x64.h
--- a/js/src/ion/x64/BaselineHelpers-x64.h
+++ b/js/src/jit/x64/BaselineHelpers-x64.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_x64_BaselineHelpers_x64_h
-#define ion_x64_BaselineHelpers_x64_h
+#ifndef jit_x64_BaselineHelpers_x64_h
+#define jit_x64_BaselineHelpers_x64_h
 
 #ifdef JS_ION
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineRegisters.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 // Distance from Stack top to the top Value inside an IC stub (this is the return address).
 static const size_t ICStackValueOffset = sizeof(void *);
 
 inline void
@@ -272,9 +272,9 @@ EmitStubGuardFailure(MacroAssembler &mas
 }
 
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_x64_BaselineHelpers_x64_h */
+#endif /* jit_x64_BaselineHelpers_x64_h */
rename from js/src/ion/x64/BaselineIC-x64.cpp
rename to js/src/jit/x64/BaselineIC-x64.cpp
--- a/js/src/ion/x64/BaselineIC-x64.cpp
+++ b/js/src/jit/x64/BaselineIC-x64.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/IonLinker.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/IonLinker.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
 
 // ICCompare_Int32
rename from js/src/ion/x64/BaselineRegisters-x64.h
rename to js/src/jit/x64/BaselineRegisters-x64.h
--- a/js/src/ion/x64/BaselineRegisters-x64.h
+++ b/js/src/jit/x64/BaselineRegisters-x64.h
@@ -1,20 +1,20 @@
 /* -*- 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 ion_x64_BaselineRegisters_x64_h
-#define ion_x64_BaselineRegisters_x64_h
+#ifndef jit_x64_BaselineRegisters_x64_h
+#define jit_x64_BaselineRegisters_x64_h
 
 #ifdef JS_ION
 
-#include "ion/IonMacroAssembler.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 static MOZ_CONSTEXPR_VAR Register BaselineFrameReg    = rbp;
 static MOZ_CONSTEXPR_VAR Register BaselineStackReg    = rsp;
 
 static MOZ_CONSTEXPR_VAR ValueOperand R0(rcx);
@@ -33,9 +33,9 @@ static MOZ_CONSTEXPR_VAR Register Extrac
 static MOZ_CONSTEXPR_VAR FloatRegister FloatReg0      = xmm0;
 static MOZ_CONSTEXPR_VAR FloatRegister FloatReg1      = xmm1;
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_x64_BaselineRegisters_x64_h */
+#endif /* jit_x64_BaselineRegisters_x64_h */
rename from js/src/ion/x64/CodeGenerator-x64.cpp
rename to js/src/jit/x64/CodeGenerator-x64.cpp
--- a/js/src/ion/x64/CodeGenerator-x64.cpp
+++ b/js/src/jit/x64/CodeGenerator-x64.cpp
@@ -1,25 +1,25 @@
 /* -*- 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/. */
 
-#include "ion/x64/CodeGenerator-x64.h"
+#include "jit/x64/CodeGenerator-x64.h"
 
 #include "jsnum.h"
 
-#include "ion/MIR.h"
-#include "ion/MIRGraph.h"
+#include "jit/MIR.h"
+#include "jit/MIRGraph.h"
 #include "vm/Shape.h"
 
 #include "jsscriptinlines.h"
 
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "jit/shared/CodeGenerator-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 CodeGeneratorX64::CodeGeneratorX64(MIRGenerator *gen, LIRGraph *graph, MacroAssembler *masm)
   : CodeGeneratorX86Shared(gen, graph, masm)
 {
 }
rename from js/src/ion/x64/CodeGenerator-x64.h
rename to js/src/jit/x64/CodeGenerator-x64.h
--- a/js/src/ion/x64/CodeGenerator-x64.h
+++ b/js/src/jit/x64/CodeGenerator-x64.h
@@ -1,19 +1,19 @@
 /* -*- 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 ion_x64_CodeGenerator_x64_h
-#define ion_x64_CodeGenerator_x64_h
+#ifndef jit_x64_CodeGenerator_x64_h
+#define jit_x64_CodeGenerator_x64_h
 
-#include "ion/shared/CodeGenerator-x86-shared.h"
-#include "ion/x64/Assembler-x64.h"
+#include "jit/shared/CodeGenerator-x86-shared.h"
+#include "jit/x64/Assembler-x64.h"
 
 namespace js {
 namespace ion {
 
 class CodeGeneratorX64 : public CodeGeneratorX86Shared
 {
     CodeGeneratorX64 *thisFromCtor() {
         return this;
@@ -64,9 +64,9 @@ class CodeGeneratorX64 : public CodeGene
     void postAsmJSCall(LAsmJSCall *lir) {}
 };
 
 typedef CodeGeneratorX64 CodeGeneratorSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_CodeGenerator_x64_h */
+#endif /* jit_x64_CodeGenerator_x64_h */
rename from js/src/ion/x64/LIR-x64.h
rename to js/src/jit/x64/LIR-x64.h
--- a/js/src/ion/x64/LIR-x64.h
+++ b/js/src/jit/x64/LIR-x64.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_x64_LIR_x64_h
-#define ion_x64_LIR_x64_h
+#ifndef jit_x64_LIR_x64_h
+#define jit_x64_LIR_x64_h
 
 namespace js {
 namespace ion {
 
 // Given a typed input, returns an untyped box.
 class LBox : public LInstructionHelper<1, 1, 0>
 {
     MIRType type_;
@@ -91,9 +91,9 @@ class LAsmJSLoadFuncPtr : public LInstru
     const LDefinition *temp() {
         return getTemp(0);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_LIR_x64_h */
+#endif /* jit_x64_LIR_x64_h */
rename from js/src/ion/x64/LOpcodes-x64.h
rename to js/src/jit/x64/LOpcodes-x64.h
--- a/js/src/ion/x64/LOpcodes-x64.h
+++ b/js/src/jit/x64/LOpcodes-x64.h
@@ -1,24 +1,24 @@
 /* -*- 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 ion_x64_LOpcodes_x64_h
-#define ion_x64_LOpcodes_x64_h
+#ifndef jit_x64_LOpcodes_x64_h
+#define jit_x64_LOpcodes_x64_h
 
 #define LIR_CPU_OPCODE_LIST(_)      \
     _(Box)                          \
     _(Unbox)                        \
     _(UnboxDouble)                  \
     _(DivI)                         \
     _(DivPowTwoI)                   \
     _(DivSelfI)                     \
     _(ModI)                         \
     _(ModPowTwoI)                   \
     _(PowHalfD)                     \
     _(UInt32ToDouble)               \
     _(AsmJSLoadFuncPtr)             \
     _(UDivOrMod)
 
-#endif /* ion_x64_LOpcodes_x64_h */
+#endif /* jit_x64_LOpcodes_x64_h */
rename from js/src/ion/x64/Lowering-x64.cpp
rename to js/src/jit/x64/Lowering-x64.cpp
--- a/js/src/ion/x64/Lowering-x64.cpp
+++ b/js/src/jit/x64/Lowering-x64.cpp
@@ -1,20 +1,20 @@
 /* -*- 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/. */
 
-#include "ion/x64/Lowering-x64.h"
+#include "jit/x64/Lowering-x64.h"
 
-#include "ion/MIR.h"
-#include "ion/x64/Assembler-x64.h"
+#include "jit/MIR.h"
+#include "jit/x64/Assembler-x64.h"
 
-#include "ion/shared/Lowering-shared-inl.h"
+#include "jit/shared/Lowering-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 bool
 LIRGeneratorX64::useBox(LInstruction *lir, size_t n, MDefinition *mir,
                         LUse::Policy policy, bool useAtStart)
 {
rename from js/src/ion/x64/Lowering-x64.h
rename to js/src/jit/x64/Lowering-x64.h
--- a/js/src/ion/x64/Lowering-x64.h
+++ b/js/src/jit/x64/Lowering-x64.h
@@ -1,18 +1,18 @@
 /* -*- 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 ion_x64_Lowering_x64_h
-#define ion_x64_Lowering_x64_h
+#ifndef jit_x64_Lowering_x64_h
+#define jit_x64_Lowering_x64_h
 
-#include "ion/shared/Lowering-x86-shared.h"
+#include "jit/shared/Lowering-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 class LIRGeneratorX64 : public LIRGeneratorX86Shared
 {
   public:
     LIRGeneratorX64(MIRGenerator *gen, MIRGraph &graph, LIRGraph &lirGraph)
@@ -45,9 +45,9 @@ class LIRGeneratorX64 : public LIRGenera
     bool visitStoreTypedArrayElementStatic(MStoreTypedArrayElementStatic *ins);
 };
 
 typedef LIRGeneratorX64 LIRGeneratorSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_Lowering_x64_h */
+#endif /* jit_x64_Lowering_x64_h */
rename from js/src/ion/x64/MacroAssembler-x64.cpp
rename to js/src/jit/x64/MacroAssembler-x64.cpp
--- a/js/src/ion/x64/MacroAssembler-x64.cpp
+++ b/js/src/jit/x64/MacroAssembler-x64.cpp
@@ -1,22 +1,22 @@
 /* -*- 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/. */
 
-#include "ion/x64/MacroAssembler-x64.h"
+#include "jit/x64/MacroAssembler-x64.h"
 
 #include "mozilla/Casting.h"
 
-#include "ion/Bailouts.h"
-#include "ion/BaselineFrame.h"
-#include "ion/IonFrames.h"
-#include "ion/MoveEmitter.h"
+#include "jit/Bailouts.h"
+#include "jit/BaselineFrame.h"
+#include "jit/IonFrames.h"
+#include "jit/MoveEmitter.h"
 
 using namespace js;
 using namespace js::ion;
 
 void
 MacroAssemblerX64::loadConstantDouble(double d, const FloatRegister &dest)
 {
     if (maybeInlineDouble(d, dest))
rename from js/src/ion/x64/MacroAssembler-x64.h
rename to js/src/jit/x64/MacroAssembler-x64.h
--- a/js/src/ion/x64/MacroAssembler-x64.h
+++ b/js/src/jit/x64/MacroAssembler-x64.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_x64_MacroAssembler_x64_h
-#define ion_x64_MacroAssembler_x64_h
+#ifndef jit_x64_MacroAssembler_x64_h
+#define jit_x64_MacroAssembler_x64_h
 
 #include "jsnum.h"
 
-#include "ion/IonFrames.h"
-#include "ion/MoveResolver.h"
-#include "ion/shared/MacroAssembler-x86-shared.h"
+#include "jit/IonFrames.h"
+#include "jit/MoveResolver.h"
+#include "jit/shared/MacroAssembler-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 struct ImmShiftedTag : public ImmWord
 {
     ImmShiftedTag(JSValueShiftedTag shtag)
       : ImmWord((uintptr_t)shtag)
@@ -1129,9 +1129,9 @@ class MacroAssemblerX64 : public MacroAs
 
 };
 
 typedef MacroAssemblerX64 MacroAssemblerSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x64_MacroAssembler_x64_h */
+#endif /* jit_x64_MacroAssembler_x64_h */
rename from js/src/ion/x64/Trampoline-x64.cpp
rename to js/src/jit/x64/Trampoline-x64.cpp
--- a/js/src/ion/x64/Trampoline-x64.cpp
+++ b/js/src/jit/x64/Trampoline-x64.cpp
@@ -2,24 +2,24 @@
  * 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/. */
 
 #include "jscompartment.h"
 
 #include "assembler/assembler/MacroAssembler.h"
-#include "ion/Bailouts.h"
-#include "ion/ExecutionModeInlines.h"
-#include "ion/IonCompartment.h"
-#include "ion/IonFrames.h"
-#include "ion/IonLinker.h"
-#include "ion/IonSpewer.h"
-#include "ion/VMFunctions.h"
-#include "ion/x64/BaselineHelpers-x64.h"
+#include "jit/Bailouts.h"
+#include "jit/ExecutionModeInlines.h"
+#include "jit/IonCompartment.h"
+#include "jit/IonFrames.h"
+#include "jit/IonLinker.h"
+#include "jit/IonSpewer.h"
+#include "jit/VMFunctions.h"
+#include "jit/x64/BaselineHelpers-x64.h"
 
 using namespace js;
 using namespace js::ion;
 
 // All registers to save and restore. This includes the stack pointer, since we
 // use the ability to reference register values on the stack by index.
 static const RegisterSet AllRegs =
   RegisterSet(GeneralRegisterSet(Registers::AllMask),
rename from js/src/ion/x86/Architecture-x86.h
rename to js/src/jit/x86/Architecture-x86.h
--- a/js/src/ion/x86/Architecture-x86.h
+++ b/js/src/jit/x86/Architecture-x86.h
@@ -1,16 +1,16 @@
 /* -*- 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 ion_x86_Architecture_x86_h
-#define ion_x86_Architecture_x86_h
+#ifndef jit_x86_Architecture_x86_h
+#define jit_x86_Architecture_x86_h
 
 #include "assembler/assembler/MacroAssembler.h"
 
 namespace js {
 namespace ion {
 static const ptrdiff_t STACK_SLOT_SIZE       = 4;
 static const uint32_t DOUBLE_STACK_ALIGNMENT   = 2;
 
@@ -128,9 +128,9 @@ class FloatRegisters {
         (1 << JSC::X86Registers::xmm7);
 
     static const uint32_t AllocatableMask = AllMask & ~NonAllocatableMask;
 };
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x86_Architecture_x86_h */
+#endif /* jit_x86_Architecture_x86_h */
rename from js/src/ion/x86/Assembler-x86.cpp
rename to js/src/jit/x86/Assembler-x86.cpp
--- a/js/src/ion/x86/Assembler-x86.cpp
+++ b/js/src/jit/x86/Assembler-x86.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/x86/Assembler-x86.h"
+#include "jit/x86/Assembler-x86.h"
 
 #include "gc/Marking.h"
 
 using namespace js;
 using namespace js::ion;
 
 ABIArgGenerator::ABIArgGenerator()
   : stackOffset_(0),
rename from js/src/ion/x86/Assembler-x86.h
rename to js/src/jit/x86/Assembler-x86.h
--- a/js/src/ion/x86/Assembler-x86.h
+++ b/js/src/jit/x86/Assembler-x86.h
@@ -1,23 +1,23 @@
 /* -*- 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 ion_x86_Assembler_x86_h
-#define ion_x86_Assembler_x86_h
+#ifndef jit_x86_Assembler_x86_h
+#define jit_x86_Assembler_x86_h
 
 #include "mozilla/Util.h"
 
 #include "assembler/assembler/X86Assembler.h"
-#include "ion/CompactBuffer.h"
-#include "ion/IonCode.h"
-#include "ion/shared/Assembler-shared.h"
+#include "jit/CompactBuffer.h"
+#include "jit/IonCode.h"
+#include "jit/shared/Assembler-shared.h"
 
 namespace js {
 namespace ion {
 
 static MOZ_CONSTEXPR_VAR Register eax = { JSC::X86Registers::eax };
 static MOZ_CONSTEXPR_VAR Register ecx = { JSC::X86Registers::ecx };
 static MOZ_CONSTEXPR_VAR Register edx = { JSC::X86Registers::edx };
 static MOZ_CONSTEXPR_VAR Register ebx = { JSC::X86Registers::ebx };
@@ -208,17 +208,17 @@ class Operand
         JS_ASSERT(kind() == ADDRESS);
         return reinterpret_cast<void *>(base_);
     }
 };
 
 } // namespace ion
 } // namespace js
 
-#include "ion/shared/Assembler-x86-shared.h"
+#include "jit/shared/Assembler-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 static inline void
 PatchJump(CodeLocationJump jump, CodeLocationLabel label)
 {
 #ifdef DEBUG
@@ -548,9 +548,9 @@ GetTempRegForIntArg(uint32_t usedIntArgs
         return false;
     *out = CallTempNonArgRegs[usedIntArgs];
     return true;
 }
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x86_Assembler_x86_h */
+#endif /* jit_x86_Assembler_x86_h */
rename from js/src/ion/x86/Bailouts-x86.cpp
rename to js/src/jit/x86/Bailouts-x86.cpp
--- a/js/src/ion/x86/Bailouts-x86.cpp
+++ b/js/src/jit/x86/Bailouts-x86.cpp
@@ -2,18 +2,18 @@
  * 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/. */
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 
-#include "ion/Bailouts.h"
-#include "ion/IonCompartment.h"
+#include "jit/Bailouts.h"
+#include "jit/IonCompartment.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if defined(_WIN32)
 # pragma pack(push, 1)
 #endif
 
rename from js/src/ion/x86/BaselineCompiler-x86.cpp
rename to js/src/jit/x86/BaselineCompiler-x86.cpp
--- a/js/src/ion/x86/BaselineCompiler-x86.cpp
+++ b/js/src/jit/x86/BaselineCompiler-x86.cpp
@@ -1,15 +1,15 @@
 /* -*- 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/. */
 
-#include "ion/x86/BaselineCompiler-x86.h"
+#include "jit/x86/BaselineCompiler-x86.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompilerX86::BaselineCompilerX86(JSContext *cx, HandleScript script)
   : BaselineCompilerX86Shared(cx, script)
 {
 }
rename from js/src/ion/x86/BaselineCompiler-x86.h
rename to js/src/jit/x86/BaselineCompiler-x86.h
--- a/js/src/ion/x86/BaselineCompiler-x86.h
+++ b/js/src/jit/x86/BaselineCompiler-x86.h
@@ -1,26 +1,26 @@
 /* -*- 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 ion_x86_BaselineCompiler_x86_h
-#define ion_x86_BaselineCompiler_x86_h
+#ifndef jit_x86_BaselineCompiler_x86_h
+#define jit_x86_BaselineCompiler_x86_h
 
-#include "ion/shared/BaselineCompiler-x86-shared.h"
+#include "jit/shared/BaselineCompiler-x86-shared.h"
 
 namespace js {
 namespace ion {
 
 class BaselineCompilerX86 : public BaselineCompilerX86Shared
 {
   protected:
     BaselineCompilerX86(JSContext *cx, HandleScript script);
 };
 
 typedef BaselineCompilerX86 BaselineCompilerSpecific;
 
 } // namespace ion
 } // namespace js
 
-#endif /* ion_x86_BaselineCompiler_x86_h */
+#endif /* jit_x86_BaselineCompiler_x86_h */
rename from js/src/ion/x86/BaselineHelpers-x86.h
rename to js/src/jit/x86/BaselineHelpers-x86.h
--- a/js/src/ion/x86/BaselineHelpers-x86.h
+++ b/js/src/jit/x86/BaselineHelpers-x86.h
@@ -1,22 +1,22 @@
 /* -*- 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 ion_x86_BaselineHelpers_x86_h
-#define ion_x86_BaselineHelpers_x86_h
+#ifndef jit_x86_BaselineHelpers_x86_h
+#define jit_x86_BaselineHelpers_x86_h
 
 #ifdef JS_ION
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/IonMacroAssembler.h"
+#include "jit/BaselineFrame.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineRegisters.h"
+#include "jit/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 // Distance from stack top to the top Value inside an IC stub (this is the return address).
 static const size_t ICStackValueOffset = sizeof(void *);
 
 inline void
@@ -278,9 +278,9 @@ EmitStubGuardFailure(MacroAssembler &mas
 }
 
 
 } // namespace ion
 } // namespace js
 
 #endif // JS_ION
 
-#endif /* ion_x86_BaselineHelpers_x86_h */
+#endif /* jit_x86_BaselineHelpers_x86_h */
rename from js/src/ion/x86/BaselineIC-x86.cpp
rename to js/src/jit/x86/BaselineIC-x86.cpp
--- a/js/src/ion/x86/BaselineIC-x86.cpp
+++ b/js/src/jit/x86/BaselineIC-x86.cpp
@@ -1,19 +1,19 @@
 /* -*- 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/. */
 
-#include "ion/BaselineCompiler.h"
-#include "ion/BaselineHelpers.h"
-#include "ion/BaselineIC.h"
-#include "ion/BaselineJIT.h"
-#include "ion/IonLinker.h"
+#include "jit/BaselineCompiler.h"
+#include "jit/BaselineHelpers.h"
+#include "jit/BaselineIC.h"
+#include "jit/BaselineJIT.h"
+#include "jit/IonLinker.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
 
 // ICCompare_Int32
rename from js/src/ion/x86/BaselineRegisters-x86.h
rename to js/src/jit/x86/BaselineRegisters-x86.h
--- a/js/src/ion/x86/BaselineRegisters-x86.h