Bug 1257441 - Remove arm detection for WinCE using MSVS. r?glandium draft
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Mon, 09 May 2016 10:40:06 +0900
changeset 364706 bfdbe8779f5acebcb7a1bf437630b99e93037bed
parent 364682 bae525a694e2dc0aa433885be8751330d4995a49
child 520376 6caa66f10b50d297c1b82bbcb94ea88775525d7b
push id17552
push userm_kato@ga2.so-net.ne.jp
push dateMon, 09 May 2016 05:04:04 +0000
reviewersglandium
bugs1257441
milestone49.0a1
Bug 1257441 - Remove arm detection for WinCE using MSVS. r?glandium arm.h still have CPU feature detection for Microsoft Compiler that is used by WinCE. Since we don't have the target for WinCE, we should remove it. Also, even if you need it for Win32/arm that is Windows Mobile and Windows IOT in feature, this is unnecessary. Win32/arm ABI requires thumb2+NEON at least. MozReview-Commit-ID: 6dYjIRY0Suo
mozglue/build/arm.cpp
mozglue/build/arm.h
--- a/mozglue/build/arm.cpp
+++ b/mozglue/build/arm.cpp
@@ -8,106 +8,17 @@
 
 #if defined(MOZILLA_ARM_HAVE_CPUID_DETECTION)
 
 // arm.h has parallel #ifs which declare MOZILLA_ARM_HAVE_CPUID_DETECTION.
 // We don't check it here so that we get compile errors if it's defined, but
 // we don't compile one of these detection methods. The detection code here is
 // based on the CPU detection in libtheora.
 
-#  if defined(_MSC_VER)
-//For GetExceptionCode() and EXCEPTION_ILLEGAL_INSTRUCTION.
-#    define WIN32_LEAN_AND_MEAN
-#    define WIN32_EXTRA_LEAN
-#    include <windows.h>
-
-#    if !defined(MOZILLA_PRESUME_EDSP)
-static bool
-check_edsp(void)
-{
-#      if defined(MOZILLA_MAY_SUPPORT_EDSP)
-  __try
-  {
-    //PLD [r13]
-    __emit(0xF5DDF000);
-    return true;
-  }
-  __except(GetExceptionCode()==EXCEPTION_ILLEGAL_INSTRUCTION)
-  {
-    //Ignore exception.
-  }
-#      endif
-  return false;
-}
-#    endif // !MOZILLA_PRESUME_EDSP
-
-#    if !defined(MOZILLA_PRESUME_ARMV6)
-static bool
-check_armv6(void)
-{
-#      if defined(MOZILLA_MAY_SUPPORT_ARMV6)
-  __try
-  {
-    //SHADD8 r3,r3,r3
-    __emit(0xE6333F93);
-    return true;
-  }
-  __except(GetExceptionCode()==EXCEPTION_ILLEGAL_INSTRUCTION)
-  {
-    //Ignore exception.
-  }
-#      endif
-  return false;
-}
-#    endif // !MOZILLA_PRESUME_ARMV6
-
-#    if !defined(MOZILLA_PRESUME_ARMV7)
-static bool
-check_armv7(void)
-{
-#      if defined(MOZILLA_MAY_SUPPORT_ARMV7)
-  __try
-  {
-    // ARMv7 DMB (Data Memory Barrier) for stores (DMB.ST)
-    // The Data Memory Barrier existed before ARMv7 as a
-    // cp15 operation, but ARMv7 introduced a dedicated
-    // instruction, DMB.
-    emit(0xF57FF05E);
-    return true;
-  }
-  __except(GetExceptionCode()==EXCEPTION_ILLEGAL_INSTRUCTION)
-  {
-    //Ignore exception.
-  }
-#      endif
-  return false;
-}
-#    endif // !MOZILLA_PRESUME_ARMV7
-
-#    if !defined(MOZILLA_PRESUME_NEON)
-static bool
-check_neon(void)
-{
-#      if defined(MOZILLA_MAY_SUPPORT_NEON)
-  __try
-  {
-    //VORR q0,q0,q0
-    __emit(0xF2200150);
-    return true;
-  }
-  __except(GetExceptionCode()==EXCEPTION_ILLEGAL_INSTRUCTION)
-  {
-    //Ignore exception.
-  }
-#      endif
-  return false;
-}
-#    endif // !MOZILLA_PRESUME_NEON
-
-#  elif defined(__linux__) || defined(ANDROID)
+#  if defined(__linux__) || defined(ANDROID)
 #    include <stdio.h>
 #    include <stdlib.h>
 #    include <string.h>
 
 enum{
   MOZILLA_HAS_EDSP_FLAG=1,
   MOZILLA_HAS_ARMV6_FLAG=2,
   MOZILLA_HAS_ARMV7_FLAG=4,
--- a/mozglue/build/arm.h
+++ b/mozglue/build/arm.h
@@ -75,33 +75,16 @@
 #    define MOZILLA_PRESUME_NEON 1
 #  endif
 
   // Currently we only have CPU detection for Linux via /proc/cpuinfo
 #  if defined(__linux__) || defined(ANDROID)
 #    define MOZILLA_ARM_HAVE_CPUID_DETECTION 1
 #  endif
 
-#elif defined(_MSC_VER) && defined(_M_ARM)
-
-#  define MOZILLA_ARM_HAVE_CPUID_DETECTION 1
-  // _M_ARM on MSVC has current cpu architecture.
-#  define MOZILLA_ARM_ARCH _M_ARM
-
-  // MSVC only allows external asm for ARM, so we don't have to rely on
-  // compiler support.
-#  define MOZILLA_MAY_SUPPORT_EDSP 1
-#  if defined(HAVE_ARM_SIMD)
-#    define MOZILLA_MAY_SUPPORT_ARMV6 1
-#    define MOZILLA_MAY_SUPPORT_ARMV7 1
-#  endif
-#  if defined(HAVE_ARM_NEON)
-#    define MOZILLA_MAY_SUPPORT_NEON 1
-#  endif
-
 #endif
 
 namespace mozilla {
 
   namespace arm_private {
 #if defined(MOZILLA_ARM_HAVE_CPUID_DETECTION)
 #if !defined(MOZILLA_PRESUME_EDSP)
     extern bool MFBT_DATA edsp_enabled;