RFR: 8313438: [s390x] build broken after JDK-8301996 [v3]

Amit Kumar amitkumar at openjdk.org
Sat Oct 7 03:22:42 UTC 2023


On Fri, 6 Oct 2023 23:00:25 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

>> src/hotspot/cpu/s390/templateTable_s390.cpp line 3229:
>> 
>>> 3227:   NearLabel notVolatile;
>>> 3228: 
>>> 3229:   if (!flags.is_volatile()) {
>> 
>> This change is not legal. The property of the flag register has nothing to do with the bit in the content.
>
> 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);
  }

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15885#discussion_r1349451773


More information about the hotspot-compiler-dev mailing list