On Tue, 5 Nov 2024 06:30:55 GMT, Fei Yang <fy...@openjdk.org> wrote:

>> Great, thanks Dean. I removed `possibly_adjust_frame()` and the related code.
>> @RealFYang I made the equivalent change for riscv, could you verify it's 
>> okay?
>
> @pchilano : Hi, Great to see `possibly_adjust_frame()` go away. Nice cleanup!
> `hotspot_loom jdk_loom` still test good with both release and fastdebug 
> builds on linux-riscv64 platform.
> 
> BTW: I noticed one more return miss prediction case which I think was 
> previously missed in 
> https://github.com/openjdk/jdk/pull/21565/commits/32840de91953a5e50c85217f2a51fc5a901682a2
> Do you mind adding following small addon change to fix it? Thanks.
> 
> diff --git a/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp 
> b/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp
> index 84a292242c3..ac28f4b3514 100644
> --- a/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp
> +++ b/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp
> @@ -1263,10 +1263,10 @@ address 
> TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
>    if (LockingMode != LM_LEGACY) {
>      // Check preemption for Object.wait()
>      Label not_preempted;
> -    __ ld(t0, Address(xthread, 
> JavaThread::preempt_alternate_return_offset()));
> -    __ beqz(t0, not_preempted);
> +    __ ld(t1, Address(xthread, 
> JavaThread::preempt_alternate_return_offset()));
> +    __ beqz(t1, not_preempted);
>      __ sd(zr, Address(xthread, 
> JavaThread::preempt_alternate_return_offset()));
> -    __ jr(t0);
> +    __ jr(t1);
>      __ bind(native_return);
>      __ restore_after_resume(true /* is_native */);
>      // reload result_handler

Thanks for checking. Added changes to 
`TemplateInterpreterGenerator::generate_native_entry`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21565#discussion_r1829457335

Reply via email to