From ba7d18db8600354339f0355569a00de95122650c Mon Sep 17 00:00:00 2001 From: Roland Westrelin Date: Fri, 31 Jan 2020 14:36:07 +0100 Subject: [PATCH 1/2] 8237776: Shenandoah: Wrong result with Lucene test Reviewed-by: rkennke, zgu, shade --- .../shenandoahBarrierSetAssembler_x86.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp index 551433b8f66..57d2a88b921 100644 --- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp @@ -512,6 +512,19 @@ void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet d // 3: apply keep-alive barrier if needed if (ShenandoahBarrierSet::need_keep_alive_barrier(decorators, type)) { __ push_IU_state(); + // That path can be reached from the c2i adapter with live fp + // arguments in registers. + LP64_ONLY(assert(Argument::n_float_register_parameters_j == 8, "8 fp registers to save at java call")); + __ subptr(rsp, 64); + __ movdbl(Address(rsp, 0), xmm0); + __ movdbl(Address(rsp, 8), xmm1); + __ movdbl(Address(rsp, 16), xmm2); + __ movdbl(Address(rsp, 24), xmm3); + __ movdbl(Address(rsp, 32), xmm4); + __ movdbl(Address(rsp, 40), xmm5); + __ movdbl(Address(rsp, 48), xmm6); + __ movdbl(Address(rsp, 56), xmm7); + Register thread = NOT_LP64(tmp_thread) LP64_ONLY(r15_thread); assert_different_registers(dst, tmp1, tmp_thread); if (!thread->is_valid()) { @@ -527,6 +540,15 @@ void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet d tmp1 /* tmp */, true /* tosca_live */, true /* expand_call */); + __ movdbl(xmm0, Address(rsp, 0)); + __ movdbl(xmm1, Address(rsp, 8)); + __ movdbl(xmm2, Address(rsp, 16)); + __ movdbl(xmm3, Address(rsp, 24)); + __ movdbl(xmm4, Address(rsp, 32)); + __ movdbl(xmm5, Address(rsp, 40)); + __ movdbl(xmm6, Address(rsp, 48)); + __ movdbl(xmm7, Address(rsp, 56)); + __ addptr(rsp, 64); __ pop_IU_state(); } } From c63a8d109047f00ce185ae0936952bc134809068 Mon Sep 17 00:00:00 2001 From: Jesper Wilhelmsson Date: Thu, 6 Feb 2020 02:52:17 +0100 Subject: [PATCH 2/2] Added tag jdk-14+35 for changeset 4a87bb7ebfd7 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 51935add895..96c22bf7a44 100644 --- a/.hgtags +++ b/.hgtags @@ -609,3 +609,4 @@ decd3d2953b640f1043ee76953ff89238bff92e8 jdk-14+31 2776da28515e087cc8849acf1e131a65ea7e77b6 jdk-14+32 f728b6c7f4910d6bd6070cb4dde8393f4ba95113 jdk-14+33 a96bc204e3b31ddbf909b20088964112f052927e jdk-14+34 +4a87bb7ebfd7f6a25ec59a5982fe3607242777f8 jdk-14+35