diff --git a/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp index d603d134a37..a971b572556 100644 --- a/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp @@ -870,10 +870,6 @@ OopMapSet* Runtime1::generate_code_for(StubId id, StubAssembler* sasm) { f.load_argument(0, r1); // r1,: index int call_offset = __ call_RT(r0, noreg, CAST_FROM_FN_PTR(address, load_flat_array), r0, r1); - // Ensure the stores that initialize the buffer are visible - // before any subsequent store that publishes this reference. - __ membar(Assembler::StoreStore); - oop_maps = new OopMapSet(); oop_maps->add_gc_map(call_offset, map); restore_live_registers_except_r0(sasm); diff --git a/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp b/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp index 1b16ec25ca7..95374d4fb81 100644 --- a/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp @@ -212,7 +212,6 @@ void InterpreterMacroAssembler::get_method_counters(Register method, void InterpreterMacroAssembler::read_flat_field(Register entry, Register obj) { call_VM(obj, CAST_FROM_FN_PTR(address, InterpreterRuntime::read_flat_field), obj, entry); - membar(Assembler::StoreStore); } void InterpreterMacroAssembler::write_flat_field(Register entry, Register field_offset, diff --git a/src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp b/src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp index 0c0c9038429..49d9c6dd1cf 100644 --- a/src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp +++ b/src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp @@ -2432,7 +2432,6 @@ void InterpreterMacroAssembler::notify_method_exit(bool is_native_method, TosSta void InterpreterMacroAssembler::read_flat_field(Register entry, Register obj) { call_VM(obj, CAST_FROM_FN_PTR(address, InterpreterRuntime::read_flat_field), obj, entry); - membar(Assembler::StoreStore | Assembler::LoadLoad); // for allocation and volatile load } void InterpreterMacroAssembler::write_flat_field(Register entry, Register tmp1, Register tmp2, diff --git a/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp b/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp index 76829a09255..9ae620010ee 100644 --- a/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp +++ b/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp @@ -3417,7 +3417,8 @@ void TemplateTable::fast_accessfield(TosState state) { if (support_IRIW_for_not_multiple_copy_atomic_cpu) { __ fence(); } __ read_flat_field(Rcache, R17_tos); __ verify_oop(R17_tos); - // memory barrier in read_flat_field + __ twi_0(R17_tos); + __ isync(); break; } case Bytecodes::_fast_agetfield: diff --git a/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp b/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp index e15422b83a7..b031a4ce5cc 100644 --- a/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp +++ b/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp @@ -871,10 +871,6 @@ OopMapSet* Runtime1::generate_code_for(StubId id, StubAssembler* sasm) { f.load_argument(0, x11); // x11,: index int call_offset = __ call_RT(x10, noreg, CAST_FROM_FN_PTR(address, load_flat_array), x10, x11); - // Ensure the stores that initialize the buffer are visible - // before many subsequent store that publishes this reference. - __ membar(MacroAssembler::StoreStore); - oop_maps = new OopMapSet(); oop_maps->add_gc_map(call_offset, map); restore_live_registers_except_r10(sasm); diff --git a/src/hotspot/cpu/riscv/interp_masm_riscv.cpp b/src/hotspot/cpu/riscv/interp_masm_riscv.cpp index 623ecc1fd3b..802cf7eac67 100644 --- a/src/hotspot/cpu/riscv/interp_masm_riscv.cpp +++ b/src/hotspot/cpu/riscv/interp_masm_riscv.cpp @@ -1868,7 +1868,6 @@ void InterpreterMacroAssembler::get_method_counters(Register method, void InterpreterMacroAssembler::read_flat_field(Register entry, Register obj) { call_VM(obj, CAST_FROM_FN_PTR(address, InterpreterRuntime::read_flat_field), obj, entry); - membar(MacroAssembler::StoreStore); } void InterpreterMacroAssembler::write_flat_field(Register entry, Register field_offset,