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 id162
push userryanvm@gmail.com
push dateFri, 09 Aug 2013 23:31:32 +0000
treeherderb2g-inbound@c5946a8bcd5b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersluke
bugs902908
milestone26.0a1
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 */
renam