From 033a121c9691b57ada832072dceb18a7fa2dcfe8 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Fri, 25 Jul 2025 08:09:02 +0000 Subject: [PATCH] 8360679: Shenandoah: AOT saved adapter calls into broken GC barrier stub Reviewed-by: kvn Backport-of: 8477630970b61e3178abd7ac812ed97e181e2684 --- .../gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp index a2b3f44c68b..ed321ca4759 100644 --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp @@ -292,7 +292,8 @@ void ShenandoahBarrierSetAssembler::load_reference_barrier(MacroAssembler* masm, } else { assert(is_phantom, "only remaining strength"); assert(!is_narrow, "phantom access cannot be narrow"); - __ mov(lr, CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_phantom)); + // AOT saved adapters need relocation for this call. + __ lea(lr, RuntimeAddress(CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_phantom))); } __ blr(lr); __ mov(rscratch1, r0);