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

Lutz Schmidt lucy at openjdk.org
Mon Oct 9 18:17:02 UTC 2023


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

>> Oh, Issue was with the `flag` register value. We need to check the volatility at the end of `putfield_or_static` method. And previous implementation was not preserving the value till the end, why it was working then ? That I don't know. 
>> 
>> Current Implementation uses `z_tmp_1` for saving `flag` value till end. `obj` now points to `Z_ARG5` which is also pointed by `oopStore_tmp2`, and if we don't use `agr` then in case of `object/atos` , will run into `Multiple usecase for Z_R6` error from `do_oop_store()` method .
>
> Is the agr only used to save a register? That should be explained in the comments. I believe it's only needed for the object case, right?

The prior implementation used two non-volatile registers. Due to register shortage, only one register can be used. Penalty: compute the sum of obj and off explicitly immediately after the obj pointer is popped from stack. In the non-static case, this can't be done upfront.

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

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


More information about the hotspot-compiler-dev mailing list