This is surprising -- the xgetbv call should indicate whether the operating system supports AVX, precisely so that version number based checks are not necessary.
For reference, this is the commit that introduced the check: https://codereview.chromium.org/878063002 And according to Intel's own documentation, that should be enough: https://software.intel.com/en-us/blogs/2011/04/14/is-avx-enabled/ Zhangbo, do you know under which circumstances the xgetbv call would ever claim that AVX is supported in WinXP? I guess the other question is whether we care about WinXP support at this point... That OS should no longer be used for accessing the internet anyway. On Mon, Jun 19, 2017 at 12:22 PM, <[email protected]> wrote: > hi, > > I think V8 shoud check Windows OS version to enable AVX support. > AVX is only supported by Win7 SP1/Win2008 R2 SP1 and above. > V8 will randomly crash (C000001D, STATUS_ILLEGAL_INSTRUCTION) on my WinXP > SP3 test machine, if the result of its xgetbv claims that it's AVX enabled. > > So please add OS version check for the following code(requires windows > version >= 6.1 SP1): > > chromium\src\v8\src\ia32\assembler-ia32.cc > chromium\src\v8\src\x64\assembler-x64.cc > > bool IsAvxEnabledWindows(){ > bool ver_is_ok = false; > > OSVERSIONINFOEX version_info = { sizeof version_info }; > ::GetVersionEx(reinterpret_cast<OSVERSIONINFO*>(&version_info)); > > if (version_info.dwMajorVersion == 6 ) { > if(version_info.dwMinorVersion > 1) > ver_is_ok = true; > else if((version_info.dwMinorVersion == 1) && > (version_info.wServicePackMajor > >= 1)) > ver_is_ok = true; > } else if (version_info.dwMajorVersion > 6) { > ver_is_ok = true; > } > > return ver_is_ok; > } > > if (IsAvxEnabledWindows() && cpu.has_avx() && FLAG_enable_avx && > cpu.has_osxsave() && > OSHasAVXSupport()) { > supported_ |= 1u << AVX; > } > > -- > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
