RFR: Several small aarch64 fixes

Roman Kennke rkennke at redhat.com
Fri May 4 13:43:48 UTC 2018


Am 04.05.2018 um 15:39 schrieb Aleksey Shipilev:
> On 05/04/2018 03:36 PM, Roman Kennke wrote:
>> Am 04.05.2018 um 15:32 schrieb Aleksey Shipilev:
>>> On 05/04/2018 03:29 PM, Roman Kennke wrote:
>>>> While poking around aarch64 interpreter code for the primitives stuff, I
>>>> discovered some things that should be fixed separately:
>>>>
>>>> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/
>>>
>>> This does not look correct for a SATB barrier. Did you mean "MARKING | TRAVERSAL"?
>>>
>>> 1141           __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL);
>>> 1142           __ tst(rscratch1, rscratch2);
>>> 1143           __ br(Assembler::EQ, done);
>>>
>>> Otherwise good.
>>>
>>> Thanks,
>>> -Aleksey
>>>
>>
>> Gaa! Of course!
>>
>> Diff:
>> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01.diff/
>> Full:
>> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01/
> 
> Should probably also be "tmp", not "rscratch1" at L1142:
> 
> 1140           __ ldrb(tmp, gc_state);
> 1141           __ mov(rscratch2, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL);
> 1142           __ tst(rscratch1, rscratch2);
> 1143           __ br(Assembler::EQ, done);
> 
> Otherwise good.

It's clearly Friday and aarch64 assembler ate my brains.

Diff:
http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02.diff/
Full:
http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02/

Good?




More information about the shenandoah-dev mailing list