RFR: JDK-8274795: AArch64: avoid spilling and restoring r18 in macro assembler [v3]
Bernhard Urban-Forster
burban at openjdk.java.net
Thu Oct 14 14:54:53 UTC 2021
On Wed, 13 Oct 2021 07:21:23 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> So we have fixed the only use of `popa()` so that it does not clobber R18. That is good.
>> However, I think we've found another bug. `reguard_yellow_pages()` is a native function, so we should be saving floating-point registers too. It looks to me like this code should use `push_call_clobbered_registers()`. Then we'll have no use for `pusha()` in trunk, and your fix for `popa()` can go into 11u.
>
>> Thanks for the suggestion @theRealAph. By looking through the code I discovered another buggy set of helpers, `{push,pop}_CPU_state()` which also messed with `r18`.
>
> Sure, so we can do the same thing there, if we stil need it.
>
>> Does it look fine to you, or should the code around `reguard_yellow_pages()` rather use `{push,pop}-call_clobbered_registers()`?
>
> Yes, very much so.
@theRealAph would you mind to sponsor this change?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5828
More information about the hotspot-dev
mailing list