Backout 671a52fff391

This commit is contained in:
Wes Kocher 2015-01-12 14:46:32 -08:00
parent 750bdeab34
commit 67eca437d9
5 changed files with 60 additions and 9 deletions

View File

@ -38,9 +38,15 @@ if CONFIG['INTEL_ARCHITECTURE']:
if CONFIG['_MSC_VER']:
if CONFIG['OS_TEST'] == 'x86_64':
SOURCES += [
'yuv_row_win64.cpp',
]
if CONFIG['_MSC_VER'] == '1400':
# VC8 doesn't support some SSE2 built-in functions
SOURCES += [
'yuv_row_win.cpp',
]
else:
SOURCES += [
'yuv_row_win64.cpp',
]
else:
SOURCES += [
'yuv_row_win.cpp',

View File

@ -68,11 +68,33 @@ static const PRUint32 H256[8] = {
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
};
#if defined(_MSC_VER)
#if (_MSC_VER >= 1300)
#include <stdlib.h>
#pragma intrinsic(_byteswap_ulong)
#define SHA_HTONL(x) _byteswap_ulong(x)
#define BYTESWAP4(x) x = SHA_HTONL(x)
#elif defined(_MSC_VER) && defined(NSS_X86_OR_X64)
#ifndef FORCEINLINE
#if (_MSC_VER >= 1200)
#define FORCEINLINE __forceinline
#else
#define FORCEINLINE __inline
#endif
#endif
#define FASTCALL __fastcall
static FORCEINLINE PRUint32 FASTCALL
swap4b(PRUint32 dwd)
{
__asm {
mov eax,dwd
bswap eax
}
}
#define SHA_HTONL(x) swap4b(x)
#define BYTESWAP4(x) x = SHA_HTONL(x)
#elif defined(__GNUC__) && defined(NSS_X86_OR_X64)
static __inline__ PRUint32 swap4b(PRUint32 value)
{

View File

@ -1439,13 +1439,19 @@ ifstream* UIOpenRead(const string& filename)
{
// adapted from breakpad's src/common/windows/http_upload.cc
#if defined(_MSC_VER)
// The "open" method on pre-MSVC8 ifstream implementations doesn't accept a
// wchar_t* filename, so use _wfopen directly in that case. For VC8 and
// later, _wfopen has been deprecated in favor of _wfopen_s, which does
// not exist in earlier versions, so let the ifstream open the file itself.
#if _MSC_VER >= 1400 // MSVC 2005/8
ifstream* file = new ifstream();
file->open(UTF8ToWide(filename).c_str(), ios::in);
#elif defined(_MSC_VER)
ifstream* file = new ifstream(_wfopen(UTF8ToWide(filename).c_str(), L"r"));
#else // GCC
ifstream* file = new ifstream(WideToMBCP(UTF8ToWide(filename), CP_ACP).c_str(),
ios::in);
#endif // _MSC_VER
#endif // _MSC_VER >= 1400
return file;
}
@ -1463,13 +1469,18 @@ ofstream* UIOpenWrite(const string& filename,
mode = mode | ios::binary;
}
#if defined(_MSC_VER)
// For VC8 and later, _wfopen has been deprecated in favor of _wfopen_s,
// which does not exist in earlier versions, so let the ifstream open the
// file itself.
#if _MSC_VER >= 1400 // MSVC 2005/8
ofstream* file = new ofstream();
file->open(UTF8ToWide(filename).c_str(), mode);
#elif defined(_MSC_VER)
#error "Compiling with your version of MSVC is no longer supported."
#else // GCC
ofstream* file = new ofstream(WideToMBCP(UTF8ToWide(filename), CP_ACP).c_str(),
mode);
#endif // _MSC_VER
#endif // _MSC_VER >= 1400
return file;
}

View File

@ -66,6 +66,14 @@ JSSHELL_BINS = \
$(DIST)/bin/$(DLL_PREFIX)mozglue$(DLL_SUFFIX) \
$(NULL)
ifndef MOZ_NATIVE_NSPR
ifeq ($(_MSC_VER),1600)
JSSHELL_BINS += $(DIST)/bin/msvcr100.dll
JSSHELL_BINS += $(DIST)/bin/msvcp100.dll
endif
ifeq ($(_MSC_VER),1700)
JSSHELL_BINS += $(DIST)/bin/msvcr110.dll
JSSHELL_BINS += $(DIST)/bin/msvcp110.dll
endif
ifeq ($(_MSC_VER),1800)
JSSHELL_BINS += $(DIST)/bin/msvcr120.dll
JSSHELL_BINS += $(DIST)/bin/msvcp120.dll

View File

@ -127,7 +127,11 @@ Init()
MOZ_ASSERT(!GetModuleHandleA("msvcr120.dll"));
MOZ_ASSERT(!GetModuleHandleA("msvcr120d.dll"));
#if defined(_M_IX86) && defined(_MSC_VER)
// Temporary until we fully switch over to VS 2013:
MOZ_ASSERT(!GetModuleHandleA("msvcr100.dll"));
MOZ_ASSERT(!GetModuleHandleA("msvcr100d.dll"));
#if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1800
if (!mozilla::IsXPSP3OrLater()) {
NtdllIntercept.Init("ntdll.dll");
NtdllIntercept.AddHook("RtlImageNtHeader",