Bug 1289987 - Remove VS2013 workarounds from js/. r=fitzgen
authorChris Peterson <cpeterson@mozilla.com>
Wed, 27 Jul 2016 22:59:55 -0700
changeset 332416 43490acc4f626aedde721d48af259bbd0f516503
parent 332415 df90dd14878675782247b176fd7f01bea0584206
child 332417 bfb76ef187d9793edbc16aab9c42555a4b7c347f
push id9858
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 14:37:10 +0000
treeherdermozilla-aurora@203106ef6cb6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfitzgen
bugs1289987
milestone50.0a1
Bug 1289987 - Remove VS2013 workarounds from js/. r=fitzgen
js/public/Vector.h
js/src/jit/BaselineIC.cpp
--- a/js/public/Vector.h
+++ b/js/public/Vector.h
@@ -29,23 +29,17 @@ struct TypeIsGCThing : mozilla::FalseTyp
 //template <>
 //struct TypeIsGCThing<JS::Value> : mozilla::TrueType
 //{};
 
 } // namespace detail
 
 template <typename T,
           size_t MinInlineCapacity = 0,
-          class AllocPolicy = TempAllocPolicy
-// 1800 is MSVC2013.  Optimistically assume MSVC2015 (1900) is fixed.
-// If you're porting to MSVC2015 and this doesn't work, extend the
-// condition to encompass that additional version (but *do* keep the
-// version-check so we know when MSVC's fixed).
-#if !defined(_MSC_VER) || (1800 <= _MSC_VER && _MSC_VER <= 1800)
+          class AllocPolicy = TempAllocPolicy,
          // Don't use this with JS::Value!  Use JS::AutoValueVector instead.
-         , typename = typename mozilla::EnableIf<!detail::TypeIsGCThing<T>::value>::Type
-#endif
+         typename = typename mozilla::EnableIf<!detail::TypeIsGCThing<T>::value>::Type
          >
 using Vector = mozilla::Vector<T, MinInlineCapacity, AllocPolicy>;
 
 } // namespace js
 
 #endif /* js_Vector_h */
--- a/js/src/jit/BaselineIC.cpp
+++ b/js/src/jit/BaselineIC.cpp
@@ -6186,21 +6186,16 @@ ICCallStubCompiler::pushSpreadCallArgume
     regs.add(startReg);
     regs.add(endReg);
 
     // Push the callee and |this|.
     masm.pushValue(Address(BaselineFrameReg, STUB_FRAME_SIZE + (1 + isConstructing) * sizeof(Value)));
     masm.pushValue(Address(BaselineFrameReg, STUB_FRAME_SIZE + (2 + isConstructing) * sizeof(Value)));
 }
 
-// (see Bug 1149377 comment 31) MSVC 2013 PGO miss-compiles branchTestObjClass
-// calls from this function.
-#if defined(_MSC_VER) && _MSC_VER == 1800
-# pragma optimize("g", off)
-#endif
 Register
 ICCallStubCompiler::guardFunApply(MacroAssembler& masm, AllocatableGeneralRegisterSet regs,
                                   Register argcReg, bool checkNative, FunApplyThing applyThing,
                                   Label* failure)
 {
     // Ensure argc == 2
     masm.branch32(Assembler::NotEqual, argcReg, Imm32(2), failure);
 
@@ -6305,19 +6300,16 @@ ICCallStubCompiler::guardFunApply(MacroA
         masm.branchIfFunctionHasNoScript(target, failure);
         Register temp = regs.takeAny();
         masm.loadPtr(Address(target, JSFunction::offsetOfNativeOrScript()), temp);
         masm.loadBaselineOrIonRaw(temp, temp, failure);
         regs.add(temp);
     }
     return target;
 }
-#if defined(_MSC_VER) && _MSC_VER == 1800
-# pragma optimize("", on)
-#endif
 
 void
 ICCallStubCompiler::pushCallerArguments(MacroAssembler& masm, AllocatableGeneralRegisterSet regs)
 {
     // Initialize copyReg to point to start caller arguments vector.
     // Initialize argcReg to poitn to the end of it.
     Register startReg = regs.takeAny();
     Register endReg = regs.takeAny();