RFR: JDK-8331859 : [PPC64] Remove support for Power7 and older [v16]
David Linus Briemann
duke at openjdk.org
Fri May 23 09:25:25 UTC 2025
On Thu, 22 May 2025 04:11:30 GMT, Suchismith Roy <sroy at openjdk.org> wrote:
>> JBS Issue: [JDK-8331859](https://bugs.openjdk.org/browse/JDK-8331859)
>> Linux PPC64le requires Power8 since the beginning.
>> AIX requires Power8 with the new OpenXL based build ([JDK-8307520](https://bugs.openjdk.org/browse/JDK-8307520)). The old build has been removed in JDK 23 ([JDK-8327701](https://bugs.openjdk.org/browse/JDK-8327701)).
>> Linux PPC64 Big Endian is no longer officially supported (only kept alive for development, debugging and testing purposes).
>>
>> The following checks for old processors are no longer needed:
>> 8: VM_Version::has_lqarx()
>> 7: VM_Version::has_popcntw()
>> 6: VM_Version::has_cmpb()
>> 5: VM_Version::has_popcntb()
>> These ones and some more checks for old instructions are no longer needed. All code which is no longer reachable when removing them should also get removed.
>> Checks like "PowerArchitecturePPC64 >= 8" (or older) can be removed.
>>
>> Atomic::PlatformCmpxchg<1>::operator() can be simplified by using sub-word instructions (lharx, lbarx).
>>
>> Temp registers can be removed from cmpxchgb and cmpxchgh.
>>
>> Build flags "-mcpu=powerpc64 -mtune=power5" for Big Endian linux should get replaced by "-mcpu=power8 -mtune=power8" as already used for linux PPC64le.
>
> Suchismith Roy has updated the pull request incrementally with one additional commit since the last revision:
>
> comment remove and extra %s
Nice cleanup. I have some small suggestions.
src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp line 551:
> 549: }
> 550: __ fcfid(rdst, rdst);
> 551: break;
Would it make sense to split this code into the two separate switch cases `_i2d` and `l2d`, now that the code has fewer lines?
src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp line 562:
> 560: __ mtfprd(rdst, src->as_register_lo());
> 561: }
> 562: __ fcfids(rdst, rdst);
Same as above. Could be split into separate switch cases.
src/hotspot/cpu/ppc/stubGenerator_ppc.cpp line 1531:
> 1529: __ dcbt(R3_ARG1, 0);
> 1530:
> 1531: // If supported set DSCR pre-fetch to deepest.
The `If supported` can be removed from the comment.
-------------
PR Review: https://git.openjdk.org/jdk/pull/20262#pullrequestreview-2863752098
PR Review Comment: https://git.openjdk.org/jdk/pull/20262#discussion_r2104164132
PR Review Comment: https://git.openjdk.org/jdk/pull/20262#discussion_r2104167860
PR Review Comment: https://git.openjdk.org/jdk/pull/20262#discussion_r2104185204
More information about the hotspot-dev
mailing list