Bug 1061383 - Unbreak non-ion builds following Odin SIMD landing. r=nbp, a=lmandel
authorBenjamin Bouvier <benj@benj.me>
Wed, 03 Sep 2014 11:09:49 +0200
changeset 224598 c15a9479d6338501f9c726e0d77726a341ed0796
parent 224597 a5d0c86dca93950a214c93923b3338d542561f73
child 224599 f71e2da53622860cfdbcb72cf578563afa849fd2
push id3979
push userraliiev@mozilla.com
push dateMon, 13 Oct 2014 16:35:44 +0000
treeherdermozilla-beta@30f2cc610691 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnbp, lmandel
bugs1061383
milestone34.0a2
Bug 1061383 - Unbreak non-ion builds following Odin SIMD landing. r=nbp, a=lmandel
js/src/jit/none/Architecture-none.h
js/src/jit/none/MacroAssembler-none.h
--- a/js/src/jit/none/Architecture-none.h
+++ b/js/src/jit/none/Architecture-none.h
@@ -11,17 +11,17 @@
 // platforms, so include it here to avoid inadvertent build bustage.
 #include "jit/IonSpewer.h"
 
 namespace js {
 namespace jit {
 
 static const bool SupportsSimd = false;
 static const uint32_t SimdStackAlignment = 0;
-static const uint32_t AsmJSStackAlignment = 0;
+static const uint32_t AsmJSStackAlignment = 4;
 
 class Registers
 {
   public:
     typedef uint8_t Code;
     typedef uint8_t SetType;
 
     static uint32_t SetSize(SetType) { MOZ_CRASH(); }
--- a/js/src/jit/none/MacroAssembler-none.h
+++ b/js/src/jit/none/MacroAssembler-none.h
@@ -17,18 +17,20 @@ namespace jit {
 
 class MDefinition;
 
 static MOZ_CONSTEXPR_VAR Register StackPointer = { 0 };
 static MOZ_CONSTEXPR_VAR Register FramePointer = { 0 };
 static MOZ_CONSTEXPR_VAR Register ReturnReg = { 0 };
 static MOZ_CONSTEXPR_VAR FloatRegister ReturnFloat32Reg = { 0 };
 static MOZ_CONSTEXPR_VAR FloatRegister ReturnDoubleReg = { 0 };
+static MOZ_CONSTEXPR_VAR FloatRegister ReturnSimdReg = { 0 };
 static MOZ_CONSTEXPR_VAR FloatRegister ScratchFloat32Reg = { 0 };
 static MOZ_CONSTEXPR_VAR FloatRegister ScratchDoubleReg = { 0 };
+static MOZ_CONSTEXPR_VAR FloatRegister ScratchSimdReg = { 0 };
 static MOZ_CONSTEXPR_VAR FloatRegister InvalidFloatReg = { 0 };
 
 static MOZ_CONSTEXPR_VAR Register OsrFrameReg = { 0 };
 static MOZ_CONSTEXPR_VAR Register ArgumentsRectifierReg = { 0 };
 static MOZ_CONSTEXPR_VAR Register PreBarrierReg = { 0 };
 static MOZ_CONSTEXPR_VAR Register CallTempReg0 = { 0 };
 static MOZ_CONSTEXPR_VAR Register CallTempReg1 = { 0 };
 static MOZ_CONSTEXPR_VAR Register CallTempReg2 = { 0 };
@@ -150,16 +152,17 @@ class MacroAssemblerNone : public Assemb
     size_t numCodeLabels() const { MOZ_CRASH(); }
     CodeLabel codeLabel(size_t) { MOZ_CRASH(); }
 
     void trace(JSTracer *) { MOZ_CRASH(); }
     static void TraceJumpRelocations(JSTracer *, JitCode *, CompactBufferReader &) { MOZ_CRASH(); }
     static void TraceDataRelocations(JSTracer *, JitCode *, CompactBufferReader &) { MOZ_CRASH(); }
 
     static bool SupportsFloatingPoint() { return false; }
+    static bool SupportsSimd() { return false; }
 
     void executableCopy(void *) { MOZ_CRASH(); }
     void copyJumpRelocationTable(uint8_t *) { MOZ_CRASH(); }
     void copyDataRelocationTable(uint8_t *) { MOZ_CRASH(); }
     void copyPreBarrierTable(uint8_t *) { MOZ_CRASH(); }
     void processCodeLabels(uint8_t *) { MOZ_CRASH(); }
 
     void flushBuffer() { MOZ_CRASH(); }
@@ -263,27 +266,35 @@ class MacroAssemblerNone : public Assemb
     template <typename T, typename S> void moveFloat32(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void moveDouble(T, S) { MOZ_CRASH(); }
     template <typename T> CodeOffsetLabel movWithPatch(T, Register) { MOZ_CRASH(); }
 
     template <typename T> void loadPtr(T, Register) { MOZ_CRASH(); }
     template <typename T> void load32(T, Register) { MOZ_CRASH(); }
     template <typename T> void loadFloat32(T, FloatRegister) { MOZ_CRASH(); }
     template <typename T> void loadDouble(T, FloatRegister) { MOZ_CRASH(); }
+    template <typename T> void loadAlignedInt32x4(T, FloatRegister) { MOZ_CRASH(); }
+    template <typename T> void loadUnalignedInt32x4(T, FloatRegister) { MOZ_CRASH(); }
+    template <typename T> void loadAlignedFloat32x4(T, FloatRegister) { MOZ_CRASH(); }
+    template <typename T> void loadUnalignedFloat32x4(T, FloatRegister) { MOZ_CRASH(); }
     template <typename T> void loadPrivate(T, Register) { MOZ_CRASH(); }
     template <typename T> void load8SignExtend(T, Register) { MOZ_CRASH(); }
     template <typename T> void load8ZeroExtend(T, Register) { MOZ_CRASH(); }
     template <typename T> void load16SignExtend(T, Register) { MOZ_CRASH(); }
     template <typename T> void load16ZeroExtend(T, Register) { MOZ_CRASH(); }
 
     template <typename T, typename S> void storePtr(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void store32(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void store32_NoSecondScratch(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void storeFloat32(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void storeDouble(T, S) { MOZ_CRASH(); }
+    template <typename T, typename S> void storeAlignedInt32x4(T, S) { MOZ_CRASH(); }
+    template <typename T, typename S> void storeUnalignedInt32x4(T, S) { MOZ_CRASH(); }
+    template <typename T, typename S> void storeAlignedFloat32x4(T, S) { MOZ_CRASH(); }
+    template <typename T, typename S> void storeUnalignedFloat32x4(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void store8(T, S) { MOZ_CRASH(); }
     template <typename T, typename S> void store16(T, S) { MOZ_CRASH(); }
 
     template <typename T> void computeEffectiveAddress(T, Register) { MOZ_CRASH(); }
 
     void clampIntToUint8(Register) { MOZ_CRASH(); }
 
     Register splitTagForTest(ValueOperand) { MOZ_CRASH(); }