< prev index next >
src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp
Print this page
rev 56016 : 8229422: Taskqueue: Outdated selection of weak memory model platforms
Reviewed-by:
*** 640,650 ****
LIR_Opr t2 = LIR_OprFact::illegalOpr;
cmp_value.load_item();
new_value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (support_IRIW_for_not_multiple_copy_atomic_cpu) {
__ membar();
} else {
__ membar_release();
}
--- 640,650 ----
LIR_Opr t2 = LIR_OprFact::illegalOpr;
cmp_value.load_item();
new_value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (SUPPORT_IRIW_FOR_NOT_MULTI_COPY_ATOMIC_CPU) {
__ membar();
} else {
__ membar_release();
}
*** 672,690 ****
LIR_Opr tmp = FrameMap::R0_opr;
value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (support_IRIW_for_not_multiple_copy_atomic_cpu) {
__ membar();
} else {
__ membar_release();
}
__ xchg(addr, value.result(), result, tmp);
! if (support_IRIW_for_not_multiple_copy_atomic_cpu) {
__ membar_acquire();
} else {
__ membar();
}
return result;
--- 672,690 ----
LIR_Opr tmp = FrameMap::R0_opr;
value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (SUPPORT_IRIW_FOR_NOT_MULTI_COPY_ATOMIC_CPU) {
__ membar();
} else {
__ membar_release();
}
__ xchg(addr, value.result(), result, tmp);
! if (SUPPORT_IRIW_FOR_NOT_MULTI_COPY_ATOMIC_CPU) {
__ membar_acquire();
} else {
__ membar();
}
return result;
*** 696,714 ****
LIR_Opr tmp = FrameMap::R0_opr;
value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (support_IRIW_for_not_multiple_copy_atomic_cpu) {
__ membar(); // To be safe. Unsafe semantics are unclear.
} else {
__ membar_release();
}
__ xadd(addr, value.result(), result, tmp);
! if (support_IRIW_for_not_multiple_copy_atomic_cpu) {
__ membar_acquire();
} else {
__ membar();
}
return result;
--- 696,714 ----
LIR_Opr tmp = FrameMap::R0_opr;
value.load_item();
// Volatile load may be followed by Unsafe CAS.
! if (SUPPORT_IRIW_FOR_NOT_MULTI_COPY_ATOMIC_CPU) {
__ membar(); // To be safe. Unsafe semantics are unclear.
} else {
__ membar_release();
}
__ xadd(addr, value.result(), result, tmp);
! if (SUPPORT_IRIW_FOR_NOT_MULTI_COPY_ATOMIC_CPU) {
__ membar_acquire();
} else {
__ membar();
}
return result;
< prev index next >