< 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 >