On Fri, 15 May 2026 10:11:10 GMT, Ferenc Rakoczi <[email protected]> wrote:

>> src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 7733:
>> 
>>> 7731:   // This function computes partial results of eight 52 x 52 bit 
>>> multiplications,
>>> 7732:   // where the multiplicands are stored as 64-bit values, specifically
>>> 7733:   // (b_0, b_1, b_2, b_3) * (a_3, a_4).
>> 
>> Should this not be `(a_0, a_1)`?
>
> Yes. Fixed.

n.b. I see now why you originally wrote `(a_3, a_4)`. My confusion arose 
because at this point it was not clear tome that the `as` being input here were 
actually the 4th and fifth limb of a sequence of 5 52-bit quantities taken from 
input array `a`.

I still think it is clearer to keep `a_0` and `a_1` here. The comments I 
suggested you add to the calling routine make it clear that in the context of 
that method the pair of 52-bit values in register `as` are the 4th and 5th 
limbs `(a3, a4)`. Meanwhile in this routine where we accept two full `a` values 
and four half `b` values it makes more sense to label the `as` as `a_0` and 
`a_1`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/30941#discussion_r3258701599

Reply via email to