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 Tue Mar 1 16:13:30 2016
--- new/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Mar 1 16:13:30 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(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++) {
- __ vextractf64x4h(Address(rsp, n*32), as_XMMRegister(n), 1);
}
}
}
// 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(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++) {
! __ vinsertf128h(as_XMMRegister(n), Address(rsp, n*16));
! __ 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