RFR: 8266440: Shenandoah: TestReferenceShortcutCycle.java test failed on AArch64

Andrew Haley aph at openjdk.java.net
Fri May 7 14:34:00 UTC 2021


On Fri, 7 May 2021 03:19:08 GMT, Nick Gasson <ngasson at openjdk.org> wrote:

>> JDK-8263427 missed corresponding changes for aarch64.
>> 
>> LRB needs to be enabled during weak roots/references processing, regardless if heap is stable.
>> 
>> Test:
>> 
>> - [x] hotspot_gc_shenandoah on Macosx/AArch64
>> - [ ] hotspot_gc_shenandoah on Linux 64/AArch64
>
> src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp line 249:
> 
>> 247:   } else {
>> 248:     if (dst == rscratch1) {
>> 249:       __ push(rscratch1, sp);
> 
> Could we avoid the push/pop by passing in an extra temporary? We have `tmp1` available in `ShenandoahBarrierSetAssembler::load_at()` which is the only place that calls this.

We don't need a register. It's just a TBNZ and a TBZ, isn't it?

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

PR: https://git.openjdk.java.net/jdk/pull/3902


More information about the shenandoah-dev mailing list