orccpu-arm.c: Assume ARMv8 on Windows ARM64
authorChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 22 Sep 2021 07:37:46 +0000 (15:37 +0800)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 31 Oct 2022 10:47:33 +0000 (10:47 +0000)
ARM64 Windows are supported on ARMv8 CPUs only, so just assume that we have
the NEON and EDSP ARM instructions.

orc/orccpu-arm.c

index 6bb219e..a372127 100644 (file)
@@ -49,7 +49,7 @@
 
 /***** arm *****/
 
-#if defined (__arm__) || defined (__aarch64__)
+#if defined (__arm__) || defined (__aarch64__) || defined (_M_ARM64)
 #if 0
 static unsigned long
 orc_profile_stamp_xscale(void)
@@ -120,6 +120,10 @@ orc_cpu_arm_getflags_cpuinfo ()
   char **flags;
   char **f;
 
+#if defined (_WIN32) && defined (_M_ARM64)
+  /* On Windows, for desktop applications, we are on always on ARMv8 (aarch64)*/
+  ret = ORC_TARGET_ARM_EDSP | ORC_TARGET_NEON_NEON;
+#else
   cpuinfo = get_proc_cpuinfo();
   if (cpuinfo == NULL) {
     ORC_DEBUG ("Failed to read /proc/cpuinfo");
@@ -159,6 +163,7 @@ orc_cpu_arm_getflags_cpuinfo ()
 out:
   free (cpuinfo_line);
   free (cpuinfo);
+#endif
 
   return ret;
 }