RFR: JDK-8223244: Fix usage of ARRAYCOPY_DISJOINT decorator
David Holmes
david.holmes at oracle.com
Fri May 3 03:04:06 UTC 2019
Hi Roman,
Not a review as I'm not familiar with the code, but I did take a look
and have one comment ...
On 3/05/2019 1:19 am, 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).
Can you add a comment somewhere documenting the fact that the
checkcast_arraycopy is always disjoint, as in other cases "disjoint"
forms part of the name.
Thanks,
David
-----
> 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-runtime-dev
mailing list