RFR: 8331126: [s390x] secondary_super_cache does not scale well [v6]

Amit Kumar amitkumar at openjdk.org
Sun Jun 30 15:50:19 UTC 2024


On Sun, 30 Jun 2024 09:49:35 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Amit Kumar has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   add2reg -> z_la
>
> src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3327:
> 
>> 3325:   z_bre(L_huge);
>> 3326: 
>> 3327:   // NOTE: please load 0 only in r_result, as this is also being used for z_locgr down
> 
> Can you please explain what his comment means?

Is this old comment ? Code seems outdated. 

This is moved inside ASSERT now: 

    z_cghi(r_result, 0);
    asm_assert(bcondEqual, "r_result required to be 0, used by z_locgr", 44);


This is used by the `z_locgr` in the below loop. 

    NearLabel L_loop;
    bind(L_loop);

    // Check for wraparound.
    z_cgr(r_array_index, r_array_length);
    z_locgr(r_array_index, r_result, bcondHigh); // r_result is containing 0

    z_cg(r_super_klass, Address(r_array_base, r_array_index));
    z_bre(L_done); // success

    // look-ahead check (Bit 2), if bit-2 is also 0, we're done
    testbit(r_bitmap, 2);
    z_bfalse(L_failure);

    z_rllg(r_bitmap, r_bitmap, 64-1); // rotate right
    add2reg(r_array_index, BytesPerWord);

    z_bru(L_loop);

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1660205202


More information about the hotspot-dev mailing list