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