RFR: AArch64 shenandoah_store_check should read evacuation_in_progress as byte
Roman Kennke
rkennke at redhat.com
Mon Oct 2 12:07:24 UTC 2017
Am 02.10.2017 um 13:14 schrieb Aleksey Shipilev:
> Blind fix for aarch64. evacuation_in_progress is jbyte, and should be read as byte:
>
> ------------- 8< -----------------------------------------------------------------------
> diff -r ea6691150c62 src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
> --- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Oct 02 13:09:09 2017 +0200
> +++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Oct 02 13:11:53 2017 +0200
> @@ -5655,8 +5655,8 @@
> // because it will also capture the errors in thread-local flags that may break the
> // write barrier.
> mov(tmp1, ShenandoahHeap::evacuation_in_progress_addr());
> - ldrw(tmp1, Address(tmp1));
> - cbnzw(tmp1, done);
> + ldrb(tmp1, Address(tmp1));
> + cbnz(tmp1, done);
>
> // Null-check value.
> cbz(rval, done);
> ------------- 8< -----------------------------------------------------------------------
>
> Cannot test, because have no AArch64 machine handy.
Change looks good.
I've built it on aarch64, works fine.
Roman
More information about the shenandoah-dev
mailing list