-
Enhancement
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 12, 13
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8219669 | 12.0.2 | Roman Kennke | P4 | Resolved | Fixed | b01 |
Currently, we have a bit of a mess in ShenandoahBarrierSetAssembler::cmpxchg_oop(): It has special code paths for C1-only (everthing under the boolean arg 'encode') and it has a code path for !ShenandoahCASBarrier. Also, while C1 actually does not exchange, we call it with exchange==true and cmove the result. This is backwards. Also, we hacked to call storeval-barrier in C1-only path, because it can't easily be done otherwise in C1. Streamlining this code would help tremendously to clarify the actual CAS barrier algorithm, which is currently buried under all those special paths.
- backported by
-
JDK-8219669 Shenandoah: Streamline generation of CAS barriers
- Resolved
- relates to
-
JDK-8217874 Shenandoah: AArch64: Clobbered register in ShenandoahBarrierSetAssembler::cmpxchg_oop()
- Resolved
-
JDK-8223449 Unprotected UseCompressedOops block in gc/shenandoah/shenandoahBarrierSetC1_x86.cpp
- Resolved