src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/cpu/x86/vm/sharedRuntime_x86_32.cpp
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Print this page
rev 10354 : imported patch vextrinscleanup2
*** 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));
}
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);
}
}
}
// Set an oopmap for the call site. This oopmap will map all
--- 206,222 ----
if (save_vectors) {
__ subptr(rsp, ymm_bytes);
// Save upper half of YMM registers
for (int n = 0; n < num_xmm_regs; n++) {
! __ vextractf128(Address(rsp, n*16), as_XMMRegister(n), 1);
}
if (UseAVX > 2) {
__ subptr(rsp, zmm_bytes);
// Save upper half of ZMM registers
for (int n = 0; n < num_xmm_regs; n++) {
! __ vextractf64x4(Address(rsp, n*32), as_XMMRegister(n), 1);
}
}
}
// Set an oopmap for the call site. This oopmap will map all
*** 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);
}
__ 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));
}
__ addptr(rsp, ymm_bytes);
}
__ pop_FPU_state();
--- 302,318 ----
if (restore_vectors) {
if (UseAVX > 2) {
// Restore upper half of ZMM registers.
for (int n = 0; n < num_xmm_regs; n++) {
! __ vinsertf64x4(as_XMMRegister(n), as_XMMRegister(n), Address(rsp, n*32), 1);
}
__ addptr(rsp, zmm_bytes);
}
// Restore upper half of YMM registers.
for (int n = 0; n < num_xmm_regs; n++) {
! __ vinsertf128(as_XMMRegister(n), as_XMMRegister(n), Address(rsp, n*16), 1);
}
__ 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