On Tue, 18 Aug 2026 10:03:22 GMT, Andrew Dinn <[email protected]> wrote:
>> src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 5150:
>>
>>> 5148: __ ldp(a22, a23, Address(state0, 176));
>>> 5149: __ ldr(a24, Address(state0, 192));
>>> 5150:
>>
>> This seems to be cut-and-pasted from elsewhere. Please refactor it into a
>> subroutine, and use that everywhere.
>
> Ok, yes, this has probably grown enough to merit a refactor. But do we want
> another subroutine with > 25 arguments? (we already have that with
> `keccak_round_gpr`).
>
> Perhaps a cleaner way to do this would be to manage the register set a0-a24
> here and in the other client of `keccak_round_gpr` using an array:
>
> Register[25] a = {
> r25, r26, r27, r3, r4,
> . . .
> r20, r21, r22, r23, r24,
> };
>
>
> That allows us to use `a[0]`, `a[1]` etc to access what is now written as
> `a0`, `a1` etc. It also means the subroutines only take one `Register[25]`
> argument in place of 25 `Register` arguments and can rely on indexing and
> looping.
Thank you for noticing this pattern. Done!
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/32049#discussion_r3810369650