Mercurial > hg > truffle
comparison src/cpu/x86/vm/vm_version_x86.cpp @ 17913:1eba0601f0dd
8041957: -XX:UseAVX=0 cause assert(UseAVX) failed
Summary: temporary set UseAVX=1 and UseSSE=2 in generate_get_cpu_info()
Reviewed-by: twisti
author | kvn |
---|---|
date | Tue, 29 Apr 2014 12:20:53 -0700 |
parents | 0118c8c7b80f |
children | 78bbf4d43a14 |
comparison
equal
deleted
inserted
replaced
17912:653e11c86c5a | 17913:1eba0601f0dd |
---|---|
261 // registers are not restored after a signal processing. | 261 // registers are not restored after a signal processing. |
262 // Generate SEGV here (reference through NULL) | 262 // Generate SEGV here (reference through NULL) |
263 // and check upper YMM bits after it. | 263 // and check upper YMM bits after it. |
264 // | 264 // |
265 VM_Version::set_avx_cpuFeatures(); // Enable temporary to pass asserts | 265 VM_Version::set_avx_cpuFeatures(); // Enable temporary to pass asserts |
266 intx saved_useavx = UseAVX; | |
267 intx saved_usesse = UseSSE; | |
268 UseAVX = 1; | |
269 UseSSE = 2; | |
266 | 270 |
267 // load value into all 32 bytes of ymm7 register | 271 // load value into all 32 bytes of ymm7 register |
268 __ movl(rcx, VM_Version::ymm_test_value()); | 272 __ movl(rcx, VM_Version::ymm_test_value()); |
269 | 273 |
270 __ movdl(xmm0, rcx); | 274 __ movdl(xmm0, rcx); |
290 __ vmovdqu(Address(rsi, 64), xmm8); | 294 __ vmovdqu(Address(rsi, 64), xmm8); |
291 __ vmovdqu(Address(rsi, 96), xmm15); | 295 __ vmovdqu(Address(rsi, 96), xmm15); |
292 #endif | 296 #endif |
293 | 297 |
294 VM_Version::clean_cpuFeatures(); | 298 VM_Version::clean_cpuFeatures(); |
299 UseAVX = saved_useavx; | |
300 UseSSE = saved_usesse; | |
295 | 301 |
296 // | 302 // |
297 // cpuid(0x7) Structured Extended Features | 303 // cpuid(0x7) Structured Extended Features |
298 // | 304 // |
299 __ bind(sef_cpuid); | 305 __ bind(sef_cpuid); |