RFR: JDK-8223244: Fix usage of ARRAYCOPY_DISJOINT decorator
Roman Kennke
rkennke at redhat.com
Thu May 2 15:19:30 UTC 2019
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