Bug 1289987 - Remove VS2013 workarounds from js/. r=fitzgen
authorChris Peterson <cpeterson@mozilla.com>
Wed, 27 Jul 2016 22:59:55 -0700
changeset 307352 43490acc4f626aedde721d48af259bbd0f516503
parent 307351 df90dd14878675782247b176fd7f01bea0584206
child 307353 bfb76ef187d9793edbc16aab9c42555a4b7c347f
push id30508
push usercbook@mozilla.com
push dateSat, 30 Jul 2016 14:21:21 +0000
treeherdermozilla-central@e5859dfe0bcb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfitzgen
bugs1289987
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 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();