On Thu, 11 Jun 2026 20:20:28 GMT, Martin Doerr <[email protected]> wrote:

>> David Simms has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains 2798 commits:
>> 
>>  - Merge remote-tracking branch 'valhalla/lworld' into 
>> jep401_sub_review_8317278
>>  - 8386239: [lworld] Update jdk/java/util/Arrays/ArraysEqCmpTest.java
>>    
>>    Reviewed-by: liach
>>  - 8386242: [lworld] Simplify and clarify StrictProcessor
>>    
>>    Reviewed-by: dsimms
>>  - 8386140: [lworld] FieldReflector using wrong Class argument
>>    
>>    Reviewed-by: alanb, dsimms
>>  - 8386216: [lworld] Rollback meaningless diff in EventClassBuilder
>>    
>>    Reviewed-by: dsimms
>>  - 8385170: [lworld] Serialization spec needs to allow abstract value 
>> classes like Number
>>    
>>    Reviewed-by: liach
>>  - 8385980: [lworld] Standardize pattern for preview value class generation
>>    
>>    Reviewed-by: liach
>>  - 8386086: [lworld] 
>> sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java should be 
>> removed from problem list
>>    
>>    Reviewed-by: liach, dcubed
>>  - Merge
>>    
>>    Merge jdk-28+1
>>  - 8386090: [lworld] Redundant test changes in lworld versus mainline
>>    
>>    Reviewed-by: vromero
>>  - ... and 2788 more: https://git.openjdk.org/jdk/compare/92298786...f76a5106
>
> Minor cleanup would be nice:
> 
> diff --git a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp 
> b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
> index c74ff16ae26..1fc0f43ed6c 100644
> --- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
> +++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
> @@ -1640,15 +1640,13 @@ void 
> LIR_Assembler::emit_opSubstitutabilityCheck(LIR_OpSubstitutabilityCheck* op
>    move(op->not_equal_result(), op->result_opr());
>    __ b(L_end);
>  
> -  __ bind(L_oops_equal);
> -  move(op->equal_result(), op->result_opr());
> -  __ b(L_end);
> -
>    // We've returned from the stub. R0 contains 0x0 IFF the two
>    // operands are not substitutable. (Don't compare against 0x1 in case the
>    // C compiler is naughty)
>    __ bind(*op->stub()->continuation());
>    __ cbz(r0, L_oops_not_equal); // (call_stub() == 0x0) -> not_equal
> +
> +  __ bind(L_oops_equal);
>    move(op->equal_result(), op->result_opr()); // (call_stub() != 0x0) -> 
> equal
>    // fall-through
>    __ bind(L_end);
> diff --git a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp 
> b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
> index 01f4a8c1fb7..0b219f53817 100644
> --- a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
> +++ b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
> @@ -1639,16 +1639,14 @@ void 
> LIR_Assembler::emit_opSubstitutabilityCheck(LIR_OpSubstitutabilityCheck* op
>    move(op->not_equal_result(), op->result_opr());
>    __ jmp(L_end);
>  
> -  __ bind(L_oops_equal);
> -  move(op->equal_result(), op->result_opr());
> -  __ jmp(L_end);
> -
>    // We've returned from the stub. RAX contains 0x0 IFF the two
>    // operands are not substitutable. (Don't compare against 0x1 in case the
>    // C compiler is naughty)
>    __ bind(*op->stub()->continuation());
>    __ cmpl(rax, 0);
>    __ jcc(Assembler::equal, L_oops_not_equal); // (call_stub() == 0x0) -> 
> not_equal
> +
> +  __ bind(L_oops_equal);
>    move(op->equal_result(), op->result_opr()); // (call_stub() != 0x0) -> 
> equal
>    // fall-through
>    __ bind(L_end);

Thanks @TheRealMDoerr for the feedback on C1 code, those issues will be tracked 
by https://bugs.openjdk.org/browse/JDK-8386598.

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

PR Comment: https://git.openjdk.org/jdk/pull/31122#issuecomment-4692066086

Reply via email to