-
Bug
-
Resolution: Fixed
-
P4
-
11, 12, 13
-
b12
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8227670 | 11.0.5 | Kim Barrett | P4 | Resolved | Fixed | b01 |
In src/hotspot/share/c1/c1_LIRGenerator.cpp, the three functions access_atomic_(cmpxchg|xchg|add)_at all "default" the decorators to include MO_SEQ_CST, like so:
// Atomic operations are SEQ_CST by default
decorators |= ((decorators & MO_DECORATOR_MASK) != 0) ? MO_SEQ_CST : 0;
The test is backward here. This should be adding MO_SEQ_CSET if there are no MO decorator masks, and leaving the MO field alone if there are.
// Atomic operations are SEQ_CST by default
decorators |= ((decorators & MO_DECORATOR_MASK) != 0) ? MO_SEQ_CST : 0;
The test is backward here. This should be adding MO_SEQ_CSET if there are no MO decorator masks, and leaving the MO field alone if there are.
- backported by
-
JDK-8227670 C1 atomic access handlers use incorrect decorators
- Resolved