[jdk11u-dev] RFR: 8248238: Implementation: JEP 388: Windows AArch64 Support [v3]
Reka Kovacs
github.com+25946952+rnkovacs at openjdk.java.net
Mon Oct 4 22:45:09 UTC 2021
On Wed, 8 Sep 2021 13:13:30 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> please take a look at
>>
>> definition:
>> https://github.com/openjdk/jdk11u-dev/pull/301/files#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aR2547
>>
>> and call site:
>>
>> https://github.com/openjdk/jdk11u-dev/pull/301/files#diff-9112056f732229b18fec48fb0b20a3fe824de49d0abd41fbdb4202cfe70ad114R1290
>>
>> call site doesn't expect rscratch2 to be removed from the list
>
> Looking at the actual change make to development head, this is a misapplied patch. To match head, this should be:
>
>
> RegSet MacroAssembler::call_clobbered_registers() {
> RegSet regs = RegSet::range(r0, r17) - RegSet::of(rscratch1, rscratch2);
> #ifndef R18_RESERVED
> regs += r18_tls;
> #endif
> return regs;
> }
> void MacroAssembler::push_call_clobbered_registers() {
> int step = 4 * wordSize;
> push(call_clobbered_registers(), sp);
>
> Strictly speaking it should also push rscratch1 and rscratch2 - they are call clobbered - but we don't care because any macro can trash rscratch1 and rscratch2, so there's no point saving and restoring them.
@theRealAph you're right about `push_call_clobbered_registers()`, but I think `call_clobbered_registers()` is actually fine the way it is. The register named `r18_tls` on tip has been renamed to `r18_reserved` in this backport.
-------------
PR: https://git.openjdk.java.net/jdk11u-dev/pull/301
More information about the jdk-updates-dev
mailing list