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