From 93c878455bfffc07f115f9e20ee11b20186eb2be Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Mon, 3 Mar 2025 03:12:37 +0000 Subject: [PATCH] 8350716: [s390] intrinsify Thread.currentThread() Reviewed-by: lucy, mdoerr --- .../cpu/s390/templateInterpreterGenerator_s390.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp b/src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp index c40be5edec7..06ff4b363f5 100644 --- a/src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp +++ b/src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp @@ -2006,8 +2006,20 @@ address TemplateInterpreterGenerator::generate_CRC32C_updateBytes_entry(Abstract return __ addr_at(entry_off); } +address TemplateInterpreterGenerator::generate_currentThread() { + uint64_t entry_off = __ offset(); + + __ z_lg(Z_RET, Address(Z_thread, JavaThread::threadObj_offset())); + __ resolve_oop_handle(Z_RET); + + // Restore caller sp for c2i case. + __ resize_frame_absolute(Z_R10, Z_R0, true); // Cut the stack back to where the caller started. + __ z_br(Z_R14); + + return __ addr_at(entry_off); +} + // Not supported -address TemplateInterpreterGenerator::generate_currentThread() { return nullptr; } address TemplateInterpreterGenerator::generate_Float_intBitsToFloat_entry() { return nullptr; } address TemplateInterpreterGenerator::generate_Float_floatToRawIntBits_entry() { return nullptr; } address TemplateInterpreterGenerator::generate_Double_longBitsToDouble_entry() { return nullptr; }