From 34a8cc20b949ea80096267286da4ea04a4018d77 Mon Sep 17 00:00:00 2001 From: Florian Krohm Date: Thu, 29 Jan 2015 15:21:47 +0000 Subject: [PATCH] Fix hwcaps validity checking for x86. Capabilities x86-mmxext-sse1-sse2-sse3-lzcnt were rejected as invalid. git-svn-id: svn://svn.valgrind.org/vex/trunk@3080 --- VEX/priv/main_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/VEX/priv/main_main.c b/VEX/priv/main_main.c index b607d14b86..71c8bf665a 100644 --- a/VEX/priv/main_main.c +++ b/VEX/priv/main_main.c @@ -1570,8 +1570,9 @@ static void check_hwcaps ( VexArch arch, UInt hwcaps ) for (i = 0; i < sizeof extras / sizeof extras[0]; ++i) { caps |= extras[i]; if (caps == hwcaps) return; + /* For SSE2 or later LZCNT is optional */ if ((caps & VEX_HWCAPS_X86_SSE2) != 0) { - if ((caps & VEX_HWCAPS_X86_LZCNT) != 0) return; + if ((caps | VEX_HWCAPS_X86_LZCNT) == hwcaps) return; } } invalid_hwcaps(arch, hwcaps, "Cannot handle capabilities\n"); -- 2.47.2