-
Bug
-
Resolution: Fixed
-
P3
-
9
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8176686 | 10 | Roman Kennke | P3 | Resolved | Fixed | b03 |
in LibaryCallKit::inline_unsafe_access(), the pre_barrier() gets inserted twice for LS_cmp_exchange, in one case it is treated like the other CAS instructions, and at the end it is treated like get_and_set.
A simple fix would be to only treat it like the other CAS instructions. There is no need to use the exchanged value and possibly require decoding the narrow oop because we already know the only possible pre-value.
http://cr.openjdk.java.net/~rkennke/fix-cae-prebarrier/webrev.00/
A simple fix would be to only treat it like the other CAS instructions. There is no need to use the exchanged value and possibly require decoding the narrow oop because we already know the only possible pre-value.
http://cr.openjdk.java.net/~rkennke/fix-cae-prebarrier/webrev.00/
- backported by
-
JDK-8176686 CompareAndExchangeObject inserts two pre-barriers
-
- Resolved
-