RFR: JDK-8223244: Fix usage of ARRAYCOPY_DISJOINT decorator
Erik Österlund
erik.osterlund at oracle.com
Mon May 6 11:41:10 UTC 2019
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