RFR: 8339983: [s390x] secondary_super_cache does not scale well: C1 and interpreter [v2]

Amit Kumar amitkumar at openjdk.org
Wed Nov 27 15:55:37 UTC 2024


On Wed, 27 Nov 2024 15:43:58 GMT, Lutz Schmidt <lucy at openjdk.org> wrote:

>> already updated :)
>> 
>> for s390x, `pop_frame()` doesn't interfere with `cc` as it only uses `lg` instruction which doesn't change `cc`. But `push_frame()` can change `cc` as it uses `aghi` instruction to perform add operation.
>
>> But we can store the value in scratch register, maybe `Z_R0` and then move this check.
> 
> Using a scratch register is just as opaque. You implicitly rely on the code in between to do no harm. For me, a comment helps to create awareness - if anyone reads it.

Oh, that wasn't even my worse suggestion 😅. 

Another solution which I was thinking about was, passing `temp_reg` at place of `result_reg` then we can move that check down without any issue, because value wouldn't be altered. And `temp_reg` then will be allocated a new register from `RegSet`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22341#discussion_r1860906145


More information about the hotspot-dev mailing list