On Tue, 11 Aug 2026 10:20:46 GMT, Harshit Dhiman <[email protected]> wrote:

>> Port the Z garbage collector to s390.
>> 
>> The tier1 test case are passing using `-XX:+UseZGC` flag
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Harshit Dhiman has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   don;t set cc

src/hotspot/cpu/s390/gc/z/zBarrierSetAssembler_s390.cpp line 683:

> 681:     __ z_lgr(Z_R0_scratch, ref->as_register());
> 682:     __ relocate(barrier_Relocation::spec(), 
> ZBarrierRelocationFormatMarkBadBeforeTest);
> 683:     __ z_nill(Z_R0_scratch, barrier_Relocation::unpatched);

here also, try to switch to tmll.

src/hotspot/cpu/s390/gc/z/z_s390.ad line 37:

> 35: #include "gc/z/zBarrierSetAssembler.hpp"
> 36: 
> 37: static void z_color(MacroAssembler* masm, const MachNode* node, Register 
> dst, Register src) {

Can we go with the same implementation approach as it is done in 
ZBarrierSetAssembler::store_barrier_fast ? `z_rosbg` is expensive. 


    if (rnew_zaddress != noreg) {
      // noreg means null, no need to color
      __ z_sllg(rnew_zpointer, rnew_zaddress, ZPointerLoadShift);
      __ relocate(barrier_Relocation::spec(), 
ZBarrierRelocationFormatStoreGoodBeforeLoad);
      __ z_oill(rnew_zpointer, barrier_Relocation::unpatched);
    } else {
      __ relocate(barrier_Relocation::spec(), 
ZBarrierRelocationFormatStoreGoodBeforeLoad);
      __ z_llill(rnew_zpointer, barrier_Relocation::unpatched);
    }

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31984#discussion_r3841828985
PR Review Comment: https://git.openjdk.org/jdk/pull/31984#discussion_r3841844023

Reply via email to