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

Andrew Haley aph at openjdk.java.net
Sat May 8 08:59:19 UTC 2021


On Fri, 7 May 2021 15:05:38 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

>> Unfortunately, tmp1 == noreg here.
>
> so, this is better alternative?
>     `Label lrb;`
>     `__ tbnz(rscratch2, ShenandoahHeap::HAS_FORWARDED_BITPOS, lrb);`
>     `__ tbnz(rscratch2, ShenandoahHeap::WEAK_ROOTS_BITPOS, lrb);`
>     `__ b(heap_stable);`
>     `__ bind(lrb);`

How about

 // Check for heap stability                                                                                                                                                                
  if (is_strong) {
    __ tbz(rscratch2, ShenandoahHeap::HAS_FORWARDED_BITPOS, heap_stable);
  } else {
    label lrb;
    __ tbnz(rscratch2, ShenandoahHeap::WEAK_ROOTS_BITPOS, lrb);
    __ tbz(rscratch2, ShenandoahHeap::HAS_FORWARDED_BITPOS, heap_stable);
    __ bind(lrb);
  }

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

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


More information about the shenandoah-dev mailing list