RFR: JDK-8264899: C1: -XX:AbortVMOnException does not work if all methods in the call stack are compiled with C1 and there are no exception handlers [v5]

Damon Fenacci duke at openjdk.org
Tue Jun 20 07:25:04 UTC 2023


On Fri, 16 Jun 2023 11:09:19 GMT, Fei Yang <fyang at openjdk.org> wrote:

>> Damon Fenacci has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   JDK-8264899: fix exception oop register for s390
>
> src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp line 509:
> 
>> 507:     __ leave();
>> 508:   }
>> 509: 
> 
> Hi, the newly-added test case passed on linux-riscv64 with this fix.
> But seems that this could still be improved? Something like:
> 
> diff --git a/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp b/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp
> index 24b97875910..ea086d46bda 100644
> --- a/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp
> +++ b/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp
> @@ -499,10 +499,9 @@ void Runtime1::generate_unwind_exception(StubAssembler *sasm) {
>    const Register handler_addr = x11;
> 
>    if (AbortVMOnException) {
> -    __ mv(x15, x10);
>      __ enter();
>      save_live_registers(sasm);
> -    __ call_VM_leaf(CAST_FROM_FN_PTR(address, check_abort_on_vm_exception), x15);
> +    __ call_VM_leaf(CAST_FROM_FN_PTR(address, check_abort_on_vm_exception), x10);
>      restore_live_registers(sasm);
>      __ leave();
>    }

@RealFYang you're right: no need to copy the argument to another register. Fixed it. Thank you!

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14240#discussion_r1234836227


More information about the hotspot-dev mailing list