RFR: AArch64 shenandoah_store_check should read evacuation_in_progress as byte

Aleksey Shipilev shade at redhat.com
Mon Oct 2 12:58:16 UTC 2017


On 10/02/2017 02:07 PM, Roman Kennke wrote:
> 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.

Thanks for building it, pushed both changes.

-Aleksey



More information about the shenandoah-dev mailing list