OpenJDK / jdk / jdk
changeset 58045:c22087442921
8238896: Massive x86_32 crashes after JDK-7175279 (Don't use x87 FPU on x86-64)
Reviewed-by: thartmann, stuefe, vlivanov
author | shade |
---|---|
date | Thu, 13 Feb 2020 17:05:54 +0100 |
parents | bc5af528b6ec |
children | c27f595b4dd0 |
files | src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp Thu Feb 13 17:05:30 2020 +0100 +++ b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp Thu Feb 13 17:05:54 2020 +0100 @@ -908,11 +908,6 @@ } else if (dest->is_double_xmm() && !src->is_double_xmm()) { __ fstp_d(Address(rsp, 0)); __ movdbl(dest->as_xmm_double_reg(), Address(rsp, 0)); - - // move between fpu-registers (no instruction necessary because of fpu-stack) - } else if (dest->is_single_fpu() || dest->is_double_fpu()) { - assert(src->is_single_fpu() || src->is_double_fpu(), "must match"); - assert(src->fpu() == dest->fpu(), "currently should be nothing to do"); #endif // !_LP64 // move between xmm-registers @@ -923,6 +918,13 @@ assert(src->is_double_xmm(), "must match"); __ movdbl(dest->as_xmm_double_reg(), src->as_xmm_double_reg()); +#ifndef _LP64 + // move between fpu-registers (no instruction necessary because of fpu-stack) + } else if (dest->is_single_fpu() || dest->is_double_fpu()) { + assert(src->is_single_fpu() || src->is_double_fpu(), "must match"); + assert(src->fpu() == dest->fpu(), "currently should be nothing to do"); +#endif // !_LP64 + } else { ShouldNotReachHere(); } @@ -1595,6 +1597,7 @@ __ movl(Address(rsp, BytesPerWord), src->as_register_hi()); __ fild_d(Address(rsp, 0)); // float result is rounded later through spilling + break; case Bytecodes::_f2i: case Bytecodes::_d2i: