Tue, 29 Apr 2014 12:20:53 -0700
8041957: -XX:UseAVX=0 cause assert(UseAVX) failed
Summary: temporary set UseAVX=1 and UseSSE=2 in generate_get_cpu_info()
Reviewed-by: twisti
src/cpu/x86/vm/assembler_x86.cpp | file | annotate | diff | comparison | revisions | |
src/cpu/x86/vm/vm_version_x86.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/x86/vm/assembler_x86.cpp Tue Apr 29 10:29:56 2014 -0700 1.2 +++ b/src/cpu/x86/vm/assembler_x86.cpp Tue Apr 29 12:20:53 2014 -0700 1.3 @@ -1766,7 +1766,7 @@ 1.4 1.5 // Move Unaligned 256bit Vector 1.6 void Assembler::vmovdqu(XMMRegister dst, XMMRegister src) { 1.7 - assert(UseAVX, ""); 1.8 + assert(UseAVX > 0, ""); 1.9 bool vector256 = true; 1.10 int encode = vex_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_F3, vector256); 1.11 emit_int8(0x6F); 1.12 @@ -1774,7 +1774,7 @@ 1.13 } 1.14 1.15 void Assembler::vmovdqu(XMMRegister dst, Address src) { 1.16 - assert(UseAVX, ""); 1.17 + assert(UseAVX > 0, ""); 1.18 InstructionMark im(this); 1.19 bool vector256 = true; 1.20 vex_prefix(dst, xnoreg, src, VEX_SIMD_F3, vector256); 1.21 @@ -1783,7 +1783,7 @@ 1.22 } 1.23 1.24 void Assembler::vmovdqu(Address dst, XMMRegister src) { 1.25 - assert(UseAVX, ""); 1.26 + assert(UseAVX > 0, ""); 1.27 InstructionMark im(this); 1.28 bool vector256 = true; 1.29 // swap src<->dst for encoding
2.1 --- a/src/cpu/x86/vm/vm_version_x86.cpp Tue Apr 29 10:29:56 2014 -0700 2.2 +++ b/src/cpu/x86/vm/vm_version_x86.cpp Tue Apr 29 12:20:53 2014 -0700 2.3 @@ -263,6 +263,10 @@ 2.4 // and check upper YMM bits after it. 2.5 // 2.6 VM_Version::set_avx_cpuFeatures(); // Enable temporary to pass asserts 2.7 + intx saved_useavx = UseAVX; 2.8 + intx saved_usesse = UseSSE; 2.9 + UseAVX = 1; 2.10 + UseSSE = 2; 2.11 2.12 // load value into all 32 bytes of ymm7 register 2.13 __ movl(rcx, VM_Version::ymm_test_value()); 2.14 @@ -292,6 +296,8 @@ 2.15 #endif 2.16 2.17 VM_Version::clean_cpuFeatures(); 2.18 + UseAVX = saved_useavx; 2.19 + UseSSE = saved_usesse; 2.20 2.21 // 2.22 // cpuid(0x7) Structured Extended Features