< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page
rev 51979 : 8211375: Minimal VM build failures after JDK-8211251 (Default mask register for avx512 instructions)
Reviewed-by: kvn

*** 3264,3286 **** lea(rscratch1, src); movq(dst, Address(rscratch1, 0)); } } void MacroAssembler::setvectmask(Register dst, Register src) { ! guarantee(PostLoopMultiversioning == true, "must be"); Assembler::movl(dst, 1); Assembler::shlxl(dst, dst, src); Assembler::decl(dst); Assembler::kmovdl(k1, dst); Assembler::movl(dst, src); } void MacroAssembler::restorevectmask() { ! guarantee(PostLoopMultiversioning == true, "must be"); Assembler::knotwl(k1, k0); } void MacroAssembler::movdbl(XMMRegister dst, AddressLiteral src) { if (reachable(src)) { if (UseXmmLoadAndClearUpper) { movsd (dst, as_Address(src)); --- 3264,3288 ---- lea(rscratch1, src); movq(dst, Address(rscratch1, 0)); } } + #ifdef COMPILER2 void MacroAssembler::setvectmask(Register dst, Register src) { ! guarantee(PostLoopMultiversioning, "must be"); Assembler::movl(dst, 1); Assembler::shlxl(dst, dst, src); Assembler::decl(dst); Assembler::kmovdl(k1, dst); Assembler::movl(dst, src); } void MacroAssembler::restorevectmask() { ! guarantee(PostLoopMultiversioning, "must be"); Assembler::knotwl(k1, k0); } + #endif // COMPILER2 void MacroAssembler::movdbl(XMMRegister dst, AddressLiteral src) { if (reachable(src)) { if (UseXmmLoadAndClearUpper) { movsd (dst, as_Address(src));
*** 5026,5041 **** --- 5028,5046 ---- } } // Clear upper bits of YMM registers to avoid SSE <-> AVX transition penalty. vzeroupper(); // Reset k1 to 0xffff. + + #ifdef COMPILER2 if (PostLoopMultiversioning && VM_Version::supports_evex()) { push(rcx); movl(rcx, 0xffff); kmovwl(k1, rcx); pop(rcx); } + #endif // COMPILER2 #ifndef _LP64 // Either restore the x87 floating pointer control word after returning // from the JNI call or verify that it wasn't changed. if (CheckJNICalls) {
< prev index next >