RFR: 8313438: [s390x] build broken after JDK-8301996 [v3]
Martin Doerr
mdoerr at openjdk.org
Mon Oct 9 10:07:04 UTC 2023
On Sat, 7 Oct 2023 03:20:04 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
>> Ahh. Wait. We just use the z_fence if the flags register was possibly killed?
>
> Yes, to keep it alive across VM-calls, we used non-volatile register here.
>
> We were short on registers and had to combine `obj and off` So that we free one register for `flags`. There exist comment for this, do you want me to add all of this logic explanation there ?
>
>
>
> /*
> * In the static case, we can calculate the final field address easily.
> * Do so to occupy only one non-volatile register
> * ---------------------
> * In the non-static case, we preset fieldAddr with the field offset.
> * The object address is available only later. It is popped from stack.
> * see pop_and_check_object(obj);
> */
> if (is_static) {
> __ z_agr(fieldAddr, obj);
> }
Ok, got it. Thanks for explaining. Please assert that the flag register is non-volatile instead.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15885#discussion_r1350055531
More information about the hotspot-compiler-dev
mailing list