equal
deleted
inserted
replaced
3 https://bugzilla.mozilla.org/show_bug.cgi?id=513422 |
3 https://bugzilla.mozilla.org/show_bug.cgi?id=513422 |
4 |
4 |
5 diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp |
5 diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp |
6 --- a/xpcom/glue/SSE.cpp |
6 --- a/xpcom/glue/SSE.cpp |
7 +++ b/xpcom/glue/SSE.cpp |
7 +++ b/xpcom/glue/SSE.cpp |
8 @@ -44,26 +44,77 @@ namespace { |
8 @@ -12,26 +12,77 @@ namespace { |
9 // SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION. |
9 // SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION. |
10 // We can't declare these functions in the header file, however, because |
10 // We can't declare these functions in the header file, however, because |
11 // <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to |
11 // <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to |
12 // include both SSE.h and <windows.h>. |
12 // include both SSE.h and <windows.h>. |
13 |
13 |
78 + |
78 + |
79 + _my_cpuid(level, regs[0], regs[1], regs[2], regs[3]); |
79 + _my_cpuid(level, regs[0], regs[1], regs[2], regs[3]); |
80 + return !!(unsigned(regs[reg]) & bit); |
80 + return !!(unsigned(regs[reg]) & bit); |
81 } |
81 } |
82 |
82 |
83 #elif defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(_M_IX86) || defined(_M_AMD64)) |
83 #elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64)) |
84 |
84 |
85 // MSVC 2005 or newer on x86-32 or x86-64 |
85 // MSVC 2005 or newer on x86-32 or x86-64 |
86 #include <intrin.h> |
86 #include <intrin.h> |
87 |
87 |
88 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 }; |
88 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 }; |