RFR: 8248238: Implementation of JEP: Windows AArch64 Support [v10]
Vladimir Kempik
vkempik at openjdk.java.net
Mon Sep 28 19:33:11 UTC 2020
On Mon, 28 Sep 2020 19:09:17 GMT, Bernhard Urban-Forster <burban at openjdk.org> wrote:
>> src/hotspot/cpu/aarch64/register_aarch64.cpp line 44:
>>
>>> 42: "rscratch1", "rscratch2",
>>> 43: "r10", "r11", "r12", "r13", "r14", "r15", "r16",
>>> 44: "r17", NOT_R18_RESERVED("r18") WIN64_ONLY("rtls"), "r19",
>>
>> For me this line doesn't look good in case of expanding this functionality to macos-aarch64
>> as it's just the name of register and it's r18 on every platform except WIN64 and has nothing to do with reserving r18.
>
> The idea is that the naming should suggest that `r18` shouldn't be used on that particular platform. Same is true for
> macOS, but the ABI docs suggest a different usage, hence we have something like that in our internal branch for macOS:
> Suggestion:
> "r17", NOT_R18_RESERVED("r18") WIN64_ONLY("rtls") MACOS_ONLY("rplatform"), "r19",
> Are you suggesting it should rather be something like this eventually?
> Suggestion:
>
> "r17", LINUX_ONLY("r18") WIN64_ONLY("rtls") MACOS_ONLY("rplatform"), "r19",
this looks better I think, if it's done right from beginning, we won't have to modify it later.
The Question is, can we do it ahead of JEP-391 ?
If we can't then maybe better to leave it this way for now:
WIN64_ONLY("rtls") NOT_WIN64("r18")
as r18 is supposed to be reserved register on aarch64, linux is just an exception where it's allowed.
-------------
PR: https://git.openjdk.java.net/jdk/pull/212
More information about the build-dev
mailing list