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