From: Julian Seward Date: Wed, 3 Aug 2016 11:41:24 +0000 (+0000) Subject: Add infrastructure for detection of 32-bit ARMv8 capable CPUs (VEX side). X-Git-Tag: svn/VALGRIND_3_12_0^2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=462da1d828411be755ae19c2561881175b47e086;p=thirdparty%2Fvalgrind.git Add infrastructure for detection of 32-bit ARMv8 capable CPUs (VEX side). git-svn-id: svn://svn.valgrind.org/vex/trunk@3234 --- diff --git a/VEX/priv/main_main.c b/VEX/priv/main_main.c index 4c278d84e2..8fd2503bb0 100644 --- a/VEX/priv/main_main.c +++ b/VEX/priv/main_main.c @@ -1933,8 +1933,8 @@ static void check_hwcaps ( VexArch arch, UInt hwcaps ) case VexArchARM: { Bool NEON = ((hwcaps & VEX_HWCAPS_ARM_NEON) != 0); + Bool VFP3 = ((hwcaps & VEX_HWCAPS_ARM_VFP3) != 0); UInt level = VEX_ARM_ARCHLEVEL(hwcaps); - switch (level) { case 5: if (NEON) @@ -1948,6 +1948,11 @@ static void check_hwcaps ( VexArch arch, UInt hwcaps ) return; case 7: return; + case 8: + if (!NEON || !VFP3) + invalid_hwcaps(arch, hwcaps, + "NEON and VFP3 are required for ARMv8.\n"); + return; default: invalid_hwcaps(arch, hwcaps, "ARM architecture level is not supported.\n");