RFR: JDK-8223244: Fix usage of ARRAYCOPY_DISJOINT decorator

Roman Kennke rkennke at redhat.com
Tue May 7 21:05:54 UTC 2019


Thanks, Erik!

Roman

> Hi Roman,
> 
> This looks good to me.
> 
> /Erik
> 
> On 2019-05-02 17:19, Roman Kennke wrote:
>>  In stubGenerator_x86_64.cpp, the ARRAYCOPY_DISJOINT decorator is 
>> missing in one place, and wrongly added in another. This should be 
>> fixed, because Shenandoah will rely on correct DISJOINT decorator 
>> soon, when we implement JDK-8222859.
>>
>> Specifically, the conjoint routine pretends to be disjoint. The 
>> checkcast routine omits the disjoint decorator, even though it is 
>> always disjoint (otherwise it wouldn't need checkcast).
>>
>> Unfortunately, the fix is less trivial than it sounds. 
>> ModRefBarrierSetAssembler's prologue implicitely assumes that 
>> checkcast->!disjoint and gets the register shuffling wrong. Same for 
>> ShenandoahBarrierSetAssembler. Hence the re-shuffling of that code. It 
>> should be clearer/more explicit now, and equivalent to what we had 
>> before.
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8223244
>> Webrev:
>> http://cr.openjdk.java.net/~rkennke/8223244/webrev.00/
>>
>> Testing: hotspot/tier1, hotspot_gc_shenandoah both x86 and aarch64. 
>> Intend to do jdk-submit before push.
>>
>> Can I please get a review?
>>
>> Thanks,
>> Roman
> 



More information about the hotspot-gc-dev mailing list