ARM: Align hwcap names and definitions with kernel, mark VFP and NEON as HWCAP_IMPORTANT.
authorAlexander Kanevskiy <kad@kad.name>
Fri, 13 Aug 2010 19:43:35 +0000 (19:43 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 13 Aug 2010 19:43:35 +0000 (19:43 +0000)
- Align hwcap names with kernel (arch/arm/kernel/setup.c)
- Align HWCAP_ARM_* definitions with kernel
- Make VFP and NEON as HWCAP_IMPORTANT, this can help in scenarios
where VFP/NEON HW optimizations can be utilized.

ChangeLog.arm
sysdeps/unix/sysv/linux/arm/dl-procinfo.c
sysdeps/unix/sysv/linux/arm/dl-procinfo.h
sysdeps/unix/sysv/linux/arm/sysdep.h

index f8cb056..ef2a608 100644 (file)
@@ -1,3 +1,14 @@
+2010-08-13  Alexander Kanevskiy  <kad@kad.name>
+
+       * sysdeps/unix/sysv/linux/arm/dl-procinfo.c (_dl_arm_cap_flags):
+       Change "fast-mult" to "fastmult".  Add new HWCAP names.
+       * sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT):
+       Change to 15.
+       (HWCAP_IMPORTANT): Change to (HWCAP_ARM_VFP | HWCAP_ARM_NEON).
+       * sysdeps/unix/sysv/linux/arm/sysdep.h (HWCAP_ARM_CRUNCH,
+       HWCAP_ARM_THUMBEE, HWCAP_ARM_NEON, HWCAP_ARM_VFPv3,
+       HWCAP_ARM_VFPv3D16): Define.
+
 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/unix/sysv/linux/arm/syscalls.list: Add entry for
index 5c913f5..03e1511 100644 (file)
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_arm_cap_flags
 #else
-PROCINFO_CLASS const char _dl_arm_cap_flags[10][10]
+PROCINFO_CLASS const char _dl_arm_cap_flags[15][10]
 #endif
 #ifndef PROCINFO_DECL
 = {
-    "swp", "half", "thumb", "26bit", "fast-mult", "fpa", "vfp", "edsp",
-    "java", "iwmmxt",
+    "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
+    "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
index 0c675c6..d3fc385 100644 (file)
@@ -24,7 +24,7 @@
 #include <ldsodefs.h>
 #include <sysdep.h>
 
-#define _DL_HWCAP_COUNT 10
+#define _DL_HWCAP_COUNT 15
 
 /* The kernel provides platform data but it is not interesting.  */
 #define _DL_HWCAP_PLATFORM     0
@@ -54,7 +54,7 @@ _dl_hwcap_string (int idx)
   return GLRO(dl_arm_cap_flags)[idx];
 };
 
-#define HWCAP_IMPORTANT                (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT)
+#define HWCAP_IMPORTANT                (HWCAP_ARM_VFP | HWCAP_ARM_NEON)
 
 static inline int
 __attribute__ ((unused))
index bd5b2ce..e647d42 100644 (file)
 #define HWCAP_ARM_EDSP         128
 #define HWCAP_ARM_JAVA         256
 #define HWCAP_ARM_IWMMXT       512
+#define HWCAP_ARM_CRUNCH       1024
+#define HWCAP_ARM_THUMBEE      2048
+#define HWCAP_ARM_NEON         4096
+#define HWCAP_ARM_VFPv3                8192
+#define HWCAP_ARM_VFPv3D16     16384
 
 #ifdef __ASSEMBLER__