src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Mon Mar  7 11:24:31 2016
--- new/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Mon Mar  7 11:24:31 2016

*** 206,222 **** --- 206,222 ---- if (save_vectors) { __ subptr(rsp, ymm_bytes); // Save upper half of YMM registers for (int n = 0; n < num_xmm_regs; n++) { ! __ vextractf128h(Address(rsp, n*16), as_XMMRegister(n)); ! __ vextractf128_high(Address(rsp, n*16), as_XMMRegister(n)); } if (UseAVX > 2) { __ subptr(rsp, zmm_bytes); // Save upper half of ZMM registers for (int n = 0; n < num_xmm_regs; n++) { ! __ vextractf64x4h(Address(rsp, n*32), as_XMMRegister(n), 1); ! __ vextractf64x4_high(Address(rsp, n*32), as_XMMRegister(n)); } } } // Set an oopmap for the call site. This oopmap will map all
*** 302,318 **** --- 302,318 ---- if (restore_vectors) { if (UseAVX > 2) { // Restore upper half of ZMM registers. for (int n = 0; n < num_xmm_regs; n++) { ! __ vinsertf64x4h(as_XMMRegister(n), Address(rsp, n*32), 1); ! __ vinsertf64x4_high(as_XMMRegister(n), Address(rsp, n*32)); } __ addptr(rsp, zmm_bytes); } // Restore upper half of YMM registers. for (int n = 0; n < num_xmm_regs; n++) { ! __ vinsertf128h(as_XMMRegister(n), Address(rsp, n*16)); ! __ vinsertf128_high(as_XMMRegister(n), Address(rsp, n*16)); } __ addptr(rsp, ymm_bytes); } __ pop_FPU_state();

src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File