RFR: 8339112: Move JVM Klass flags out of AccessFlags [v2]

Dean Long dlong at openjdk.org
Thu Aug 29 22:08:24 UTC 2024


On Thu, 29 Aug 2024 18:50:42 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Move JVM implementation access flags that are not specified by the classfile format into Klass so we can shrink AccessFlags to u2 in a future change.
>> 
>> Tested with tier1-7.
>> 
>> NOTE: there are arm, ppc and s390 changes to this that are just a guess.  Also, graal changes.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add in graal flags and a comment.

src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp line 76:

> 74:     load_klass(tmp, Roop);
> 75:     z_lb(tmp, Address(tmp, Klass::misc_flags_offset()));
> 76:     testbit(tmp, exact_log2(KlassFlags::_misc_is_value_based_class));

Suggestion:

    z_tm(Klass::misc_flags_offset(), tmp, KlassFlags::_misc_is_value_based_class);

or
Suggestion:

    z_tm(Address(tmp, Klass::misc_flags_offset()), KlassFlags::_misc_is_value_based_class);

src/hotspot/cpu/s390/c1_Runtime1_s390.cpp line 447:

> 445:         __ load_klass(klass, Z_ARG1);
> 446:         __ z_lb(klass, Address(klass, Klass::misc_flags_offset()));
> 447:         __ testbit(klass, exact_log2(KlassFlags::_misc_has_finalizer));

Use z_tm.  See above for example.

src/hotspot/cpu/s390/interp_masm_s390.cpp line 1011:

> 1009:     load_klass(tmp, object);
> 1010:     z_lb(tmp, Address(tmp, Klass::misc_flags_offset()));
> 1011:     testbit(tmp, exact_log2(KlassFlags::_misc_is_value_based_class));

Use z_tm.

src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3511:

> 3509:     load_klass(temp, oop);
> 3510:     z_lb(temp, Address(temp, Klass::misc_flags_offset()));
> 3511:     testbit(temp, exact_log2(KlassFlags::_misc_is_value_based_class));

Use z_tm.

src/hotspot/cpu/s390/macroAssembler_s390.cpp line 6157:

> 6155:     load_klass(tmp1, obj);
> 6156:     z_lb(tmp1, Address(temp, Klass::misc_flags_offset()));
> 6157:     testbit(tmp1, exact_log2(KlassFlags::_misc_is_value_based_class));

Use z_tm.

src/hotspot/cpu/s390/templateTable_s390.cpp line 2325:

> 2323:     __ load_klass(Rklass, Rthis);
> 2324:     __ z_lb(Rklass, Address(Rklass, Klass::misc_flags_offset()));
> 2325:     __ testbit(Rklass, exact_log2(KlassFlags::_misc_has_finalizer));

Use z_tm.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737266627
PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737267281
PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737268180
PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737268350
PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737269052
PR Review Comment: https://git.openjdk.org/jdk/pull/20719#discussion_r1737269173


More information about the serviceability-dev mailing list