From: Alex Rønne Petersen Date: Fri, 2 Aug 2013 05:15:13 +0000 (+0200) Subject: Add detection of VFP v3 variants to mono-hwcap-arm. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=f5004f9b8328d63e2390bd38e139232ced453516;p=mono.git Add detection of VFP v3 variants to mono-hwcap-arm. --- diff --git a/mono/utils/mono-hwcap-arm.c b/mono/utils/mono-hwcap-arm.c index 2be0b023c90..01816d8c93a 100644 --- a/mono/utils/mono-hwcap-arm.c +++ b/mono/utils/mono-hwcap-arm.c @@ -35,6 +35,8 @@ gboolean mono_hwcap_arm_is_v6 = FALSE; gboolean mono_hwcap_arm_is_v7 = FALSE; gboolean mono_hwcap_arm_is_v7s = FALSE; gboolean mono_hwcap_arm_has_vfp = FALSE; +gboolean mono_hwcap_arm_has_vfp3 = FALSE; +gboolean mono_hwcap_arm_has_vfp3_d16 = FALSE; gboolean mono_hwcap_arm_has_thumb = FALSE; gboolean mono_hwcap_arm_has_thumb2 = FALSE; @@ -60,6 +62,14 @@ mono_hwcap_arch_init (void) if (hwcap & 0x00000040) mono_hwcap_arm_has_vfp = TRUE; + /* HWCAP_ARM_VFPv3 */ + if (hwcap & 0x00002000) + mono_hwcap_arm_has_vfp3 = TRUE; + + /* HWCAP_ARM_VFPv3D16 */ + if (hwcap & 0x00004000) + mono_hwcap_arm_has_vfp3_d16 = TRUE; + /* TODO: Find a way to detect Thumb 2. */ } @@ -136,6 +146,12 @@ mono_hwcap_arch_init (void) if (strstr (line, "vfp")) mono_hwcap_arm_has_vfp = TRUE; + if (strstr (line, "vfpv3")) + mono_hwcap_arm_has_vfp3 = TRUE; + + if (strstr (line, "vfpv3-d16")) + mono_hwcap_arm_has_vfp3_d16 = TRUE; + continue; } } @@ -154,6 +170,8 @@ mono_hwcap_print(FILE *f) g_fprintf (f, "mono_hwcap_arm_is_v7 = %i\n", mono_hwcap_arm_is_v7); g_fprintf (f, "mono_hwcap_arm_is_v7s = %i\n", mono_hwcap_arm_is_v7s); g_fprintf (f, "mono_hwcap_arm_has_vfp = %i\n", mono_hwcap_arm_has_vfp); + g_fprintf (f, "mono_hwcap_arm_has_vfp3 = %i\n", mono_hwcap_arm_has_vfp3); + g_fprintf (f, "mono_hwcap_arm_has_vfp3_d16 = %i\n", mono_hwcap_arm_has_vfp3_d16); g_fprintf (f, "mono_hwcap_arm_has_thumb = %i\n", mono_hwcap_arm_has_thumb); g_fprintf (f, "mono_hwcap_arm_has_thumb2 = %i\n", mono_hwcap_arm_has_thumb2); } diff --git a/mono/utils/mono-hwcap-arm.h b/mono/utils/mono-hwcap-arm.h index 6bc9c3b907a..76a20a1f53d 100644 --- a/mono/utils/mono-hwcap-arm.h +++ b/mono/utils/mono-hwcap-arm.h @@ -8,6 +8,8 @@ extern gboolean mono_hwcap_arm_is_v6; extern gboolean mono_hwcap_arm_is_v7; extern gboolean mono_hwcap_arm_is_v7s; extern gboolean mono_hwcap_arm_has_vfp; +extern gboolean mono_hwcap_arm_has_vfp3; +extern gboolean mono_hwcap_arm_has_vfp3_d16; extern gboolean mono_hwcap_arm_has_thumb; extern gboolean mono_hwcap_arm_has_thumb2;